
...because otherwise, processes that think they're manipulating your filesystem will be doing crazy things the test is ignoring, leading to (at best) failures and (at worst) flakes or disk corruption.
55 lines
1.6 KiB
Dart
55 lines
1.6 KiB
Dart
// Copyright 2016 The Chromium 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/file.dart';
|
|
import 'package:file/memory.dart';
|
|
import 'package:flutter_tools/src/cache.dart';
|
|
import 'package:flutter_tools/src/commands/analyze_base.dart';
|
|
|
|
import '../../src/common.dart';
|
|
import '../../src/context.dart';
|
|
|
|
const String _kFlutterRoot = '/data/flutter';
|
|
|
|
void main() {
|
|
FileSystem fs;
|
|
Directory tempDir;
|
|
|
|
setUp(() {
|
|
fs = MemoryFileSystem();
|
|
fs.directory(_kFlutterRoot).createSync(recursive: true);
|
|
Cache.flutterRoot = _kFlutterRoot;
|
|
tempDir = fs.systemTempDirectory.createTempSync('flutter_analysis_test.');
|
|
});
|
|
|
|
tearDown(() {
|
|
tryToDelete(tempDir);
|
|
});
|
|
|
|
group('analyze', () {
|
|
testUsingContext('inRepo', () {
|
|
// Absolute paths
|
|
expect(inRepo(<String>[tempDir.path]), isFalse);
|
|
expect(inRepo(<String>[fs.path.join(tempDir.path, 'foo')]), isFalse);
|
|
expect(inRepo(<String>[Cache.flutterRoot]), isTrue);
|
|
expect(inRepo(<String>[fs.path.join(Cache.flutterRoot, 'foo')]), isTrue);
|
|
|
|
// Relative paths
|
|
fs.currentDirectory = Cache.flutterRoot;
|
|
expect(inRepo(<String>['.']), isTrue);
|
|
expect(inRepo(<String>['foo']), isTrue);
|
|
fs.currentDirectory = tempDir.path;
|
|
expect(inRepo(<String>['.']), isFalse);
|
|
expect(inRepo(<String>['foo']), isFalse);
|
|
|
|
// Ensure no exceptions
|
|
inRepo(null);
|
|
inRepo(<String>[]);
|
|
}, overrides: <Type, Generator>{
|
|
FileSystem: () => fs,
|
|
ProcessManager: () => FakeProcessManager(<FakeCommand>[]),
|
|
});
|
|
});
|
|
}
|