Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Side by Side Diff: packages/analyzer/test/source/package_map_provider_test.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 library test.package.map.provider;
6
7 import 'package:analyzer/file_system/file_system.dart';
8 import 'package:analyzer/file_system/memory_file_system.dart';
9 import 'package:analyzer/source/package_map_provider.dart';
10 import 'package:analyzer/source/pub_package_map_provider.dart';
11 import 'package:analyzer/src/generated/sdk_io.dart';
12 import 'package:unittest/unittest.dart';
13
14 import '../utils.dart';
15
16 main() {
17 initializeTestEnvironment();
18
19 group('PubPackageMapProvider', () {
20 group('parsePackageMap', () {
21 MemoryResourceProvider resourceProvider;
22 PubPackageMapProvider packageMapProvider;
23 const String projectPath = '/path/to/project';
24 Folder projectFolder;
25
26 setUp(() {
27 resourceProvider = new MemoryResourceProvider();
28 packageMapProvider = new PubPackageMapProvider(
29 resourceProvider, DirectoryBasedDartSdk.defaultSdk);
30 projectFolder = resourceProvider.newFolder(projectPath);
31 });
32
33 PackageMapInfo parsePackageMap(Object obj) {
34 return packageMapProvider.parsePackageMap(obj, projectFolder);
35 }
36
37 test('normal folder', () {
38 String packageName = 'foo';
39 String folderPath = '/path/to/folder';
40 resourceProvider.newFolder(folderPath);
41 Map<String, List<Folder>> result = parsePackageMap({
42 'packages': {packageName: folderPath}
43 }).packageMap;
44 expect(result, hasLength(1));
45 expect(result.keys, contains(packageName));
46 expect(result[packageName], hasLength(1));
47 expect(result[packageName][0], new isInstanceOf<Folder>());
48 expect(result[packageName][0].path, equals(folderPath));
49 });
50
51 test("don't ignore nonexistent folder", () {
52 String packageName = 'foo';
53 String folderPath = '/path/to/folder';
54 Map<String, List<Folder>> result = parsePackageMap({
55 'packages': {packageName: folderPath}
56 }).packageMap;
57 expect(result, hasLength(1));
58 expect(result.keys, contains(packageName));
59 expect(result[packageName], hasLength(1));
60 expect(result[packageName][0], new isInstanceOf<Folder>());
61 expect(result[packageName][0].path, equals(folderPath));
62 });
63
64 test('package maps to list', () {
65 String packageName = 'foo';
66 String folderPath1 = '/path/to/folder1';
67 String folderPath2 = '/path/to/folder2';
68 resourceProvider.newFolder(folderPath1);
69 resourceProvider.newFolder(folderPath2);
70 Map<String, List<Folder>> result = parsePackageMap({
71 'packages': {
72 packageName: [folderPath1, folderPath2]
73 }
74 }).packageMap;
75 expect(result, hasLength(1));
76 expect(result.keys, contains(packageName));
77 expect(result[packageName], hasLength(2));
78 for (int i = 0; i < 2; i++) {
79 expect(result[packageName][i], new isInstanceOf<Folder>());
80 expect(result[packageName][i].path, isIn([folderPath1, folderPath2]));
81 }
82 });
83
84 test('Handle dependencies', () {
85 String path1 = '/path/to/folder1/pubspec.lock';
86 String path2 = '/path/to/folder2/pubspec.lock';
87 resourceProvider.newFile(path1, '...');
88 resourceProvider.newFile(path2, '...');
89 Set<String> dependencies = parsePackageMap({
90 'packages': {},
91 'input_files': [path1, path2]
92 }).dependencies;
93 expect(dependencies, hasLength(2));
94 expect(dependencies, contains(path1));
95 expect(dependencies, contains(path2));
96 });
97
98 test('Relative path in packages', () {
99 String packagePath = '/path/to/package';
100 String relativePackagePath = '../package';
101 String packageName = 'foo';
102 resourceProvider.newFolder(projectPath);
103 resourceProvider.newFolder(packagePath);
104 Map<String, List<Folder>> result = parsePackageMap({
105 'packages': {
106 packageName: [relativePackagePath]
107 }
108 }).packageMap;
109 expect(result[packageName][0].path, equals(packagePath));
110 });
111
112 test('Relative path in dependencies', () {
113 String dependencyPath = '/path/to/pubspec.lock';
114 String relativeDependencyPath = '../pubspec.lock';
115 resourceProvider.newFolder(projectPath);
116 resourceProvider.newFile(dependencyPath, 'contents');
117 Set<String> dependencies = parsePackageMap({
118 'packages': {},
119 'input_files': [relativeDependencyPath]
120 }).dependencies;
121 expect(dependencies, hasLength(1));
122 expect(dependencies, contains(dependencyPath));
123 });
124 });
125 });
126 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698