Build Android (FCM) / build-android-fcm (push) Canceled after 0s
Build Android / build-android (push) Canceled after 0s
Build iOS / build-ios (push) Canceled after 0s
Build Linux / build-linux (push) Canceled after 0s
Build macOS / build-macos (push) Canceled after 0s
Build Windows / build-windows (push) Canceled after 0s
Release (main) / android (oneme) (push) Canceled after 0s
Release (main) / android (qlyra) (push) Canceled after 0s
Release (main) / windows (push) Canceled after 0s
Release (main) / linux (push) Canceled after 0s
Release (main) / macos (push) Canceled after 0s
Release (main) / ios (push) Canceled after 0s
Release (main) / release (push) Canceled after 0s
37 lines
1.0 KiB
Dart
37 lines
1.0 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:qlyra/core/links/max_link.dart';
|
|
import 'package:qlyra/core/utils/link_opener.dart';
|
|
|
|
void main() {
|
|
group('leavesWebView', () {
|
|
test('keeps page navigation inside the web view', () {
|
|
for (final scheme in [
|
|
'http',
|
|
'https',
|
|
'HTTPS',
|
|
'about',
|
|
'data',
|
|
'blob',
|
|
]) {
|
|
expect(leavesWebView(scheme), isFalse, reason: scheme);
|
|
}
|
|
});
|
|
|
|
test('hands app schemes over to the app', () {
|
|
for (final scheme in ['max', 'MAX', 'qlyra', 'tel', 'mailto', 'intent']) {
|
|
expect(leavesWebView(scheme), isTrue, reason: scheme);
|
|
}
|
|
});
|
|
|
|
test('treats a missing scheme as in-page', () {
|
|
expect(leavesWebView(null), isFalse);
|
|
expect(leavesWebView(''), isFalse);
|
|
});
|
|
});
|
|
|
|
test('a max deep link from a web view resolves to in-app content', () {
|
|
expect(MaxLink.parse('max://max.ru/somechannel'), isA<MaxContentLink>());
|
|
expect(MaxLink.isMaxLink('max://max.ru/?cid=424242'), isTrue);
|
|
});
|
|
}
|