Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -933,7 +933,7 @@ Future<void> main() async {
},
javascriptMode: JavascriptMode.unrestricted,
navigationDelegate: (NavigationRequest request) {
return (request.url.contains('youtube.com'))
return (request.url.contains('does-not-match-target'))
? NavigationDecision.prevent
: NavigationDecision.navigate;
},
Expand Down Expand Up @@ -1057,13 +1057,14 @@ Future<void> main() async {
textDirection: TextDirection.ltr,
child: WebView(
key: GlobalKey(),
initialUrl: blankPageEncoded,
initialUrl: primaryUrl,
onWebViewCreated: (WebViewController controller) {
controllerCompleter.complete(controller);
},
javascriptMode: JavascriptMode.unrestricted,
navigationDelegate: (NavigationRequest request) {
return (request.url.contains('youtube.com'))
print('### GOT NAVIGATION REQUEST ### ${request.url}');
return (request.url.contains('secondary.txt'))
? NavigationDecision.prevent
: NavigationDecision.navigate;
},
Expand All @@ -1074,16 +1075,15 @@ Future<void> main() async {

await pageLoads.stream.first; // Wait for initial page load.
final WebViewController controller = await controllerCompleter.future;
await controller
.runJavascript('location.href = "https://www.youtube.com/"');
await controller.runJavascript('location.href = "$secondaryUrl"');

// There should never be any second page load, since our new URL is
// blocked. Still wait for a potential page change for some time in order
// to give the test a chance to fail.
await pageLoads.stream.first
.timeout(const Duration(milliseconds: 500), onTimeout: () => '');
final String? currentUrl = await controller.currentUrl();
expect(currentUrl, isNot(contains('youtube.com')));
expect(currentUrl, isNot(contains('secondary.txt')));
});

testWidgets('supports asynchronous decisions', (WidgetTester tester) async {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1029,7 +1029,7 @@ Future<void> main() async {
},
javascriptMode: JavascriptMode.unrestricted,
navigationDelegate: (NavigationRequest request) {
return (request.url.contains('youtube.com'))
return (request.url.contains('does-not-match-target'))
? NavigationDecision.prevent
: NavigationDecision.navigate;
},
Expand Down Expand Up @@ -1148,13 +1148,14 @@ Future<void> main() async {
textDirection: TextDirection.ltr,
child: WebView(
key: GlobalKey(),
initialUrl: blankPageEncoded,
initialUrl: primaryUrl,
onWebViewCreated: (WebViewController controller) {
controllerCompleter.complete(controller);
},
javascriptMode: JavascriptMode.unrestricted,
navigationDelegate: (NavigationRequest request) {
return (request.url.contains('youtube.com'))
print('### GOT NAVIGATION REQUEST ### ${request.url}');
return (request.url.contains('secondary.txt'))
? NavigationDecision.prevent
: NavigationDecision.navigate;
},
Expand All @@ -1165,16 +1166,15 @@ Future<void> main() async {

await pageLoads.stream.first; // Wait for initial page load.
final WebViewController controller = await controllerCompleter.future;
await controller
.runJavascript('location.href = "https://www.youtube.com/"');
await controller.runJavascript('location.href = "$secondaryUrl"');

// There should never be any second page load, since our new URL is
// blocked. Still wait for a potential page change for some time in order
// to give the test a chance to fail.
await pageLoads.stream.first
.timeout(const Duration(milliseconds: 500), onTimeout: () => '');
final String? currentUrl = await controller.currentUrl();
expect(currentUrl, isNot(contains('youtube.com')));
expect(currentUrl, isNot(contains('secondary.txt')));
});

testWidgets('supports asynchronous decisions', (WidgetTester tester) async {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -881,7 +881,7 @@ Future<void> main() async {
},
javascriptMode: JavascriptMode.unrestricted,
navigationDelegate: (NavigationRequest request) {
return (request.url.contains('youtube.com'))
return (request.url.contains('does-not-match-target'))
? NavigationDecision.prevent
: NavigationDecision.navigate;
},
Expand Down Expand Up @@ -1005,13 +1005,14 @@ Future<void> main() async {
textDirection: TextDirection.ltr,
child: WebView(
key: GlobalKey(),
initialUrl: blankPageEncoded,
initialUrl: primaryUrl,
onWebViewCreated: (WebViewController controller) {
controllerCompleter.complete(controller);
},
javascriptMode: JavascriptMode.unrestricted,
navigationDelegate: (NavigationRequest request) {
return (request.url.contains('youtube.com'))
print('### GOT NAVIGATION REQUEST ### ${request.url}');
return (request.url.contains('secondary.txt'))
? NavigationDecision.prevent
: NavigationDecision.navigate;
},
Expand All @@ -1022,16 +1023,15 @@ Future<void> main() async {

await pageLoads.stream.first; // Wait for initial page load.
final WebViewController controller = await controllerCompleter.future;
await controller
.runJavascript('location.href = "https://www.youtube.com/"');
await controller.runJavascript('location.href = "$secondaryUrl"');

// There should never be any second page load, since our new URL is
// blocked. Still wait for a potential page change for some time in order
// to give the test a chance to fail.
await pageLoads.stream.first
.timeout(const Duration(milliseconds: 500), onTimeout: () => '');
final String? currentUrl = await controller.currentUrl();
expect(currentUrl, isNot(contains('youtube.com')));
expect(currentUrl, isNot(contains('secondary.txt')));
});

testWidgets('supports asynchronous decisions', (WidgetTester tester) async {
Expand Down