mirror of
https://github.com/flutter/flutter
synced 2024-10-13 03:32:55 +00:00
Move FakeOperatingSystemUtils from context.dart to fakes.dart (#80916)
This commit is contained in:
parent
7750482308
commit
a99fba01f1
|
@ -24,6 +24,7 @@ import 'package:process/process.dart';
|
|||
|
||||
import '../../src/common.dart';
|
||||
import '../../src/context.dart';
|
||||
import '../../src/fakes.dart';
|
||||
import '../../src/test_flutter_command_runner.dart';
|
||||
|
||||
final Platform _kNoColorTerminalPlatform = FakePlatform(stdoutSupportsAnsi: false);
|
||||
|
|
|
@ -17,7 +17,6 @@ import 'package:flutter_tools/src/doctor_validator.dart';
|
|||
import 'package:mockito/mockito.dart';
|
||||
|
||||
import '../../src/common.dart';
|
||||
import '../../src/context.dart';
|
||||
import '../../src/fakes.dart';
|
||||
import '../../src/mocks.dart' show MockAndroidSdk, MockProcessManager;
|
||||
|
||||
|
|
|
@ -12,7 +12,8 @@ import 'package:flutter_tools/src/base/platform.dart';
|
|||
import 'package:flutter_tools/src/cache.dart';
|
||||
import 'package:flutter_tools/src/project.dart';
|
||||
import '../../src/common.dart';
|
||||
import '../../src/context.dart';
|
||||
import '../../src/fake_process_manager.dart';
|
||||
import '../../src/fakes.dart';
|
||||
|
||||
void main() {
|
||||
group('injectGradleWrapperIfNeeded', () {
|
||||
|
|
|
@ -13,7 +13,8 @@ import 'package:flutter_tools/src/build_info.dart';
|
|||
import 'package:flutter_tools/src/cache.dart';
|
||||
|
||||
import '../src/common.dart';
|
||||
import '../src/context.dart';
|
||||
import '../src/fake_process_manager.dart';
|
||||
import '../src/fakes.dart';
|
||||
|
||||
void main() {
|
||||
group('CachedArtifacts', () {
|
||||
|
|
|
@ -21,9 +21,9 @@ import 'package:mockito/mockito.dart';
|
|||
import 'package:package_config/package_config.dart';
|
||||
|
||||
import '../src/common.dart';
|
||||
import '../src/context.dart';
|
||||
import '../src/fake_http_client.dart';
|
||||
import '../src/fake_vm_services.dart';
|
||||
import '../src/fakes.dart';
|
||||
|
||||
final FakeVmServiceRequest createDevFSRequest = FakeVmServiceRequest(
|
||||
method: '_createDevFS',
|
||||
|
|
|
@ -42,6 +42,7 @@ import 'package:vm_service/vm_service.dart' as vm_service;
|
|||
import '../../src/common.dart';
|
||||
import '../../src/context.dart';
|
||||
import '../../src/fake_vm_services.dart';
|
||||
import '../../src/fakes.dart';
|
||||
|
||||
final vm_service.Isolate fakeIsolate = vm_service.Isolate(
|
||||
id: '1',
|
||||
|
|
|
@ -8,8 +8,8 @@ import 'package:flutter_tools/src/base/logger.dart';
|
|||
import 'package:flutter_tools/src/ios/devices.dart';
|
||||
|
||||
import '../../src/common.dart';
|
||||
import '../../src/context.dart';
|
||||
import '../../src/fake_process_manager.dart';
|
||||
import '../../src/fakes.dart';
|
||||
|
||||
const Map<String, String> kDyLdLibEntry = <String, String>{
|
||||
'DYLD_LIBRARY_PATH': '/path/to/libs',
|
||||
|
|
|
@ -10,19 +10,18 @@ import 'package:flutter_tools/src/artifacts.dart';
|
|||
import 'package:flutter_tools/src/base/file_system.dart';
|
||||
import 'package:flutter_tools/src/base/logger.dart';
|
||||
import 'package:flutter_tools/src/base/process.dart';
|
||||
import 'package:flutter_tools/src/build_info.dart';
|
||||
import 'package:flutter_tools/src/cache.dart';
|
||||
import 'package:flutter_tools/src/ios/devices.dart';
|
||||
import 'package:flutter_tools/src/ios/mac.dart';
|
||||
import 'package:flutter_tools/src/project.dart';
|
||||
import 'package:flutter_tools/src/reporting/reporting.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:test/fake.dart';
|
||||
|
||||
import '../../src/common.dart';
|
||||
import '../../src/fake_process_manager.dart';
|
||||
import '../../src/fakes.dart';
|
||||
|
||||
class MockIosProject extends Mock implements IosProject {}
|
||||
|
||||
void main() {
|
||||
BufferLogger logger;
|
||||
|
||||
|
@ -414,12 +413,9 @@ Exited (sigterm)''',
|
|||
'another line';
|
||||
|
||||
testWithoutContext('upgradePbxProjWithFlutterAssets', () async {
|
||||
final MockIosProject project = MockIosProject();
|
||||
final File pbxprojFile = MemoryFileSystem.test().file('project.pbxproj')
|
||||
..writeAsStringSync(flutterAssetPbxProjLines);
|
||||
|
||||
when(project.xcodeProjectInfoFile).thenReturn(pbxprojFile);
|
||||
when(project.hostAppBundleName(any)).thenAnswer((_) => Future<String>.value('UnitTestRunner.app'));
|
||||
final FakeIosProject project = FakeIosProject(pbxprojFile);
|
||||
|
||||
bool result = upgradePbxProjWithFlutterAssets(project, logger);
|
||||
expect(result, true);
|
||||
|
@ -488,3 +484,15 @@ Exited (sigterm)''',
|
|||
});
|
||||
});
|
||||
}
|
||||
|
||||
class FakeIosProject extends Fake implements IosProject {
|
||||
FakeIosProject(this.xcodeProjectInfoFile);
|
||||
@override
|
||||
final File xcodeProjectInfoFile;
|
||||
|
||||
@override
|
||||
Future<String> hostAppBundleName(BuildInfo buildInfo) async => 'UnitTestRunner.app';
|
||||
|
||||
@override
|
||||
final Directory xcodeProject = null;
|
||||
}
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// @dart = 2.8
|
||||
|
||||
import 'package:file/memory.dart';
|
||||
import 'package:flutter_tools/src/base/file_system.dart';
|
||||
import 'package:flutter_tools/src/convert.dart';
|
||||
|
@ -241,8 +239,8 @@ const String _kApacheLicense = r'''
|
|||
''';
|
||||
|
||||
void main() {
|
||||
FileSystem fileSystem;
|
||||
LicenseCollector licenseCollector;
|
||||
late FileSystem fileSystem;
|
||||
late LicenseCollector licenseCollector;
|
||||
|
||||
setUp(() {
|
||||
fileSystem = MemoryFileSystem.test();
|
||||
|
|
|
@ -25,8 +25,8 @@ import 'package:mockito/mockito.dart';
|
|||
import 'package:yaml/yaml.dart';
|
||||
|
||||
import '../src/common.dart';
|
||||
import '../src/context.dart' hide FakeOperatingSystemUtils;
|
||||
import '../src/fakes.dart';
|
||||
import '../src/context.dart';
|
||||
import '../src/fakes.dart' hide FakeOperatingSystemUtils;
|
||||
import '../src/pubspec_schema.dart';
|
||||
|
||||
void main() {
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// @dart = 2.8
|
||||
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:file/memory.dart';
|
||||
|
@ -14,7 +12,8 @@ import 'package:flutter_tools/src/base/platform.dart';
|
|||
import 'package:flutter_tools/src/web/chrome.dart';
|
||||
|
||||
import '../../src/common.dart';
|
||||
import '../../src/context.dart';
|
||||
import '../../src/fake_process_manager.dart';
|
||||
import '../../src/fakes.dart';
|
||||
|
||||
const List<String> kChromeArgs = <String>[
|
||||
'--disable-background-timer-throttling',
|
||||
|
@ -30,12 +29,12 @@ const List<String> kChromeArgs = <String>[
|
|||
const String kDevtoolsStderr = '\n\nDevTools listening\n\n';
|
||||
|
||||
void main() {
|
||||
FileExceptionHandler exceptionHandler;
|
||||
ChromiumLauncher chromeLauncher;
|
||||
FileSystem fileSystem;
|
||||
Platform platform;
|
||||
FakeProcessManager processManager;
|
||||
OperatingSystemUtils operatingSystemUtils;
|
||||
late FileExceptionHandler exceptionHandler;
|
||||
late ChromiumLauncher chromeLauncher;
|
||||
late FileSystem fileSystem;
|
||||
late Platform platform;
|
||||
late FakeProcessManager processManager;
|
||||
late OperatingSystemUtils operatingSystemUtils;
|
||||
|
||||
setUp(() {
|
||||
exceptionHandler = FileExceptionHandler();
|
||||
|
|
|
@ -2,13 +2,11 @@
|
|||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// @dart = 2.8
|
||||
|
||||
import 'package:flutter_tools/src/base/user_messages.dart' hide userMessages;
|
||||
import 'package:flutter_tools/src/doctor_validator.dart';
|
||||
import 'package:flutter_tools/src/windows/visual_studio.dart';
|
||||
import 'package:flutter_tools/src/windows/visual_studio_validator.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:test/fake.dart';
|
||||
|
||||
import '../../src/common.dart';
|
||||
|
||||
|
@ -16,63 +14,50 @@ final UserMessages userMessages = UserMessages();
|
|||
|
||||
void main() {
|
||||
group('Visual Studio validation', () {
|
||||
MockVisualStudio mockVisualStudio;
|
||||
late FakeVisualStudio fakeVisualStudio;
|
||||
|
||||
setUp(() {
|
||||
mockVisualStudio = MockVisualStudio();
|
||||
// Default values regardless of whether VS is installed or not.
|
||||
when(mockVisualStudio.workloadDescription).thenReturn('Desktop development');
|
||||
when(mockVisualStudio.minimumVersionDescription).thenReturn('2019');
|
||||
when(mockVisualStudio.necessaryComponentDescriptions()).thenReturn(<String>['A', 'B']);
|
||||
fakeVisualStudio = FakeVisualStudio();
|
||||
});
|
||||
|
||||
// Assigns default values for a complete VS installation with necessary components.
|
||||
void _configureMockVisualStudioAsInstalled() {
|
||||
when(mockVisualStudio.isInstalled).thenReturn(true);
|
||||
when(mockVisualStudio.isAtLeastMinimumVersion).thenReturn(true);
|
||||
when(mockVisualStudio.isPrerelease).thenReturn(false);
|
||||
when(mockVisualStudio.isComplete).thenReturn(true);
|
||||
when(mockVisualStudio.isLaunchable).thenReturn(true);
|
||||
when(mockVisualStudio.isRebootRequired).thenReturn(false);
|
||||
when(mockVisualStudio.hasNecessaryComponents).thenReturn(true);
|
||||
when(mockVisualStudio.fullVersion).thenReturn('16.2');
|
||||
when(mockVisualStudio.displayName).thenReturn('Visual Studio Community 2019');
|
||||
when(mockVisualStudio.getWindows10SDKVersion()).thenReturn('10.0.18362.0');
|
||||
fakeVisualStudio.isPrerelease = false;
|
||||
fakeVisualStudio.isRebootRequired = false;
|
||||
fakeVisualStudio.fullVersion = '16.2';
|
||||
fakeVisualStudio.displayName = 'Visual Studio Community 2019';
|
||||
fakeVisualStudio.windows10SDKVersion = '10.0.18362.0';
|
||||
}
|
||||
|
||||
// Assigns default values for a complete VS installation that is too old.
|
||||
void _configureMockVisualStudioAsTooOld() {
|
||||
when(mockVisualStudio.isInstalled).thenReturn(true);
|
||||
when(mockVisualStudio.isAtLeastMinimumVersion).thenReturn(false);
|
||||
when(mockVisualStudio.isPrerelease).thenReturn(false);
|
||||
when(mockVisualStudio.isComplete).thenReturn(true);
|
||||
when(mockVisualStudio.isLaunchable).thenReturn(true);
|
||||
when(mockVisualStudio.isRebootRequired).thenReturn(false);
|
||||
when(mockVisualStudio.hasNecessaryComponents).thenReturn(true);
|
||||
when(mockVisualStudio.fullVersion).thenReturn('15.1');
|
||||
when(mockVisualStudio.displayName).thenReturn('Visual Studio Community 2017');
|
||||
when(mockVisualStudio.getWindows10SDKVersion()).thenReturn('10.0.17763.0');
|
||||
fakeVisualStudio.isAtLeastMinimumVersion = false;
|
||||
fakeVisualStudio.isPrerelease = false;
|
||||
fakeVisualStudio.isRebootRequired = false;
|
||||
fakeVisualStudio.fullVersion = '15.1';
|
||||
fakeVisualStudio.displayName = 'Visual Studio Community 2017';
|
||||
fakeVisualStudio.windows10SDKVersion = '10.0.17763.0';
|
||||
}
|
||||
|
||||
// Assigns default values for a missing VS installation.
|
||||
void _configureMockVisualStudioAsNotInstalled() {
|
||||
when(mockVisualStudio.isInstalled).thenReturn(false);
|
||||
when(mockVisualStudio.isAtLeastMinimumVersion).thenReturn(false);
|
||||
when(mockVisualStudio.isPrerelease).thenReturn(false);
|
||||
when(mockVisualStudio.isComplete).thenReturn(false);
|
||||
when(mockVisualStudio.isLaunchable).thenReturn(false);
|
||||
when(mockVisualStudio.isRebootRequired).thenReturn(false);
|
||||
when(mockVisualStudio.hasNecessaryComponents).thenReturn(false);
|
||||
when(mockVisualStudio.getWindows10SDKVersion()).thenReturn(null);
|
||||
fakeVisualStudio.isInstalled = false;
|
||||
fakeVisualStudio.isAtLeastMinimumVersion = false;
|
||||
fakeVisualStudio.isPrerelease = false;
|
||||
fakeVisualStudio.isComplete = false;
|
||||
fakeVisualStudio.isLaunchable = false;
|
||||
fakeVisualStudio.isRebootRequired = false;
|
||||
fakeVisualStudio.hasNecessaryComponents = false;
|
||||
fakeVisualStudio.windows10SDKVersion = null;
|
||||
}
|
||||
|
||||
testWithoutContext('Emits a message when Visual Studio is a pre-release version', () async {
|
||||
final VisualStudioValidator validator = VisualStudioValidator(
|
||||
userMessages: userMessages,
|
||||
visualStudio: mockVisualStudio,
|
||||
visualStudio: fakeVisualStudio,
|
||||
);
|
||||
_configureMockVisualStudioAsInstalled();
|
||||
when(mockVisualStudio.isPrerelease).thenReturn(true);
|
||||
fakeVisualStudio.isPrerelease = true;
|
||||
|
||||
final ValidationResult result = await validator.validate();
|
||||
final ValidationMessage expectedMessage = ValidationMessage(userMessages.visualStudioIsPrerelease);
|
||||
|
@ -83,10 +68,10 @@ void main() {
|
|||
testWithoutContext('Emits a partial status when Visual Studio installation is incomplete', () async {
|
||||
final VisualStudioValidator validator = VisualStudioValidator(
|
||||
userMessages: userMessages,
|
||||
visualStudio: mockVisualStudio,
|
||||
visualStudio: fakeVisualStudio,
|
||||
);
|
||||
_configureMockVisualStudioAsInstalled();
|
||||
when(mockVisualStudio.isComplete).thenReturn(false);
|
||||
fakeVisualStudio.isComplete = false;
|
||||
|
||||
final ValidationResult result = await validator.validate();
|
||||
final ValidationMessage expectedMessage = ValidationMessage.error(userMessages.visualStudioIsIncomplete);
|
||||
|
@ -98,10 +83,10 @@ void main() {
|
|||
testWithoutContext('Emits a partial status when Visual Studio installation needs rebooting', () async {
|
||||
final VisualStudioValidator validator = VisualStudioValidator(
|
||||
userMessages: userMessages,
|
||||
visualStudio: mockVisualStudio,
|
||||
visualStudio: fakeVisualStudio,
|
||||
);
|
||||
_configureMockVisualStudioAsInstalled();
|
||||
when(mockVisualStudio.isRebootRequired).thenReturn(true);
|
||||
fakeVisualStudio.isRebootRequired = true;
|
||||
|
||||
final ValidationResult result = await validator.validate();
|
||||
final ValidationMessage expectedMessage = ValidationMessage.error(userMessages.visualStudioRebootRequired);
|
||||
|
@ -113,10 +98,10 @@ void main() {
|
|||
testWithoutContext('Emits a partial status when Visual Studio installation is not launchable', () async {
|
||||
final VisualStudioValidator validator = VisualStudioValidator(
|
||||
userMessages: userMessages,
|
||||
visualStudio: mockVisualStudio,
|
||||
visualStudio: fakeVisualStudio,
|
||||
);
|
||||
_configureMockVisualStudioAsInstalled();
|
||||
when(mockVisualStudio.isLaunchable).thenReturn(false);
|
||||
fakeVisualStudio.isLaunchable = false;
|
||||
|
||||
final ValidationResult result = await validator.validate();
|
||||
final ValidationMessage expectedMessage = ValidationMessage.error(userMessages.visualStudioNotLaunchable);
|
||||
|
@ -128,15 +113,15 @@ void main() {
|
|||
testWithoutContext('Emits partial status when Visual Studio is installed but too old', () async {
|
||||
final VisualStudioValidator validator = VisualStudioValidator(
|
||||
userMessages: userMessages,
|
||||
visualStudio: mockVisualStudio,
|
||||
visualStudio: fakeVisualStudio,
|
||||
);
|
||||
_configureMockVisualStudioAsTooOld();
|
||||
|
||||
final ValidationResult result = await validator.validate();
|
||||
final ValidationMessage expectedMessage = ValidationMessage.error(
|
||||
userMessages.visualStudioTooOld(
|
||||
mockVisualStudio.minimumVersionDescription,
|
||||
mockVisualStudio.workloadDescription,
|
||||
fakeVisualStudio.minimumVersionDescription,
|
||||
fakeVisualStudio.workloadDescription,
|
||||
),
|
||||
);
|
||||
|
||||
|
@ -147,10 +132,10 @@ void main() {
|
|||
testWithoutContext('Emits partial status when Visual Studio is installed without necessary components', () async {
|
||||
final VisualStudioValidator validator = VisualStudioValidator(
|
||||
userMessages: userMessages,
|
||||
visualStudio: mockVisualStudio,
|
||||
visualStudio: fakeVisualStudio,
|
||||
);
|
||||
_configureMockVisualStudioAsInstalled();
|
||||
when(mockVisualStudio.hasNecessaryComponents).thenReturn(false);
|
||||
fakeVisualStudio.hasNecessaryComponents = false;
|
||||
final ValidationResult result = await validator.validate();
|
||||
|
||||
expect(result.type, ValidationType.partial);
|
||||
|
@ -159,10 +144,10 @@ void main() {
|
|||
testWithoutContext('Emits partial status when Visual Studio is installed but the SDK cannot be found', () async {
|
||||
final VisualStudioValidator validator = VisualStudioValidator(
|
||||
userMessages: userMessages,
|
||||
visualStudio: mockVisualStudio,
|
||||
visualStudio: fakeVisualStudio,
|
||||
);
|
||||
_configureMockVisualStudioAsInstalled();
|
||||
when(mockVisualStudio.getWindows10SDKVersion()).thenReturn(null);
|
||||
fakeVisualStudio.windows10SDKVersion = null;
|
||||
final ValidationResult result = await validator.validate();
|
||||
|
||||
expect(result.type, ValidationType.partial);
|
||||
|
@ -171,13 +156,13 @@ void main() {
|
|||
testWithoutContext('Emits installed status when Visual Studio is installed with necessary components', () async {
|
||||
final VisualStudioValidator validator = VisualStudioValidator(
|
||||
userMessages: userMessages,
|
||||
visualStudio: mockVisualStudio,
|
||||
visualStudio: fakeVisualStudio,
|
||||
);
|
||||
_configureMockVisualStudioAsInstalled();
|
||||
|
||||
final ValidationResult result = await validator.validate();
|
||||
final ValidationMessage expectedDisplayNameMessage = ValidationMessage(
|
||||
userMessages.visualStudioVersion(mockVisualStudio.displayName, mockVisualStudio.fullVersion));
|
||||
userMessages.visualStudioVersion(fakeVisualStudio.displayName!, fakeVisualStudio.fullVersion!));
|
||||
|
||||
expect(result.messages.contains(expectedDisplayNameMessage), true);
|
||||
expect(result.type, ValidationType.installed);
|
||||
|
@ -186,14 +171,14 @@ void main() {
|
|||
testWithoutContext('Emits missing status when Visual Studio is not installed', () async {
|
||||
final VisualStudioValidator validator = VisualStudioValidator(
|
||||
userMessages: userMessages,
|
||||
visualStudio: mockVisualStudio,
|
||||
visualStudio: fakeVisualStudio,
|
||||
);
|
||||
_configureMockVisualStudioAsNotInstalled();
|
||||
|
||||
final ValidationResult result = await validator.validate();
|
||||
final ValidationMessage expectedMessage = ValidationMessage.error(
|
||||
userMessages.visualStudioMissing(
|
||||
mockVisualStudio.workloadDescription,
|
||||
fakeVisualStudio.workloadDescription,
|
||||
),
|
||||
);
|
||||
|
||||
|
@ -203,4 +188,51 @@ void main() {
|
|||
});
|
||||
}
|
||||
|
||||
class MockVisualStudio extends Mock implements VisualStudio {}
|
||||
class FakeVisualStudio extends Fake implements VisualStudio {
|
||||
@override
|
||||
final String installLocation = 'bogus';
|
||||
|
||||
@override
|
||||
final String displayVersion = 'version';
|
||||
|
||||
@override
|
||||
final String minimumVersionDescription = '2019';
|
||||
|
||||
@override
|
||||
List<String> necessaryComponentDescriptions() => <String>['A', 'B'];
|
||||
|
||||
@override
|
||||
bool isInstalled = true;
|
||||
|
||||
@override
|
||||
bool isAtLeastMinimumVersion = true;
|
||||
|
||||
@override
|
||||
bool isPrerelease = true;
|
||||
|
||||
@override
|
||||
bool isComplete = true;
|
||||
|
||||
@override
|
||||
bool isLaunchable = true;
|
||||
|
||||
@override
|
||||
bool isRebootRequired = true;
|
||||
|
||||
@override
|
||||
bool hasNecessaryComponents = true;
|
||||
|
||||
@override
|
||||
String? fullVersion;
|
||||
|
||||
@override
|
||||
String? displayName;
|
||||
|
||||
String? windows10SDKVersion;
|
||||
|
||||
@override
|
||||
String? getWindows10SDKVersion() => windows10SDKVersion;
|
||||
|
||||
@override
|
||||
String get workloadDescription => 'Desktop development';
|
||||
}
|
||||
|
|
|
@ -296,46 +296,6 @@ class MockSimControl extends Mock implements SimControl {
|
|||
}
|
||||
}
|
||||
|
||||
class FakeOperatingSystemUtils implements OperatingSystemUtils {
|
||||
FakeOperatingSystemUtils({this.hostPlatform = HostPlatform.linux_x64});
|
||||
|
||||
@override
|
||||
ProcessResult makeExecutable(File file) => null;
|
||||
|
||||
@override
|
||||
HostPlatform hostPlatform = HostPlatform.linux_x64;
|
||||
|
||||
@override
|
||||
void chmod(FileSystemEntity entity, String mode) { }
|
||||
|
||||
@override
|
||||
File which(String execName) => null;
|
||||
|
||||
@override
|
||||
List<File> whichAll(String execName) => <File>[];
|
||||
|
||||
@override
|
||||
File makePipe(String path) => null;
|
||||
|
||||
@override
|
||||
void unzip(File file, Directory targetDirectory) { }
|
||||
|
||||
@override
|
||||
void unpack(File gzippedTarFile, Directory targetDirectory) { }
|
||||
|
||||
@override
|
||||
Stream<List<int>> gzipLevel1Stream(Stream<List<int>> stream) => stream;
|
||||
|
||||
@override
|
||||
String get name => 'fake OS name and version';
|
||||
|
||||
@override
|
||||
String get pathVarSeparator => ';';
|
||||
|
||||
@override
|
||||
Future<int> findFreePort({bool ipv6 = false}) async => 12345;
|
||||
}
|
||||
|
||||
class MockIOSSimulatorUtils extends Mock implements IOSSimulatorUtils {}
|
||||
|
||||
class FakeXcodeProjectInterpreter implements XcodeProjectInterpreter {
|
||||
|
|
|
@ -15,6 +15,7 @@ import 'package:flutter_tools/src/convert.dart';
|
|||
import 'package:flutter_tools/src/features.dart';
|
||||
import 'package:flutter_tools/src/ios/plist_parser.dart';
|
||||
import 'package:flutter_tools/src/version.dart';
|
||||
import 'package:test/fake.dart';
|
||||
|
||||
/// Environment with DYLD_LIBRARY_PATH=/path/to/libraries
|
||||
class FakeDyldEnvironmentArtifact extends ArtifactSet {
|
||||
|
@ -493,3 +494,40 @@ class FakeStatusLogger extends DelegatingLogger {
|
|||
int progressIndicatorPadding = kDefaultStatusPadding,
|
||||
}) => status;
|
||||
}
|
||||
|
||||
class FakeOperatingSystemUtils extends Fake implements OperatingSystemUtils {
|
||||
FakeOperatingSystemUtils({this.hostPlatform = HostPlatform.linux_x64});
|
||||
|
||||
@override
|
||||
void makeExecutable(File file) { }
|
||||
|
||||
@override
|
||||
HostPlatform hostPlatform = HostPlatform.linux_x64;
|
||||
|
||||
@override
|
||||
void chmod(FileSystemEntity entity, String mode) { }
|
||||
|
||||
@override
|
||||
File? which(String execName) => null;
|
||||
|
||||
@override
|
||||
List<File> whichAll(String execName) => <File>[];
|
||||
|
||||
@override
|
||||
void unzip(File file, Directory targetDirectory) { }
|
||||
|
||||
@override
|
||||
void unpack(File gzippedTarFile, Directory targetDirectory) { }
|
||||
|
||||
@override
|
||||
Stream<List<int>> gzipLevel1Stream(Stream<List<int>> stream) => stream;
|
||||
|
||||
@override
|
||||
String get name => 'fake OS name and version';
|
||||
|
||||
@override
|
||||
String get pathVarSeparator => ';';
|
||||
|
||||
@override
|
||||
Future<int> findFreePort({bool ipv6 = false}) async => 12345;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue