blob: 38e71a9e0a01f4f24ae3228404056102183827f4 [file] [log] [blame]
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// for details. 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:analysis_server/src/plugin/plugin_locator.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(PluginLocatorTest);
});
}
@reflectiveTest
class PluginLocatorTest {
MemoryResourceProvider resourceProvider;
String packageRoot;
String pubspecPath;
String defaultDirPath;
PluginLocator locator;
void setUp() {
resourceProvider = new MemoryResourceProvider();
packageRoot = resourceProvider.convertPath('/package');
resourceProvider.newFolder(packageRoot);
locator = new PluginLocator(resourceProvider);
}
@failingTest
void test_findPlugin_inPubspec_defaultDir() {
// Support for specifying plugin locations in the pubspec is temporarily
// disabled.
String dirPath = _createPubspecWithKey();
_createDefaultDir();
expect(locator.findPlugin(packageRoot), dirPath);
}
@failingTest
void test_findPlugin_inPubspec_noDefaultDir() {
// Support for specifying plugin locations in the pubspec is temporarily
// disabled.
String dirPath = _createPubspecWithKey();
expect(locator.findPlugin(packageRoot), dirPath);
}
void test_findPlugin_noPubspec_defaultDir() {
_createDefaultDir();
expect(locator.findPlugin(packageRoot), defaultDirPath);
}
void test_findPlugin_noPubspec_noDefaultDir() {
expect(locator.findPlugin(packageRoot), isNull);
}
void test_findPlugin_notInPubspec_defaultDir() {
_createPubspecWithoutKey();
_createDefaultDir();
expect(locator.findPlugin(packageRoot), defaultDirPath);
}
void test_findPlugin_notInPubspec_noDefaultDir() {
_createPubspecWithoutKey();
expect(locator.findPlugin(packageRoot), isNull);
}
void _createDefaultDir() {
defaultDirPath = resourceProvider.pathContext.join(packageRoot,
PluginLocator.toolsFolderName, PluginLocator.defaultPluginFolderName);
resourceProvider.newFolder(defaultDirPath);
}
void _createPubspec(String content) {
pubspecPath = resourceProvider.pathContext
.join(packageRoot, PluginLocator.pubspecFileName);
resourceProvider.newFile(pubspecPath, content);
}
String _createPubspecWithKey() {
String nonDefaultPath =
resourceProvider.pathContext.join(packageRoot, 'pluginDir');
_createPubspec('''
name: test_project
${PluginLocator.analyzerPluginKey}: $nonDefaultPath
''');
resourceProvider.newFolder(nonDefaultPath);
return nonDefaultPath;
}
void _createPubspecWithoutKey() {
_createPubspec('''
name: test_project
''');
}
}