Unverified Commit eead1efe authored by Christopher Fujino's avatar Christopher Fujino Committed by GitHub

[flutter_tools] Fix type error in ChromiumDevice.startApp (#111935)

parent 3a1a2533
...@@ -118,7 +118,7 @@ abstract class ChromiumDevice extends Device { ...@@ -118,7 +118,7 @@ abstract class ChromiumDevice extends Device {
@override @override
Future<LaunchResult> startApp( Future<LaunchResult> startApp(
covariant WebApplicationPackage package, { WebApplicationPackage? package, {
String? mainPath, String? mainPath,
String? route, String? route,
required DebuggingOptions debuggingOptions, required DebuggingOptions debuggingOptions,
...@@ -454,7 +454,7 @@ class WebServerDevice extends Device { ...@@ -454,7 +454,7 @@ class WebServerDevice extends Device {
Future<String> get sdkNameAndVersion async => 'Flutter Tools'; Future<String> get sdkNameAndVersion async => 'Flutter Tools';
@override @override
Future<LaunchResult> startApp(ApplicationPackage package, { Future<LaunchResult> startApp(ApplicationPackage? package, {
String? mainPath, String? mainPath,
String? route, String? route,
required DebuggingOptions debuggingOptions, required DebuggingOptions debuggingOptions,
......
...@@ -340,7 +340,7 @@ void main() { ...@@ -340,7 +340,7 @@ void main() {
fakeVmServiceHost = fakeVmServiceHost =
FakeVmServiceHost(requests: kAttachExpectations.toList()); FakeVmServiceHost(requests: kAttachExpectations.toList());
setupMocks(); setupMocks();
fileSystem.file(fileSystem.path.join('web', 'index.html')).deleteSync(); fileSystem.directory('web').deleteSync(recursive: true);
final ResidentWebRunner residentWebRunner = ResidentWebRunner( final ResidentWebRunner residentWebRunner = ResidentWebRunner(
flutterDevice, flutterDevice,
flutterProject: flutterProject:
......
...@@ -112,6 +112,37 @@ void main() { ...@@ -112,6 +112,37 @@ void main() {
expect(device.supportsRuntimeMode(BuildMode.jitRelease), false); expect(device.supportsRuntimeMode(BuildMode.jitRelease), false);
}); });
testWithoutContext('ChromiumDevice accepts null package', () async {
final MemoryFileSystem fs = MemoryFileSystem.test();
final FakePlatform platform = FakePlatform();
final FakeProcessManager pm = FakeProcessManager.any();
final BufferLogger logger = BufferLogger.test();
final GoogleChromeDevice device = GoogleChromeDevice(
fileSystem: fs,
processManager: pm,
platform: platform,
chromiumLauncher: ChromiumLauncher(
fileSystem: fs,
platform: platform,
processManager: pm,
operatingSystemUtils: FakeOperatingSystemUtils(),
browserFinder: findChromeExecutable,
logger: logger,
),
logger: logger,
);
await expectLater(
() => device.startApp(
null,
debuggingOptions: DebuggingOptions.disabled(BuildInfo.debug),
platformArgs: <String, Object?>{'uri': 'localhost:1234'},
),
// The tool exit here is irrelevant, this test simply ensures ChromiumDevice.startApp
// will accept a null value for a package.
throwsToolExit(message: 'Failed to launch browser'),
);
});
testWithoutContext('Chrome device is listed when Chrome can be run', () async { testWithoutContext('Chrome device is listed when Chrome can be run', () async {
final WebDevices webDevices = WebDevices( final WebDevices webDevices = WebDevices(
featureFlags: TestFeatureFlags(isWebEnabled: true), featureFlags: TestFeatureFlags(isWebEnabled: true),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment