Unverified Commit 5ac54a6b authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] remove mocks from simcontrol and context (#81433)

parent ba4177f6
...@@ -9,6 +9,7 @@ import 'package:flutter_tools/src/base/file_system.dart'; ...@@ -9,6 +9,7 @@ import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/io.dart';
import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/logger.dart';
import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/base/process.dart';
import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/build_info.dart';
import 'package:flutter_tools/src/devfs.dart'; import 'package:flutter_tools/src/devfs.dart';
import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/device.dart';
...@@ -19,7 +20,7 @@ import 'package:flutter_tools/src/ios/plist_parser.dart'; ...@@ -19,7 +20,7 @@ import 'package:flutter_tools/src/ios/plist_parser.dart';
import 'package:flutter_tools/src/ios/simulators.dart'; import 'package:flutter_tools/src/ios/simulators.dart';
import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:flutter_tools/src/macos/xcode.dart';
import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/project.dart';
import 'package:mockito/mockito.dart'; import 'package:test/fake.dart';
import '../../src/common.dart'; import '../../src/common.dart';
import '../../src/context.dart'; import '../../src/context.dart';
...@@ -47,18 +48,18 @@ void main() { ...@@ -47,18 +48,18 @@ void main() {
}); });
group('_IOSSimulatorDevicePortForwarder', () { group('_IOSSimulatorDevicePortForwarder', () {
MockSimControl mockSimControl; FakeSimControl simControl;
Xcode xcode; Xcode xcode;
setUp(() { setUp(() {
mockSimControl = MockSimControl(); simControl = FakeSimControl();
xcode = Xcode.test(processManager: FakeProcessManager.any()); xcode = Xcode.test(processManager: FakeProcessManager.any());
}); });
testUsingContext('dispose() does not throw an exception', () async { testUsingContext('dispose() does not throw an exception', () async {
final IOSSimulator simulator = IOSSimulator( final IOSSimulator simulator = IOSSimulator(
'123', '123',
simControl: mockSimControl, simControl: simControl,
); );
final DevicePortForwarder portForwarder = simulator.portForwarder; final DevicePortForwarder portForwarder = simulator.portForwarder;
await portForwarder.forward(123); await portForwarder.forward(123);
...@@ -81,7 +82,7 @@ void main() { ...@@ -81,7 +82,7 @@ void main() {
testUsingContext('simulators only support debug mode', () async { testUsingContext('simulators only support debug mode', () async {
final IOSSimulator simulator = IOSSimulator( final IOSSimulator simulator = IOSSimulator(
'123', '123',
simControl: MockSimControl(), simControl: FakeSimControl(),
); );
expect(simulator.supportsRuntimeMode(BuildMode.debug), true); expect(simulator.supportsRuntimeMode(BuildMode.debug), true);
...@@ -95,17 +96,17 @@ void main() { ...@@ -95,17 +96,17 @@ void main() {
}); });
group('logFilePath', () { group('logFilePath', () {
MockSimControl mockSimControl; FakeSimControl simControl;
setUp(() { setUp(() {
mockSimControl = MockSimControl(); simControl = FakeSimControl();
}); });
testUsingContext('defaults to rooted from HOME', () { testUsingContext('defaults to rooted from HOME', () {
osx.environment['HOME'] = '/foo/bar'; osx.environment['HOME'] = '/foo/bar';
final IOSSimulator simulator = IOSSimulator( final IOSSimulator simulator = IOSSimulator(
'123', '123',
simControl: mockSimControl, simControl: simControl,
); );
expect(simulator.logFilePath, '/foo/bar/Library/Logs/CoreSimulator/123/system.log'); expect(simulator.logFilePath, '/foo/bar/Library/Logs/CoreSimulator/123/system.log');
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
...@@ -120,7 +121,7 @@ void main() { ...@@ -120,7 +121,7 @@ void main() {
osx.environment['IOS_SIMULATOR_LOG_FILE_PATH'] = '/baz/qux/%{id}/system.log'; osx.environment['IOS_SIMULATOR_LOG_FILE_PATH'] = '/baz/qux/%{id}/system.log';
final IOSSimulator simulator = IOSSimulator( final IOSSimulator simulator = IOSSimulator(
'456', '456',
simControl: mockSimControl, simControl: simControl,
); );
expect(simulator.logFilePath, '/baz/qux/456/system.log'); expect(simulator.logFilePath, '/baz/qux/456/system.log');
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
...@@ -181,10 +182,10 @@ void main() { ...@@ -181,10 +182,10 @@ void main() {
}); });
group('sdkMajorVersion', () { group('sdkMajorVersion', () {
MockSimControl mockSimControl; FakeSimControl simControl;
setUp(() { setUp(() {
mockSimControl = MockSimControl(); simControl = FakeSimControl();
}); });
// This new version string appears in SimulatorApp-850 CoreSimulator-518.16 beta. // This new version string appears in SimulatorApp-850 CoreSimulator-518.16 beta.
...@@ -193,7 +194,7 @@ void main() { ...@@ -193,7 +194,7 @@ void main() {
'x', 'x',
name: 'iPhone SE', name: 'iPhone SE',
simulatorCategory: 'com.apple.CoreSimulator.SimRuntime.iOS-11-3', simulatorCategory: 'com.apple.CoreSimulator.SimRuntime.iOS-11-3',
simControl: mockSimControl, simControl: simControl,
); );
expect(await device.sdkMajorVersion, 11); expect(await device.sdkMajorVersion, 11);
...@@ -204,7 +205,7 @@ void main() { ...@@ -204,7 +205,7 @@ void main() {
'x', 'x',
name: 'iPhone SE', name: 'iPhone SE',
simulatorCategory: 'iOS 11.2', simulatorCategory: 'iOS 11.2',
simControl: mockSimControl, simControl: simControl,
); );
expect(await device.sdkMajorVersion, 11); expect(await device.sdkMajorVersion, 11);
...@@ -215,7 +216,7 @@ void main() { ...@@ -215,7 +216,7 @@ void main() {
'x', 'x',
name: 'iPhone SE', name: 'iPhone SE',
simulatorCategory: 'iOS 11.2', simulatorCategory: 'iOS 11.2',
simControl: mockSimControl, simControl: simControl,
); );
expect(device.category, Category.mobile); expect(device.category, Category.mobile);
...@@ -223,17 +224,17 @@ void main() { ...@@ -223,17 +224,17 @@ void main() {
}); });
group('IOSSimulator.isSupported', () { group('IOSSimulator.isSupported', () {
MockSimControl mockSimControl; FakeSimControl simControl;
setUp(() { setUp(() {
mockSimControl = MockSimControl(); simControl = FakeSimControl();
}); });
testUsingContext('Apple TV is unsupported', () { testUsingContext('Apple TV is unsupported', () {
final IOSSimulator simulator = IOSSimulator( final IOSSimulator simulator = IOSSimulator(
'x', 'x',
name: 'Apple TV', name: 'Apple TV',
simControl: mockSimControl, simControl: simControl,
); );
expect(simulator.isSupported(), false); expect(simulator.isSupported(), false);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
...@@ -246,7 +247,7 @@ void main() { ...@@ -246,7 +247,7 @@ void main() {
expect(IOSSimulator( expect(IOSSimulator(
'x', 'x',
name: 'Apple Watch', name: 'Apple Watch',
simControl: mockSimControl, simControl: simControl,
).isSupported(), false); ).isSupported(), false);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Platform: () => osx, Platform: () => osx,
...@@ -258,7 +259,7 @@ void main() { ...@@ -258,7 +259,7 @@ void main() {
expect(IOSSimulator( expect(IOSSimulator(
'x', 'x',
name: 'iPad 2', name: 'iPad 2',
simControl: mockSimControl, simControl: simControl,
).isSupported(), true); ).isSupported(), true);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Platform: () => osx, Platform: () => osx,
...@@ -270,7 +271,7 @@ void main() { ...@@ -270,7 +271,7 @@ void main() {
expect(IOSSimulator( expect(IOSSimulator(
'x', 'x',
name: 'iPad Retina', name: 'iPad Retina',
simControl: mockSimControl, simControl: simControl,
).isSupported(), true); ).isSupported(), true);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Platform: () => osx, Platform: () => osx,
...@@ -282,7 +283,7 @@ void main() { ...@@ -282,7 +283,7 @@ void main() {
expect(IOSSimulator( expect(IOSSimulator(
'x', 'x',
name: 'iPhone 5', name: 'iPhone 5',
simControl: mockSimControl, simControl: simControl,
).isSupported(), true); ).isSupported(), true);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Platform: () => osx, Platform: () => osx,
...@@ -294,7 +295,7 @@ void main() { ...@@ -294,7 +295,7 @@ void main() {
expect(IOSSimulator( expect(IOSSimulator(
'x', 'x',
name: 'iPhone 5s', name: 'iPhone 5s',
simControl: mockSimControl, simControl: simControl,
).isSupported(), true); ).isSupported(), true);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Platform: () => osx, Platform: () => osx,
...@@ -306,7 +307,7 @@ void main() { ...@@ -306,7 +307,7 @@ void main() {
expect(IOSSimulator( expect(IOSSimulator(
'x', 'x',
name: 'iPhone SE', name: 'iPhone SE',
simControl: mockSimControl, simControl: simControl,
).isSupported(), true); ).isSupported(), true);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Platform: () => osx, Platform: () => osx,
...@@ -318,7 +319,7 @@ void main() { ...@@ -318,7 +319,7 @@ void main() {
expect(IOSSimulator( expect(IOSSimulator(
'x', 'x',
name: 'iPhone 7 Plus', name: 'iPhone 7 Plus',
simControl: mockSimControl, simControl: simControl,
).isSupported(), true); ).isSupported(), true);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Platform: () => osx, Platform: () => osx,
...@@ -330,7 +331,7 @@ void main() { ...@@ -330,7 +331,7 @@ void main() {
expect(IOSSimulator( expect(IOSSimulator(
'x', 'x',
name: 'iPhone X', name: 'iPhone X',
simControl: mockSimControl, simControl: simControl,
).isSupported(), true); ).isSupported(), true);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
Platform: () => osx, Platform: () => osx,
...@@ -377,11 +378,11 @@ void main() { ...@@ -377,11 +378,11 @@ void main() {
group('device log tool', () { group('device log tool', () {
FakeProcessManager fakeProcessManager; FakeProcessManager fakeProcessManager;
MockSimControl mockSimControl; FakeSimControl simControl;
setUp(() { setUp(() {
fakeProcessManager = FakeProcessManager.empty(); fakeProcessManager = FakeProcessManager.empty();
mockSimControl = MockSimControl(); simControl = FakeSimControl();
}); });
testUsingContext('syslog uses tail', () async { testUsingContext('syslog uses tail', () async {
...@@ -389,7 +390,7 @@ void main() { ...@@ -389,7 +390,7 @@ void main() {
'x', 'x',
name: 'iPhone SE', name: 'iPhone SE',
simulatorCategory: 'iOS 9.3', simulatorCategory: 'iOS 9.3',
simControl: mockSimControl, simControl: simControl,
); );
fakeProcessManager.addCommand(const FakeCommand(command: <String>[ fakeProcessManager.addCommand(const FakeCommand(command: <String>[
'tail', 'tail',
...@@ -416,7 +417,7 @@ void main() { ...@@ -416,7 +417,7 @@ void main() {
'x', 'x',
name: 'iPhone SE', name: 'iPhone SE',
simulatorCategory: 'iOS 11.0', simulatorCategory: 'iOS 11.0',
simControl: mockSimControl, simControl: simControl,
); );
const String expectedPredicate = 'eventType = logEvent AND ' const String expectedPredicate = 'eventType = logEvent AND '
'processImagePath ENDSWITH "My Super Awesome App" AND ' 'processImagePath ENDSWITH "My Super Awesome App" AND '
...@@ -450,7 +451,7 @@ void main() { ...@@ -450,7 +451,7 @@ void main() {
'x', 'x',
name: 'iPhone SE', name: 'iPhone SE',
simulatorCategory: 'iOS 11.0', simulatorCategory: 'iOS 11.0',
simControl: mockSimControl, simControl: simControl,
); );
const String expectedPredicate = 'eventType = logEvent AND ' const String expectedPredicate = 'eventType = logEvent AND '
'(senderImagePath ENDSWITH "/Flutter" OR senderImagePath ENDSWITH "/libswiftCore.dylib" OR processImageUUID == senderImageUUID) AND ' '(senderImagePath ENDSWITH "/Flutter" OR senderImagePath ENDSWITH "/libswiftCore.dylib" OR processImageUUID == senderImageUUID) AND '
...@@ -482,13 +483,13 @@ void main() { ...@@ -482,13 +483,13 @@ void main() {
group('log reader', () { group('log reader', () {
FakeProcessManager fakeProcessManager; FakeProcessManager fakeProcessManager;
FakeIosProject mockIosProject; FakeIosProject mockIosProject;
MockSimControl mockSimControl; FakeSimControl simControl;
Xcode xcode; Xcode xcode;
setUp(() { setUp(() {
fakeProcessManager = FakeProcessManager.empty(); fakeProcessManager = FakeProcessManager.empty();
mockIosProject = FakeIosProject(); mockIosProject = FakeIosProject();
mockSimControl = MockSimControl(); simControl = FakeSimControl();
xcode = Xcode.test(processManager: FakeProcessManager.any()); xcode = Xcode.test(processManager: FakeProcessManager.any());
}); });
...@@ -513,7 +514,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' ...@@ -513,7 +514,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text'''
final IOSSimulator device = IOSSimulator( final IOSSimulator device = IOSSimulator(
'123456', '123456',
simulatorCategory: 'iOS 10.0', simulatorCategory: 'iOS 10.0',
simControl: mockSimControl, simControl: simControl,
); );
final DeviceLogReader logReader = device.getLogReader( final DeviceLogReader logReader = device.getLogReader(
app: await BuildableIOSApp.fromProject(mockIosProject, null), app: await BuildableIOSApp.fromProject(mockIosProject, null),
...@@ -547,7 +548,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' ...@@ -547,7 +548,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text'''
final IOSSimulator device = IOSSimulator( final IOSSimulator device = IOSSimulator(
'123456', '123456',
simulatorCategory: 'iOS 10.3', simulatorCategory: 'iOS 10.3',
simControl: mockSimControl, simControl: simControl,
); );
final DeviceLogReader logReader = device.getLogReader( final DeviceLogReader logReader = device.getLogReader(
app: await BuildableIOSApp.fromProject(mockIosProject, null), app: await BuildableIOSApp.fromProject(mockIosProject, null),
...@@ -594,7 +595,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' ...@@ -594,7 +595,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text'''
final IOSSimulator device = IOSSimulator( final IOSSimulator device = IOSSimulator(
'123456', '123456',
simulatorCategory: 'iOS 10.3', simulatorCategory: 'iOS 10.3',
simControl: mockSimControl, simControl: simControl,
); );
final DeviceLogReader logReader = device.getLogReader( final DeviceLogReader logReader = device.getLogReader(
app: await BuildableIOSApp.fromProject(mockIosProject, null), app: await BuildableIOSApp.fromProject(mockIosProject, null),
...@@ -659,7 +660,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' ...@@ -659,7 +660,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text'''
final IOSSimulator device = IOSSimulator( final IOSSimulator device = IOSSimulator(
'123456', '123456',
simulatorCategory: 'iOS 11.0', simulatorCategory: 'iOS 11.0',
simControl: mockSimControl, simControl: simControl,
); );
final DeviceLogReader logReader = device.getLogReader( final DeviceLogReader logReader = device.getLogReader(
app: await BuildableIOSApp.fromProject(mockIosProject, null), app: await BuildableIOSApp.fromProject(mockIosProject, null),
...@@ -852,11 +853,11 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' ...@@ -852,11 +853,11 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text'''
group('startApp', () { group('startApp', () {
FakePlistParser testPlistParser; FakePlistParser testPlistParser;
SimControl simControl; FakeSimControl simControl;
Xcode xcode; Xcode xcode;
setUp(() { setUp(() {
simControl = MockSimControl(); simControl = FakeSimControl();
xcode = Xcode.test(processManager: FakeProcessManager.any()); xcode = Xcode.test(processManager: FakeProcessManager.any());
testPlistParser = FakePlistParser(); testPlistParser = FakePlistParser();
}); });
...@@ -877,7 +878,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' ...@@ -877,7 +878,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text'''
final DebuggingOptions mockOptions = DebuggingOptions.disabled(mockInfo); final DebuggingOptions mockOptions = DebuggingOptions.disabled(mockInfo);
await device.startApp(package, prebuiltApplication: true, debuggingOptions: mockOptions); await device.startApp(package, prebuiltApplication: true, debuggingOptions: mockOptions);
verify(simControl.launch(any, 'correct', any)); expect(simControl.requests.single.appIdentifier, 'correct');
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
PlistParser: () => testPlistParser, PlistParser: () => testPlistParser,
FileSystem: () => fileSystem, FileSystem: () => fileSystem,
...@@ -900,7 +901,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' ...@@ -900,7 +901,7 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text'''
final DebuggingOptions mockOptions = DebuggingOptions.enabled(mockInfo, enableSoftwareRendering: true); final DebuggingOptions mockOptions = DebuggingOptions.enabled(mockInfo, enableSoftwareRendering: true);
await device.startApp(package, prebuiltApplication: true, debuggingOptions: mockOptions); await device.startApp(package, prebuiltApplication: true, debuggingOptions: mockOptions);
verify(simControl.launch(any, any, captureAny)).captured.contains('--enable-software-rendering'); expect(simControl.requests.single.launchArgs, contains('--enable-software-rendering'));
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
PlistParser: () => testPlistParser, PlistParser: () => testPlistParser,
FileSystem: () => fileSystem, FileSystem: () => fileSystem,
...@@ -910,11 +911,11 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text''' ...@@ -910,11 +911,11 @@ Dec 20 17:04:32 md32-11-vm1 Another App[88374]: Ignore this text'''
}); });
group('IOSDevice.isSupportedForProject', () { group('IOSDevice.isSupportedForProject', () {
MockSimControl mockSimControl; FakeSimControl simControl;
Xcode xcode; Xcode xcode;
setUp(() { setUp(() {
mockSimControl = MockSimControl(); simControl = FakeSimControl();
xcode = Xcode.test(processManager: FakeProcessManager.any()); xcode = Xcode.test(processManager: FakeProcessManager.any());
}); });
...@@ -932,7 +933,7 @@ flutter: ...@@ -932,7 +933,7 @@ flutter:
final IOSSimulator simulator = IOSSimulator( final IOSSimulator simulator = IOSSimulator(
'test', 'test',
simControl: mockSimControl, simControl: simControl,
); );
expect(simulator.isSupportedForProject(flutterProject), true); expect(simulator.isSupportedForProject(flutterProject), true);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
...@@ -950,7 +951,7 @@ flutter: ...@@ -950,7 +951,7 @@ flutter:
final IOSSimulator simulator = IOSSimulator( final IOSSimulator simulator = IOSSimulator(
'test', 'test',
simControl: mockSimControl, simControl: simControl,
); );
expect(simulator.isSupportedForProject(flutterProject), true); expect(simulator.isSupportedForProject(flutterProject), true);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
...@@ -966,7 +967,7 @@ flutter: ...@@ -966,7 +967,7 @@ flutter:
final IOSSimulator simulator = IOSSimulator( final IOSSimulator simulator = IOSSimulator(
'test', 'test',
simControl: mockSimControl, simControl: simControl,
); );
expect(simulator.isSupportedForProject(flutterProject), false); expect(simulator.isSupportedForProject(flutterProject), false);
}, overrides: <Type, Generator>{ }, overrides: <Type, Generator>{
...@@ -978,7 +979,7 @@ flutter: ...@@ -978,7 +979,7 @@ flutter:
testUsingContext('createDevFSWriter returns a LocalDevFSWriter', () { testUsingContext('createDevFSWriter returns a LocalDevFSWriter', () {
final IOSSimulator simulator = IOSSimulator( final IOSSimulator simulator = IOSSimulator(
'test', 'test',
simControl: mockSimControl, simControl: simControl,
); );
expect(simulator.createDevFSWriter(null, ''), isA<LocalDevFSWriter>()); expect(simulator.createDevFSWriter(null, ''), isA<LocalDevFSWriter>());
...@@ -993,3 +994,26 @@ class FakeIosProject extends Fake implements IosProject { ...@@ -993,3 +994,26 @@ class FakeIosProject extends Fake implements IosProject {
@override @override
Future<String> hostAppBundleName(BuildInfo buildInfo) async => 'My Super Awesome App.app'; Future<String> hostAppBundleName(BuildInfo buildInfo) async => 'My Super Awesome App.app';
} }
class FakeSimControl extends Fake implements SimControl {
final List<LaunchRequest> requests = <LaunchRequest>[];
@override
Future<RunResult> launch(String deviceId, String appIdentifier, [ List<String> launchArgs ]) async {
requests.add(LaunchRequest(deviceId, appIdentifier, launchArgs));
return RunResult(ProcessResult(0, 0, '', ''), <String>['test']);
}
@override
Future<RunResult> install(String deviceId, String appPath) async {
return RunResult(ProcessResult(0, 0, '', ''), <String>['test']);
}
}
class LaunchRequest {
const LaunchRequest(this.deviceId, this.appIdentifier, this.launchArgs);
final String deviceId;
final String appIdentifier;
final List<String> launchArgs;
}
...@@ -36,7 +36,6 @@ import 'package:flutter_tools/src/reporting/crash_reporting.dart'; ...@@ -36,7 +36,6 @@ import 'package:flutter_tools/src/reporting/crash_reporting.dart';
import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:flutter_tools/src/reporting/reporting.dart';
import 'package:flutter_tools/src/version.dart'; import 'package:flutter_tools/src/version.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import 'package:mockito/mockito.dart';
import 'common.dart'; import 'common.dart';
import 'fake_http_client.dart'; import 'fake_http_client.dart';
...@@ -113,11 +112,7 @@ void testUsingContext( ...@@ -113,11 +112,7 @@ void testUsingContext(
Doctor: () => FakeDoctor(globals.logger), Doctor: () => FakeDoctor(globals.logger),
FlutterVersion: () => FakeFlutterVersion(), FlutterVersion: () => FakeFlutterVersion(),
HttpClient: () => FakeHttpClient.any(), HttpClient: () => FakeHttpClient.any(),
IOSSimulatorUtils: () { IOSSimulatorUtils: () => const NoopIOSSimulatorUtils(),
final MockIOSSimulatorUtils mock = MockIOSSimulatorUtils();
when(mock.getAttachedDevices()).thenAnswer((Invocation _) async => <IOSSimulator>[]);
return mock;
},
OutputPreferences: () => OutputPreferences.test(), OutputPreferences: () => OutputPreferences.test(),
Logger: () => BufferLogger( Logger: () => BufferLogger(
terminal: globals.terminal, terminal: globals.terminal,
...@@ -125,14 +120,13 @@ void testUsingContext( ...@@ -125,14 +120,13 @@ void testUsingContext(
), ),
OperatingSystemUtils: () => FakeOperatingSystemUtils(), OperatingSystemUtils: () => FakeOperatingSystemUtils(),
PersistentToolState: () => buildPersistentToolState(globals.fs), PersistentToolState: () => buildPersistentToolState(globals.fs),
SimControl: () => MockSimControl(),
Usage: () => TestUsage(), Usage: () => TestUsage(),
XcodeProjectInterpreter: () => FakeXcodeProjectInterpreter(), XcodeProjectInterpreter: () => FakeXcodeProjectInterpreter(),
FileSystem: () => LocalFileSystemBlockingSetCurrentDirectory(), FileSystem: () => LocalFileSystemBlockingSetCurrentDirectory(),
PlistParser: () => FakePlistParser(), PlistParser: () => FakePlistParser(),
Signals: () => FakeSignals(), Signals: () => FakeSignals(),
Pub: () => ThrowingPub(), // prevent accidentally using pub. Pub: () => ThrowingPub(), // prevent accidentally using pub.
CrashReporter: () => MockCrashReporter(), CrashReporter: () => const NoopCrashReporter(),
TemplateRenderer: () => const MustacheTemplateRenderer(), TemplateRenderer: () => const MustacheTemplateRenderer(),
}, },
body: () { body: () {
...@@ -286,13 +280,12 @@ class FakeDoctor extends Doctor { ...@@ -286,13 +280,12 @@ class FakeDoctor extends Doctor {
} }
} }
class MockSimControl extends Mock implements SimControl { class NoopIOSSimulatorUtils implements IOSSimulatorUtils {
MockSimControl() { const NoopIOSSimulatorUtils();
when(getConnectedDevices()).thenAnswer((Invocation _) async => <SimDevice>[]);
}
}
class MockIOSSimulatorUtils extends Mock implements IOSSimulatorUtils {} @override
Future<List<IOSSimulator>> getAttachedDevices() async => <IOSSimulator>[];
}
class FakeXcodeProjectInterpreter implements XcodeProjectInterpreter { class FakeXcodeProjectInterpreter implements XcodeProjectInterpreter {
@override @override
...@@ -332,7 +325,13 @@ class FakeXcodeProjectInterpreter implements XcodeProjectInterpreter { ...@@ -332,7 +325,13 @@ class FakeXcodeProjectInterpreter implements XcodeProjectInterpreter {
List<String> xcrunCommand() => <String>['xcrun']; List<String> xcrunCommand() => <String>['xcrun'];
} }
class MockCrashReporter extends Mock implements CrashReporter {} /// Prevent test crashest from being reported to the crash backend.
class NoopCrashReporter implements CrashReporter {
const NoopCrashReporter();
@override
Future<void> informUser(CrashDetails details, File crashFile) async { }
}
class LocalFileSystemBlockingSetCurrentDirectory extends LocalFileSystem { class LocalFileSystemBlockingSetCurrentDirectory extends LocalFileSystem {
LocalFileSystemBlockingSetCurrentDirectory() : super.test( LocalFileSystemBlockingSetCurrentDirectory() : super.test(
......
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