mirror of
https://github.com/flutter/flutter
synced 2024-10-13 03:32:55 +00:00
Add canRun override to FakeProcessManager (#74865)
This commit is contained in:
parent
904d63fbd6
commit
dbb1958c5e
|
@ -55,10 +55,12 @@ final Platform macPlatform = FakePlatform(
|
|||
void main() {
|
||||
MockFlutterVersion mockFlutterVersion;
|
||||
BufferLogger logger;
|
||||
FakeProcessManager fakeProcessManager;
|
||||
|
||||
setUp(() {
|
||||
mockFlutterVersion = MockFlutterVersion();
|
||||
logger = BufferLogger.test();
|
||||
fakeProcessManager = FakeProcessManager.list(<FakeCommand>[]);
|
||||
});
|
||||
|
||||
testWithoutContext('ValidationMessage equality and hashCode includes contextUrl', () {
|
||||
|
@ -597,7 +599,6 @@ void main() {
|
|||
}, overrides: noColorTerminalOverride);
|
||||
});
|
||||
|
||||
|
||||
group('grouped validator merging results', () {
|
||||
final PassingGroupedValidator installed = PassingGroupedValidator('Category');
|
||||
final PartialGroupedValidator partial = PartialGroupedValidator('Category');
|
||||
|
@ -650,14 +651,12 @@ void main() {
|
|||
});
|
||||
|
||||
testUsingContext('WebWorkflow is a part of validator workflows if enabled', () async {
|
||||
when(globals.processManager.canRun(any)).thenReturn(true);
|
||||
|
||||
expect(DoctorValidatorsProvider.defaultInstance.workflows,
|
||||
contains(isA<WebWorkflow>()));
|
||||
}, overrides: <Type, Generator>{
|
||||
FeatureFlags: () => TestFeatureFlags(isWebEnabled: true),
|
||||
FileSystem: () => MemoryFileSystem.test(),
|
||||
ProcessManager: () => MockProcessManager(),
|
||||
ProcessManager: () => fakeProcessManager,
|
||||
});
|
||||
|
||||
testUsingContext('Fetches tags to get the right version', () async {
|
||||
|
@ -1046,7 +1045,6 @@ class VsCodeValidatorTestTargets extends VsCodeValidator {
|
|||
static final String missingExtensions = globals.fs.path.join('test', 'data', 'vscode', 'notExtensions');
|
||||
}
|
||||
|
||||
class MockProcessManager extends Mock implements ProcessManager {}
|
||||
class MockPlistParser extends Mock implements PlistParser {}
|
||||
class MockDeviceManager extends Mock implements DeviceManager {}
|
||||
class MockDevice extends Mock implements Device {
|
||||
|
|
|
@ -47,15 +47,16 @@ void main() {
|
|||
});
|
||||
|
||||
testWithoutContext('AndroidDevices returns empty device list and diagnostics when adb cannot be run', () async {
|
||||
final FakeProcessManager fakeProcessManager = FakeProcessManager.list(<FakeCommand>[]);
|
||||
fakeProcessManager.excludedExecutables.add('adb');
|
||||
final AndroidDevices androidDevices = AndroidDevices(
|
||||
androidSdk: FakeAndroidSdk(null),
|
||||
androidSdk: FakeAndroidSdk(),
|
||||
logger: BufferLogger.test(),
|
||||
androidWorkflow: AndroidWorkflow(
|
||||
androidSdk: FakeAndroidSdk('adb'),
|
||||
featureFlags: TestFeatureFlags(),
|
||||
),
|
||||
// Will throw an exception if anything other than canRun is invoked
|
||||
processManager: FakeProcessManger(),
|
||||
processManager: fakeProcessManager,
|
||||
fileSystem: MemoryFileSystem.test(),
|
||||
platform: FakePlatform(),
|
||||
userMessages: UserMessages(),
|
||||
|
@ -63,6 +64,7 @@ void main() {
|
|||
|
||||
expect(await androidDevices.pollingGetDevices(), isEmpty);
|
||||
expect(await androidDevices.getDiagnostics(), isEmpty);
|
||||
expect(fakeProcessManager.hasRemainingExpectations, isFalse);
|
||||
});
|
||||
|
||||
testWithoutContext('AndroidDevices returns empty device list and diagnostics on null Android SDK', () async {
|
||||
|
@ -239,10 +241,3 @@ class FakeAndroidSdk extends Fake implements AndroidSdk {
|
|||
@override
|
||||
final String adbPath;
|
||||
}
|
||||
|
||||
class FakeProcessManger extends Fake implements ProcessManager {
|
||||
@override
|
||||
bool canRun(dynamic executable, {String workingDirectory}) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -763,11 +763,7 @@ class FakeDownloadedArtifact extends CachedArtifact {
|
|||
}
|
||||
|
||||
class MockArtifactUpdater extends Mock implements ArtifactUpdater {}
|
||||
class MockProcessManager extends Mock implements ProcessManager {}
|
||||
class MockFileSystem extends Mock implements FileSystem {}
|
||||
class MockFile extends Mock implements File {}
|
||||
class MockDirectory extends Mock implements Directory {}
|
||||
class MockRandomAccessFile extends Mock implements RandomAccessFile {}
|
||||
class MockCachedArtifact extends Mock implements CachedArtifact {}
|
||||
class MockIosUsbArtifacts extends Mock implements IosUsbArtifacts {}
|
||||
class MockInternetAddress extends Mock implements InternetAddress {}
|
||||
|
|
|
@ -11,22 +11,20 @@ import 'package:flutter_tools/src/base/platform.dart';
|
|||
import 'package:flutter_tools/src/doctor.dart';
|
||||
import 'package:flutter_tools/src/web/chrome.dart';
|
||||
import 'package:flutter_tools/src/web/web_validator.dart';
|
||||
import 'package:mockito/mockito.dart';
|
||||
import 'package:process/process.dart';
|
||||
|
||||
import '../../src/common.dart';
|
||||
import '../../src/fake_process_manager.dart';
|
||||
|
||||
void main() {
|
||||
Platform platform;
|
||||
ProcessManager processManager;
|
||||
FakeProcessManager fakeProcessManager;
|
||||
ChromiumLauncher chromeLauncher;
|
||||
FileSystem fileSystem;
|
||||
ChromiumValidator webValidator;
|
||||
|
||||
setUp(() {
|
||||
fileSystem = MemoryFileSystem.test();
|
||||
processManager = MockProcessManager();
|
||||
fakeProcessManager = FakeProcessManager.list(<FakeCommand>[]);
|
||||
platform = FakePlatform(
|
||||
operatingSystem: 'macos',
|
||||
environment: <String, String>{},
|
||||
|
@ -34,7 +32,7 @@ void main() {
|
|||
chromeLauncher = ChromiumLauncher(
|
||||
fileSystem: fileSystem,
|
||||
platform: platform,
|
||||
processManager: processManager,
|
||||
processManager: fakeProcessManager,
|
||||
operatingSystemUtils: null,
|
||||
browserFinder: findChromeExecutable,
|
||||
logger: BufferLogger.test(),
|
||||
|
@ -46,15 +44,13 @@ void main() {
|
|||
});
|
||||
|
||||
testWithoutContext('WebValidator can find executable on macOS', () async {
|
||||
when(processManager.canRun(kMacOSExecutable)).thenReturn(true);
|
||||
|
||||
final ValidationResult result = await webValidator.validate();
|
||||
|
||||
expect(result.type, ValidationType.installed);
|
||||
});
|
||||
|
||||
testWithoutContext('WebValidator Can notice missing macOS executable ', () async {
|
||||
when(processManager.canRun(kMacOSExecutable)).thenReturn(false);
|
||||
fakeProcessManager.excludedExecutables.add(kMacOSExecutable);
|
||||
|
||||
final ValidationResult result = await webValidator.validate();
|
||||
|
||||
|
@ -62,7 +58,7 @@ void main() {
|
|||
});
|
||||
|
||||
testWithoutContext('WebValidator does not warn about CHROME_EXECUTABLE unless it cant find chrome ', () async {
|
||||
when(processManager.canRun(kMacOSExecutable)).thenReturn(false);
|
||||
fakeProcessManager.excludedExecutables.add(kMacOSExecutable);
|
||||
|
||||
final ValidationResult result = await webValidator.validate();
|
||||
|
||||
|
@ -73,5 +69,3 @@ void main() {
|
|||
expect(result.type, ValidationType.missing);
|
||||
});
|
||||
}
|
||||
|
||||
class MockProcessManager extends Mock implements ProcessManager {}
|
||||
|
|
|
@ -301,8 +301,11 @@ abstract class FakeProcessManager implements ProcessManager {
|
|||
);
|
||||
}
|
||||
|
||||
/// Returns false if executable in [excludedExecutables].
|
||||
@override
|
||||
bool canRun(dynamic executable, {String workingDirectory}) => true;
|
||||
bool canRun(dynamic executable, {String workingDirectory}) => !excludedExecutables.contains(executable);
|
||||
|
||||
Set<String> excludedExecutables = <String>{};
|
||||
|
||||
@override
|
||||
bool killPid(int pid, [io.ProcessSignal signal = io.ProcessSignal.sigterm]) {
|
||||
|
|
Loading…
Reference in a new issue