blob: 1be8be8ab59324000452b742dc1a89e2e91751d3 [file] [log] [blame]
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:file/memory.dart';
import 'package:flutter_tools/src/base/file_system.dart';
import 'package:flutter_tools/src/base/platform.dart';
import 'package:flutter_tools/src/base/user_messages.dart';
import 'package:flutter_tools/src/base/version.dart';
import 'package:flutter_tools/src/doctor_validator.dart';
import 'package:flutter_tools/src/vscode/vscode.dart';
import 'package:flutter_tools/src/vscode/vscode_validator.dart';
import 'package:test/fake.dart';
import '../../src/common.dart';
import '../../src/context.dart';
void main() {
testWithoutContext('VsCode search locations on windows supports an empty environment', () {
final FileSystem fileSystem = MemoryFileSystem.test(style: FileSystemStyle.windows);
final Platform platform = FakePlatform(
operatingSystem: 'windows',
environment: <String, String>{},
);
expect(VsCode.allInstalled(fileSystem, platform, FakeProcessManager.any()), isEmpty);
});
group(VsCodeValidator, () {
testUsingContext('Warns if VS Code version could not be found', () async {
final VsCodeValidator validator = VsCodeValidator(_FakeVsCode());
final ValidationResult result = await validator.validate();
expect(result.messages, contains(const ValidationMessage.error('Unable to determine VS Code version.')));
expect(result.statusInfo, 'version unknown');
}, overrides: <Type, Generator>{
UserMessages: () => UserMessages(),
});
});
}
class _FakeVsCode extends Fake implements VsCode {
@override
Iterable<ValidationMessage> get validationMessages => <ValidationMessage>[];
@override
String get productName => 'VS Code';
@override
Version? get version => null;
}