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

Side by Side Diff: pkg/analysis_server/test/package_uri_resolver_test.dart

Issue 341273007: Allow multiple dirs per package in the data returned by "pub list". (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 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 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.resolver.package; 5 library test.resolver.package;
6 6
7 import 'package:analysis_server/src/package_uri_resolver.dart'; 7 import 'package:analysis_server/src/package_uri_resolver.dart';
8 import 'package:analysis_server/src/resource.dart'; 8 import 'package:analysis_server/src/resource.dart';
9 import 'package:analyzer/src/generated/source.dart'; 9 import 'package:analyzer/src/generated/source.dart';
10 import 'package:unittest/unittest.dart'; 10 import 'package:unittest/unittest.dart';
11 11
12 import 'reflective_tests.dart'; 12 import 'reflective_tests.dart';
13 13
14 main() { 14 main() {
15 groupSep = ' | '; 15 groupSep = ' | ';
16 16
17 group('PackageMapUriResolver', () { 17 group('PackageMapUriResolver', () {
18 runReflectiveTests(_PackageMapUriResolverTest); 18 runReflectiveTests(_PackageMapUriResolverTest);
19 }); 19 });
20 } 20 }
21 21
22 22
23 @ReflectiveTestCase() 23 @ReflectiveTestCase()
24 class _PackageMapUriResolverTest { 24 class _PackageMapUriResolverTest {
25 static const EMPTY_MAP = const <String, Folder>{}; 25 static const EMPTY_MAP = const <String, List<Folder>>{};
26 MemoryResourceProvider provider = new MemoryResourceProvider(); 26 MemoryResourceProvider provider = new MemoryResourceProvider();
27 27
28 setUp() { 28 setUp() {
29 } 29 }
30 30
31 tearDown() { 31 tearDown() {
32 } 32 }
33 33
34 void test_isPackageUri() { 34 void test_isPackageUri() {
35 Uri uri = Uri.parse('package:test/test.dart'); 35 Uri uri = Uri.parse('package:test/test.dart');
(...skipping 27 matching lines...) Expand all
63 expect(uri.scheme, 'memfs'); 63 expect(uri.scheme, 'memfs');
64 expect(PackageMapUriResolver.isPackageUri(uri), isFalse); 64 expect(PackageMapUriResolver.isPackageUri(uri), isFalse);
65 } 65 }
66 66
67 void test_resolve_OK() { 67 void test_resolve_OK() {
68 const pkgFileA = '/pkgA/lib/libA.dart'; 68 const pkgFileA = '/pkgA/lib/libA.dart';
69 const pkgFileB = '/pkgB/lib/libB.dart'; 69 const pkgFileB = '/pkgB/lib/libB.dart';
70 provider.newFile(pkgFileA, 'library lib_a;'); 70 provider.newFile(pkgFileA, 'library lib_a;');
71 provider.newFile(pkgFileB, 'library lib_b;'); 71 provider.newFile(pkgFileB, 'library lib_b;');
72 PackageMapUriResolver resolver = new PackageMapUriResolver(provider, 72 PackageMapUriResolver resolver = new PackageMapUriResolver(provider,
73 <String, Folder>{ 73 <String, List<Folder>>{
74 'pkgA': provider.getResource('/pkgA/lib/'), 74 'pkgA': [provider.getResource('/pkgA/lib/')],
75 'pkgB': provider.getResource('/pkgB/lib/') 75 'pkgB': [provider.getResource('/pkgB/lib/')]
76 }); 76 });
77 { 77 {
78 Uri uri = Uri.parse('package:pkgA/libA.dart'); 78 Uri uri = Uri.parse('package:pkgA/libA.dart');
79 Source result = resolver.resolveAbsolute(uri); 79 Source result = resolver.resolveAbsolute(uri);
80 expect(result, isNotNull); 80 expect(result, isNotNull);
81 expect(result.exists(), isTrue); 81 expect(result.exists(), isTrue);
82 expect(result.uriKind, UriKind.PACKAGE_URI); 82 expect(result.uriKind, UriKind.PACKAGE_URI);
83 expect(result.fullName, pkgFileA); 83 expect(result.fullName, pkgFileA);
84 } 84 }
85 { 85 {
86 Uri uri = Uri.parse('package:pkgB/libB.dart'); 86 Uri uri = Uri.parse('package:pkgB/libB.dart');
87 Source result = resolver.resolveAbsolute(uri); 87 Source result = resolver.resolveAbsolute(uri);
88 expect(result, isNotNull); 88 expect(result, isNotNull);
89 expect(result.exists(), isTrue); 89 expect(result.exists(), isTrue);
90 expect(result.uriKind, UriKind.PACKAGE_URI); 90 expect(result.uriKind, UriKind.PACKAGE_URI);
91 expect(result.fullName, pkgFileB); 91 expect(result.fullName, pkgFileB);
92 } 92 }
93 } 93 }
94 94
95 void test_resolve_multiple_folders() {
96 const pkgFileA = '/part1/lib/libA.dart';
97 const pkgFileB = '/part2/lib/libB.dart';
98 provider.newFile(pkgFileA, 'library lib_a');
99 provider.newFile(pkgFileB, 'library lib_b');
100 PackageMapUriResolver resolver = new PackageMapUriResolver(provider,
101 <String, List<Folder>>{
102 'pkg': [provider.getResource('/part1/lib/'),
103 provider.getResource('/part2/lib/')]
104 });
105 {
106 Uri uri = Uri.parse('package:pkg/libA.dart');
107 Source result = resolver.resolveAbsolute(uri);
108 expect(result, isNotNull);
109 expect(result.exists(), isTrue);
110 expect(result.uriKind, UriKind.PACKAGE_URI);
111 expect(result.fullName, pkgFileA);
112 }
113 {
114 Uri uri = Uri.parse('package:pkg/libB.dart');
115 Source result = resolver.resolveAbsolute(uri);
116 expect(result, isNotNull);
117 expect(result.exists(), isTrue);
118 expect(result.uriKind, UriKind.PACKAGE_URI);
119 expect(result.fullName, pkgFileB);
120 }
121 }
122
95 void test_resolve_nonPackage() { 123 void test_resolve_nonPackage() {
96 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); 124 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP);
97 Uri uri = Uri.parse('dart:core'); 125 Uri uri = Uri.parse('dart:core');
98 Source result = resolver.resolveAbsolute(uri); 126 Source result = resolver.resolveAbsolute(uri);
99 expect(result, isNull); 127 expect(result, isNull);
100 } 128 }
101 129
102 void test_resolve_package_invalid_leadingSlash() { 130 void test_resolve_package_invalid_leadingSlash() {
103 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); 131 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP);
104 Uri uri = Uri.parse('package:/foo'); 132 Uri uri = Uri.parse('package:/foo');
(...skipping 17 matching lines...) Expand all
122 150
123 void test_resolve_package_notInMap() { 151 void test_resolve_package_notInMap() {
124 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); 152 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP);
125 Uri uri = Uri.parse('package:analyzer/analyzer.dart'); 153 Uri uri = Uri.parse('package:analyzer/analyzer.dart');
126 Source result = resolver.resolveAbsolute(uri); 154 Source result = resolver.resolveAbsolute(uri);
127 expect(result, isNotNull); 155 expect(result, isNotNull);
128 expect(result.exists(), isFalse); 156 expect(result.exists(), isFalse);
129 expect(result.fullName, 'package:analyzer/analyzer.dart'); 157 expect(result.fullName, 'package:analyzer/analyzer.dart');
130 } 158 }
131 } 159 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698