iosWebViewFix/example/integration_test/in_app_webview/safe_browsing.dart

57 lines
1.8 KiB
Dart

part of 'main.dart';
void safeBrowsing() {
final shouldSkip = kIsWeb
? true
: ![
TargetPlatform.android,
].contains(defaultTargetPlatform);
skippableGroup('safe browsing', () {
skippableTestWidgets('onSafeBrowsingHit', (WidgetTester tester) async {
final Completer<String> pageLoaded = Completer<String>();
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: InAppWebView(
key: GlobalKey(),
initialUrlRequest:
URLRequest(url: TEST_CHROME_SAFE_BROWSING_MALWARE),
initialSettings: InAppWebViewSettings(
// if I set javaScriptEnabled to true, it will crash!
javaScriptEnabled: false,
clearCache: true,
safeBrowsingEnabled: true,
),
onWebViewCreated: (controller) {
controller.startSafeBrowsing();
},
onLoadStop: (controller, url) {
pageLoaded.complete(url!.toString());
},
onSafeBrowsingHit: (controller, url, threatType) async {
return SafeBrowsingResponse(
report: true, action: SafeBrowsingResponseAction.PROCEED);
},
),
),
);
final String url = await pageLoaded.future;
expect(url, TEST_CHROME_SAFE_BROWSING_MALWARE.toString());
});
skippableTest('getSafeBrowsingPrivacyPolicyUrl', () async {
expect(await InAppWebViewController.getSafeBrowsingPrivacyPolicyUrl(),
isNotNull);
});
skippableTest('setSafeBrowsingWhitelist', () async {
expect(
await InAppWebViewController.setSafeBrowsingAllowlist(
hosts: ["flutter.dev", "github.com"]),
true);
});
}, skip: shouldSkip);
}