Fixes for test failures in Dart 2 mode (#18122)
diff --git a/packages/flutter_tools/lib/src/android/android_workflow.dart b/packages/flutter_tools/lib/src/android/android_workflow.dart index 304d9f2..1599f0e 100644 --- a/packages/flutter_tools/lib/src/android/android_workflow.dart +++ b/packages/flutter_tools/lib/src/android/android_workflow.dart
@@ -237,7 +237,7 @@ ); process.stdin.addStream(stdin); - await waitGroup<Null>(<Future<Null>>[ + await waitGroup<void>(<Future<void>>[ stdout.addStream(process.stdout), stderr.addStream(process.stderr), ]);
diff --git a/packages/flutter_tools/lib/src/base/fingerprint.dart b/packages/flutter_tools/lib/src/base/fingerprint.dart index 476bb1f..bac8de9 100644 --- a/packages/flutter_tools/lib/src/base/fingerprint.dart +++ b/packages/flutter_tools/lib/src/base/fingerprint.dart
@@ -120,8 +120,8 @@ final String version = content['version']; if (version != FlutterVersion.instance.frameworkRevision) throw new ArgumentError('Incompatible fingerprint version: $version'); - _checksums = content['files'] ?? <String, String>{}; - _properties = content['properties'] ?? <String, String>{}; + _checksums = content['files']?.cast<String,String>() ?? <String, String>{}; + _properties = content['properties']?.cast<String,String>() ?? <String, String>{}; } Map<String, String> _checksums;
diff --git a/packages/flutter_tools/lib/src/devfs.dart b/packages/flutter_tools/lib/src/devfs.dart index 846b7de..475c7f9 100644 --- a/packages/flutter_tools/lib/src/devfs.dart +++ b/packages/flutter_tools/lib/src/devfs.dart
@@ -441,7 +441,8 @@ _entries.forEach((Uri deviceUri, DevFSContent content) { if (!content._exists) { final Future<Map<String, dynamic>> operation = - _operations.deleteFile(fsName, deviceUri); + _operations.deleteFile(fsName, deviceUri) + .then((dynamic v) => v?.cast<String,dynamic>()); if (operation != null) _pendingOperations.add(operation); toRemove.add(deviceUri); @@ -533,7 +534,8 @@ // Make service protocol requests for each. dirtyEntries.forEach((Uri deviceUri, DevFSContent content) { final Future<Map<String, dynamic>> operation = - _operations.writeFile(fsName, deviceUri, content); + _operations.writeFile(fsName, deviceUri, content) + .then((dynamic v) => v?.cast<String, dynamic>()); if (operation != null) _pendingOperations.add(operation); });
diff --git a/packages/flutter_tools/test/android/android_device_test.dart b/packages/flutter_tools/test/android/android_device_test.dart index 5fb766d..68ffa79 100644 --- a/packages/flutter_tools/test/android/android_device_test.dart +++ b/packages/flutter_tools/test/android/android_device_test.dart
@@ -88,7 +88,7 @@ setUp(() { hardware = 'unknown'; buildCharacteristics = 'unused'; - when(mockProcessManager.run(argThat(contains('getprop')), + when(mockProcessManager.run(typedArgThat(contains('getprop')), stderrEncoding: anyNamed('stderrEncoding'), stdoutEncoding: anyNamed('stdoutEncoding'))).thenAnswer((_) { final StringBuffer buf = new StringBuffer()
diff --git a/packages/flutter_tools/test/android/android_sdk_test.dart b/packages/flutter_tools/test/android/android_sdk_test.dart index 6effc54..405f174 100644 --- a/packages/flutter_tools/test/android/android_sdk_test.dart +++ b/packages/flutter_tools/test/android/android_sdk_test.dart
@@ -73,7 +73,8 @@ final AndroidSdk sdk = AndroidSdk.locateAndroidSdk(); when(processManager.canRun(sdk.sdkManagerPath)).thenReturn(true); - when(processManager.runSync(<String>[sdk.sdkManagerPath, '--version'], environment: argThat(isNotNull))) + when(processManager.runSync(<String>[sdk.sdkManagerPath, '--version'], + environment: typedArgThat(isNotNull, named: 'environment'))) .thenReturn(new ProcessResult(1, 0, '26.1.1\n', '')); expect(sdk.sdkManagerVersion, '26.1.1'); }, overrides: <Type, Generator>{ @@ -87,7 +88,8 @@ final AndroidSdk sdk = AndroidSdk.locateAndroidSdk(); when(processManager.canRun(sdk.sdkManagerPath)).thenReturn(true); - when(processManager.runSync(<String>[sdk.sdkManagerPath, '--version'], environment: argThat(isNotNull))) + when(processManager.runSync(<String>[sdk.sdkManagerPath, '--version'], + environment: typedArgThat(isNotNull, named: 'environment'))) .thenReturn(new ProcessResult(1, 1, '26.1.1\n', 'Mystery error')); expect(sdk.sdkManagerVersion, isNull); }, overrides: <Type, Generator>{
diff --git a/packages/flutter_tools/test/base/build_test.dart b/packages/flutter_tools/test/base/build_test.dart index 754af83..08b54b2 100644 --- a/packages/flutter_tools/test/base/build_test.dart +++ b/packages/flutter_tools/test/base/build_test.dart
@@ -120,7 +120,7 @@ GenSnapshot: () => genSnapshot, }; - Future<Null> writeFingerprint({ Map<String, String> files = const <String, String>{} }) { + Future<void> writeFingerprint({ Map<String, String> files = const <String, String>{} }) { return fs.file('output.snapshot.d.fingerprint').writeAsString(json.encode(<String, dynamic>{ 'version': kVersion, 'properties': <String, String>{
diff --git a/packages/flutter_tools/test/commands/daemon_test.dart b/packages/flutter_tools/test/commands/daemon_test.dart index 037c123..7aedae9 100644 --- a/packages/flutter_tools/test/commands/daemon_test.dart +++ b/packages/flutter_tools/test/commands/daemon_test.dart
@@ -61,7 +61,7 @@ }); expect(response['id'], isNull); expect(response['event'], 'daemon.logMessage'); - final Map<String, String> logMessage = response['params']; + final Map<String, String> logMessage = response['params'].cast<String, String>(); expect(logMessage['level'], 'error'); expect(logMessage['message'], 'daemon.logMessage test'); responses.close();
diff --git a/packages/flutter_tools/test/ios/cocoapods_test.dart b/packages/flutter_tools/test/ios/cocoapods_test.dart index 0db5768..14f6907 100644 --- a/packages/flutter_tools/test/ios/cocoapods_test.dart +++ b/packages/flutter_tools/test/ios/cocoapods_test.dart
@@ -142,7 +142,7 @@ testUsingContext('creates swift Podfile if swift', () { when(mockXcodeProjectInterpreter.isInstalled).thenReturn(true); - when(mockXcodeProjectInterpreter.getBuildSettings(any, any)).thenReturn(<String, String>{ + when(mockXcodeProjectInterpreter.getBuildSettings(typed(any), typed(any))).thenReturn(<String, String>{ 'SWIFT_VERSION': '4.0', }); @@ -204,7 +204,7 @@ iosEngineDir: 'engine/path', ); verifyNever(mockProcessManager.run( - argThat(containsAllInOrder(<String>['pod', 'install'])), + typedArgThat(containsAllInOrder(<String>['pod', 'install'])), workingDirectory: anyNamed('workingDirectory'), environment: anyNamed('environment'), )); @@ -226,7 +226,7 @@ } catch(e) { expect(e, const isInstanceOf<ToolExit>()); verifyNever(mockProcessManager.run( - argThat(containsAllInOrder(<String>['pod', 'install'])), + typedArgThat(containsAllInOrder(<String>['pod', 'install'])), workingDirectory: anyNamed('workingDirectory'), environment: anyNamed('environment'), )); @@ -437,7 +437,7 @@ ); expect(didInstall, isFalse); verifyNever(mockProcessManager.run( - argThat(containsAllInOrder(<String>['pod', 'install'])), + typedArgThat(containsAllInOrder(<String>['pod', 'install'])), workingDirectory: anyNamed('workingDirectory'), environment: anyNamed('environment'), ));
diff --git a/packages/flutter_tools/test/ios/code_signing_test.dart b/packages/flutter_tools/test/ios/code_signing_test.dart index 5f18082..538450a 100644 --- a/packages/flutter_tools/test/ios/code_signing_test.dart +++ b/packages/flutter_tools/test/ios/code_signing_test.dart
@@ -72,11 +72,12 @@ when(mockProcessManager.runSync(<String>['which', 'openssl'])) .thenReturn(exitsHappy); when(mockProcessManager.runSync( - argThat(contains('find-identity')), + typedArgThat(contains('find-identity')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenReturn(exitsHappy); + Map<String, String> signingConfigs; try { signingConfigs = await getCodeSigningIdentityDevelopmentTeam(iosApp: app); @@ -96,7 +97,7 @@ when(mockProcessManager.runSync(<String>['which', 'openssl'])) .thenReturn(exitsHappy); when(mockProcessManager.runSync( - argThat(contains('find-identity')), + typedArgThat(contains('find-identity')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenReturn(new ProcessResult( @@ -123,7 +124,7 @@ final MockStream mockStdErr = new MockStream(); when(mockProcessManager.start( - argThat(contains('openssl')), + typedArgThat(contains('openssl')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenAnswer((Invocation invocation) => new Future<Process>.value(mockProcess)); @@ -155,7 +156,7 @@ when(mockProcessManager.runSync(<String>['which', 'openssl'])) .thenReturn(exitsHappy); when(mockProcessManager.runSync( - argThat(contains('find-identity')), + typedArgThat(contains('find-identity')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenReturn(new ProcessResult( @@ -182,7 +183,7 @@ final MockStream mockStdErr = new MockStream(); when(mockProcessManager.start( - argThat(contains('openssl')), + typedArgThat(contains('openssl')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenAnswer((Invocation invocation) => new Future<Process>.value(mockProcess)); @@ -218,7 +219,7 @@ when(mockProcessManager.runSync(<String>['which', 'openssl'])) .thenReturn(exitsHappy); when(mockProcessManager.runSync( - argThat(contains('find-identity')), + typedArgThat(contains('find-identity')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenReturn(new ProcessResult( @@ -249,7 +250,7 @@ final MockStream mockOpenSslStdErr = new MockStream(); when(mockProcessManager.start( - argThat(contains('openssl')), + typedArgThat(contains('openssl')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenAnswer((Invocation invocation) => new Future<Process>.value(mockOpenSslProcess)); @@ -292,7 +293,7 @@ when(mockProcessManager.runSync(<String>['which', 'openssl'])) .thenReturn(exitsHappy); when(mockProcessManager.runSync( - argThat(contains('find-identity')), + typedArgThat(contains('find-identity')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenReturn(new ProcessResult( @@ -323,7 +324,7 @@ final MockStream mockOpenSslStdErr = new MockStream(); when(mockProcessManager.start( - argThat(contains('openssl')), + typedArgThat(contains('openssl')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenAnswer((Invocation invocation) => new Future<Process>.value(mockOpenSslProcess)); @@ -360,7 +361,7 @@ when(mockProcessManager.runSync(<String>['which', 'openssl'])) .thenReturn(exitsHappy); when(mockProcessManager.runSync( - argThat(contains('find-identity')), + typedArgThat(contains('find-identity')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenReturn(new ProcessResult( @@ -389,7 +390,7 @@ final MockStream mockOpenSslStdErr = new MockStream(); when(mockProcessManager.start( - argThat(contains('openssl')), + typedArgThat(contains('openssl')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenAnswer((Invocation invocation) => new Future<Process>.value(mockOpenSslProcess)); @@ -430,7 +431,7 @@ when(mockProcessManager.runSync(<String>['which', 'openssl'])) .thenReturn(exitsHappy); when(mockProcessManager.runSync( - argThat(contains('find-identity')), + typedArgThat(contains('find-identity')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenReturn(new ProcessResult( @@ -462,7 +463,7 @@ final MockStream mockOpenSslStdErr = new MockStream(); when(mockProcessManager.start( - argThat(contains('openssl')), + typedArgThat(contains('openssl')), environment: anyNamed('environment'), workingDirectory: anyNamed('workingDirectory'), )).thenAnswer((Invocation invocation) => new Future<Process>.value(mockOpenSslProcess));
diff --git a/packages/flutter_tools/test/ios/mac_test.dart b/packages/flutter_tools/test/ios/mac_test.dart index 3772ab2..4bc6028 100644 --- a/packages/flutter_tools/test/ios/mac_test.dart +++ b/packages/flutter_tools/test/ios/mac_test.dart
@@ -82,7 +82,7 @@ testUsingContext('idevicescreenshot captures and returns screenshot', () async { when(mockOutputFile.path).thenReturn(outputPath); - when(mockProcessManager.run(any, environment: null, workingDirectory: null)).thenAnswer( + when(mockProcessManager.run(typed(any), environment: null, workingDirectory: null)).thenAnswer( (Invocation invocation) => new Future<ProcessResult>.value(new ProcessResult(4, 0, '', ''))); await iMobileDevice.takeScreenshot(mockOutputFile);
diff --git a/packages/flutter_tools/test/ios/simulators_test.dart b/packages/flutter_tools/test/ios/simulators_test.dart index 03fc530..6d4bc97 100644 --- a/packages/flutter_tools/test/ios/simulators_test.dart +++ b/packages/flutter_tools/test/ios/simulators_test.dart
@@ -175,7 +175,7 @@ mockProcessManager = new MockProcessManager(); // Let everything else return exit code 0 so process.dart doesn't crash. when( - mockProcessManager.run(any, environment: null, workingDirectory: null) + mockProcessManager.run(typed(any), environment: null, workingDirectory: null) ).thenAnswer((Invocation invocation) => new Future<ProcessResult>.value(new ProcessResult(2, 0, '', '')) ); @@ -229,7 +229,7 @@ setUp(() { mockProcessManager = new MockProcessManager(); - when(mockProcessManager.start(any, environment: null, workingDirectory: null)) + when(mockProcessManager.start(typed(any), environment: null, workingDirectory: null)) .thenAnswer((Invocation invocation) => new Future<Process>.value(new MockProcess())); }); @@ -237,7 +237,7 @@ final IOSSimulator device = new IOSSimulator('x', name: 'iPhone SE', category: 'iOS 9.3'); await launchDeviceLogTool(device); expect( - verify(mockProcessManager.start(captureAny, environment: null, workingDirectory: null)).captured.single, + verify(mockProcessManager.start(typed(captureAny), environment: null, workingDirectory: null)).captured.single, contains('tail'), ); }, @@ -249,7 +249,7 @@ final IOSSimulator device = new IOSSimulator('x', name: 'iPhone SE', category: 'iOS 11.0'); await launchDeviceLogTool(device); expect( - verify(mockProcessManager.start(captureAny, environment: null, workingDirectory: null)).captured.single, + verify(mockProcessManager.start(typed(captureAny), environment: null, workingDirectory: null)).captured.single, contains('/usr/bin/log'), ); }, @@ -271,7 +271,7 @@ final IOSSimulator device = new IOSSimulator('x', name: 'iPhone SE', category: 'iOS 9.3'); await launchSystemLogTool(device); expect( - verify(mockProcessManager.start(captureAny, environment: null, workingDirectory: null)).captured.single, + verify(mockProcessManager.start(typed(captureAny), environment: null, workingDirectory: null)).captured.single, contains('tail'), ); },
diff --git a/packages/flutter_tools/test/ios/xcodeproj_test.dart b/packages/flutter_tools/test/ios/xcodeproj_test.dart index 621e992..31b1bcc 100644 --- a/packages/flutter_tools/test/ios/xcodeproj_test.dart +++ b/packages/flutter_tools/test/ios/xcodeproj_test.dart
@@ -282,7 +282,7 @@ } testUsingOsxContext('sets ARCHS=armv7 when armv7 local engine is set', () async { - when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, any)).thenReturn('engine'); + when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, typed(any))).thenReturn('engine'); when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); const BuildInfo buildInfo = const BuildInfo(BuildMode.debug, null, previewDart2: true, @@ -302,7 +302,7 @@ }); testUsingOsxContext('sets TRACK_WIDGET_CREATION=true when trackWidgetCreation is true', () async { - when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, any)).thenReturn('engine'); + when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, typed(any))).thenReturn('engine'); when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); const BuildInfo buildInfo = const BuildInfo(BuildMode.debug, null, previewDart2: true, @@ -323,7 +323,7 @@ }); testUsingOsxContext('does not set TRACK_WIDGET_CREATION when trackWidgetCreation is false', () async { - when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, any)).thenReturn('engine'); + when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, typed(any))).thenReturn('engine'); when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile_arm')); const BuildInfo buildInfo = const BuildInfo(BuildMode.debug, null, previewDart2: true, @@ -343,7 +343,7 @@ }); testUsingOsxContext('sets ARCHS=armv7 when armv7 local engine is set', () async { - when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, any)).thenReturn('engine'); + when(mockArtifacts.getArtifactPath(Artifact.flutterFramework, TargetPlatform.ios, typed(any))).thenReturn('engine'); when(mockArtifacts.engineOutPath).thenReturn(fs.path.join('out', 'ios_profile')); const BuildInfo buildInfo = const BuildInfo(BuildMode.debug, null, previewDart2: true,
diff --git a/packages/flutter_tools/test/runner/flutter_command_test.dart b/packages/flutter_tools/test/runner/flutter_command_test.dart index 6366eb0..6aa663e 100644 --- a/packages/flutter_tools/test/runner/flutter_command_test.dart +++ b/packages/flutter_tools/test/runner/flutter_command_test.dart
@@ -60,7 +60,9 @@ verify(clock.now()).called(2); expect( - verify(usage.sendTiming(captureAny, captureAny, captureAny, label: captureAny)).captured, + verify(usage.sendTiming( + typed(captureAny), typed(captureAny), typed(captureAny), + label: captureAnyNamed('label'))).captured, <dynamic>['flutter', 'dummy', const Duration(milliseconds: 1000), null] ); }, @@ -77,7 +79,9 @@ new DummyFlutterCommand(noUsagePath: true); await flutterCommand.run(); verify(clock.now()).called(2); - verifyNever(usage.sendTiming(captureAny, captureAny, captureAny, label: captureAny)); + verifyNever(usage.sendTiming( + typed(captureAny), typed(captureAny), typed(captureAny), + label: captureAnyNamed('label'))); }, overrides: <Type, Generator>{ Clock: () => clock, @@ -101,7 +105,9 @@ await flutterCommand.run(); verify(clock.now()).called(2); expect( - verify(usage.sendTiming(captureAny, captureAny, captureAny, label: captureAny)).captured, + verify(usage.sendTiming( + typed(captureAny), typed(captureAny), typed(captureAny), + label: captureAnyNamed('label'))).captured, <dynamic>[ 'flutter', 'dummy', @@ -130,8 +136,15 @@ verify(clock.now()).called(2); expect( - verify(usage.sendTiming(captureAny, captureAny, captureAny, label: captureAny)).captured, - <dynamic>['flutter', 'dummy', const Duration(milliseconds: 1000), 'fail'] + verify(usage.sendTiming( + typed(captureAny), typed(captureAny), typed(captureAny), + label: captureAnyNamed('label'))).captured, + <dynamic>[ + 'flutter', + 'dummy', + const Duration(milliseconds: 1000), + 'fail' + ] ); } },