diff --git a/packages/webview_flutter/webview_flutter_web/example/integration_test/legacy/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_web/example/integration_test/legacy/webview_flutter_test.dart index db27f7ab5d8d..affd7bbda224 100644 --- a/packages/webview_flutter/webview_flutter_web/example/integration_test/legacy/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_web/example/integration_test/legacy/webview_flutter_test.dart @@ -4,6 +4,7 @@ import 'dart:async'; import 'dart:html' as html; +import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; @@ -11,15 +12,27 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:webview_flutter_web_example/legacy/web_view.dart'; -void main() { +void main() async { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); - // URLs to navigate to in tests. These need to be URLs that we are confident will - // always be accessible, and won't do redirection. (E.g., just - // 'https://www.google.com/' will sometimes redirect traffic that looks - // like it's coming from a bot, which is true of these tests). - const String primaryUrl = 'https://flutter.dev/'; - const String secondaryUrl = 'https://www.google.com/robots.txt'; + const String primaryPage = 'first.txt'; + const String secondaryPage = 'second.txt'; + final HttpServer server = + await HttpServer.bind(InternetAddress.loopbackIPv4, 0); + unawaited(server.forEach((HttpRequest request) { + if (request.uri.path == '/$primaryPage') { + request.response.writeln('Hello, world.'); + } + if (request.uri.path == '/$secondaryPage') { + request.response.writeln('Another page.'); + } else { + fail('unexpected request: ${request.method} ${request.uri}'); + } + request.response.close(); + })); + final String prefixUrl = 'http://localhost:${server.port}'; + final String primaryUrl = '$prefixUrl/$primaryPage'; + final String secondaryUrl = '$prefixUrl/$secondaryPage'; testWidgets('initialUrl', (WidgetTester tester) async { final Completer controllerCompleter = diff --git a/script/tool/lib/src/drive_examples_command.dart b/script/tool/lib/src/drive_examples_command.dart index fe0c2bc75d79..4ccbe60afab3 100644 --- a/script/tool/lib/src/drive_examples_command.dart +++ b/script/tool/lib/src/drive_examples_command.dart @@ -317,7 +317,8 @@ class DriveExamplesCommand extends PackageLoopingCommand { example.directory.childDirectory('integration_test'); if (integrationTestDir.existsSync()) { - await for (final FileSystemEntity file in integrationTestDir.list()) { + await for (final FileSystemEntity file + in integrationTestDir.list(recursive: true)) { if (file is File && file.basename.endsWith('_test.dart')) { tests.add(file); }