OLD | NEW |
---|---|
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 analyzer.test.source.embedder_test; | 5 library analyzer.test.source.embedder_test; |
6 | 6 |
7 import 'dart:core' hide Resource; | 7 import 'dart:core' hide Resource; |
8 | 8 |
9 import 'package:analyzer/file_system/file_system.dart'; | 9 import 'package:analyzer/file_system/file_system.dart'; |
10 import 'package:analyzer/file_system/memory_file_system.dart'; | 10 import 'package:analyzer/file_system/memory_file_system.dart'; |
(...skipping 10 matching lines...) Expand all Loading... | |
21 setUp(() { | 21 setUp(() { |
22 initializeTestEnvironment(path.context); | 22 initializeTestEnvironment(path.context); |
23 buildResourceProvider(); | 23 buildResourceProvider(); |
24 }); | 24 }); |
25 tearDown(() { | 25 tearDown(() { |
26 initializeTestEnvironment(); | 26 initializeTestEnvironment(); |
27 clearResourceProvider(); | 27 clearResourceProvider(); |
28 }); | 28 }); |
29 test('test_NullEmbedderYamls', () { | 29 test('test_NullEmbedderYamls', () { |
30 var resolver = new EmbedderUriResolver(null); | 30 var resolver = new EmbedderUriResolver(null); |
31 expect(resolver.length, equals(0)); | 31 expect(resolver.length, 0); |
32 }); | 32 }); |
33 test('test_NoEmbedderYamls', () { | 33 test('test_NoEmbedderYamls', () { |
34 var locator = new EmbedderYamlLocator({ | 34 var locator = new EmbedderYamlLocator({ |
35 'fox': [pathTranslator.getResource('/empty')] | 35 'fox': [pathTranslator.getResource('/empty')] |
36 }); | 36 }); |
37 expect(locator.embedderYamls.length, equals(0)); | 37 expect(locator.embedderYamls.length, 0); |
38 }); | 38 }); |
39 test('test_EmbedderYaml', () { | 39 test('test_EmbedderYaml', () { |
40 var locator = new EmbedderYamlLocator({ | 40 var locator = new EmbedderYamlLocator({ |
41 'fox': [pathTranslator.getResource('/tmp')] | 41 'fox': [pathTranslator.getResource('/tmp')] |
42 }); | 42 }); |
43 var resolver = new EmbedderUriResolver(locator.embedderYamls); | 43 var resolver = |
44 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
44 | 45 |
45 expectResolved(dartUri, posixPath) { | 46 expectResolved(dartUri, posixPath) { |
46 Source source = resolver.resolveAbsolute(Uri.parse(dartUri)); | 47 Source source = resolver.resolveAbsolute(Uri.parse(dartUri)); |
47 expect(source, isNotNull, reason: dartUri); | 48 expect(source, isNotNull, reason: dartUri); |
48 expect(source.fullName, posixToOSPath(posixPath)); | 49 expect(source.fullName, posixToOSPath(posixPath)); |
49 } | 50 } |
50 | 51 |
51 // We have four mappings. | 52 // We have five mappings. |
52 expect(resolver.length, equals(4)); | 53 expect(resolver.length, 5); |
Brian Wilkerson
2016/05/25 17:45:56
Seems strange, if there are five mappings, that we
pquitslund
2016/05/25 17:52:00
Indeed! Forgot to update that bit. Fixed.
| |
53 // Check that they map to the correct paths. | 54 // Check that they map to the correct paths. |
54 expectResolved('dart:fox', '/tmp/slippy.dart'); | 55 expectResolved('dart:fox', '/tmp/slippy.dart'); |
55 expectResolved('dart:bear', '/tmp/grizzly.dart'); | 56 expectResolved('dart:bear', '/tmp/grizzly.dart'); |
56 expectResolved('dart:relative', '/relative.dart'); | 57 expectResolved('dart:relative', '/relative.dart'); |
57 expectResolved('dart:deep', '/tmp/deep/directory/file.dart'); | 58 expectResolved('dart:deep', '/tmp/deep/directory/file.dart'); |
58 }); | 59 }); |
59 test('test_BadYAML', () { | 60 test('test_BadYAML', () { |
60 var locator = new EmbedderYamlLocator(null); | 61 var locator = new EmbedderYamlLocator(null); |
61 locator.addEmbedderYaml(null, r'''{{{,{{}}},}}'''); | 62 locator.addEmbedderYaml(null, r'''{{{,{{}}},}}'''); |
62 expect(locator.embedderYamls.length, equals(0)); | 63 expect(locator.embedderYamls.length, 0); |
63 }); | 64 }); |
64 test('test_restoreAbsolute', () { | 65 test('test_restoreAbsolute', () { |
65 var locator = new EmbedderYamlLocator({ | 66 var locator = new EmbedderYamlLocator({ |
66 'fox': [pathTranslator.getResource('/tmp')] | 67 'fox': [pathTranslator.getResource('/tmp')] |
67 }); | 68 }); |
68 var resolver = new EmbedderUriResolver(locator.embedderYamls); | 69 var resolver = |
70 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
69 | 71 |
70 expectRestore(String dartUri, [String expected]) { | 72 expectRestore(String dartUri, [String expected]) { |
71 var parsedUri = Uri.parse(dartUri); | 73 var parsedUri = Uri.parse(dartUri); |
72 var source = resolver.resolveAbsolute(parsedUri); | 74 var source = resolver.resolveAbsolute(parsedUri); |
73 expect(source, isNotNull); | 75 expect(source, isNotNull); |
74 // Restore source's uri. | 76 // Restore source's uri. |
75 var restoreUri = resolver.restoreAbsolute(source); | 77 var restoreUri = resolver.restoreAbsolute(source); |
76 expect(restoreUri, isNotNull, reason: dartUri); | 78 expect(restoreUri, isNotNull, reason: dartUri); |
77 // Verify that it is 'dart:fox'. | 79 // Verify that it is 'dart:fox'. |
78 expect(restoreUri.toString(), equals(expected ?? dartUri)); | 80 expect(restoreUri.toString(), expected ?? dartUri); |
79 List<String> split = (expected ?? dartUri).split(':'); | 81 List<String> split = (expected ?? dartUri).split(':'); |
80 expect(restoreUri.scheme, equals(split[0])); | 82 expect(restoreUri.scheme, split[0]); |
81 expect(restoreUri.path, equals(split[1])); | 83 expect(restoreUri.path, split[1]); |
82 } | 84 } |
83 | 85 |
84 expectRestore('dart:deep'); | 86 expectRestore('dart:deep'); |
85 expectRestore('dart:deep/file.dart', 'dart:deep'); | 87 expectRestore('dart:deep/file.dart', 'dart:deep'); |
86 expectRestore('dart:deep/part.dart'); | 88 expectRestore('dart:deep/part.dart'); |
87 expectRestore('dart:deep/deep/file.dart'); | 89 expectRestore('dart:deep/deep/file.dart'); |
88 }); | 90 }); |
89 | 91 |
90 test('test_EmbedderSdk_fromFileUri', () { | 92 test('test_EmbedderSdk_fromFileUri', () { |
91 var locator = new EmbedderYamlLocator({ | 93 var locator = new EmbedderYamlLocator({ |
92 'fox': [pathTranslator.getResource('/tmp')] | 94 'fox': [pathTranslator.getResource('/tmp')] |
93 }); | 95 }); |
94 var resolver = new EmbedderUriResolver(locator.embedderYamls); | 96 var resolver = |
97 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
95 var sdk = resolver.dartSdk; | 98 var sdk = resolver.dartSdk; |
96 | 99 |
97 expectSource(String posixPath, String dartUri) { | 100 expectSource(String posixPath, String dartUri) { |
98 var uri = Uri.parse(posixToOSFileUri(posixPath)); | 101 var uri = Uri.parse(posixToOSFileUri(posixPath)); |
99 var source = sdk.fromFileUri(uri); | 102 var source = sdk.fromFileUri(uri); |
100 expect(source, isNotNull, reason: posixPath); | 103 expect(source, isNotNull, reason: posixPath); |
101 expect(source.uri.toString(), dartUri); | 104 expect(source.uri.toString(), dartUri); |
102 expect(source.fullName, posixToOSPath(posixPath)); | 105 expect(source.fullName, posixToOSPath(posixPath)); |
103 } | 106 } |
104 | 107 |
105 expectSource('/tmp/slippy.dart', 'dart:fox'); | 108 expectSource('/tmp/slippy.dart', 'dart:fox'); |
106 expectSource('/tmp/deep/directory/file.dart', 'dart:deep'); | 109 expectSource('/tmp/deep/directory/file.dart', 'dart:deep'); |
107 expectSource('/tmp/deep/directory/part.dart', 'dart:deep/part.dart'); | 110 expectSource('/tmp/deep/directory/part.dart', 'dart:deep/part.dart'); |
108 }); | 111 }); |
109 test('test_EmbedderSdk_getSdkLibrary', () { | 112 test('test_EmbedderSdk_getSdkLibrary', () { |
110 var locator = new EmbedderYamlLocator({ | 113 var locator = new EmbedderYamlLocator({ |
111 'fox': [pathTranslator.getResource('/tmp')] | 114 'fox': [pathTranslator.getResource('/tmp')] |
112 }); | 115 }); |
113 var resolver = new EmbedderUriResolver(locator.embedderYamls); | 116 var resolver = |
117 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
114 var sdk = resolver.dartSdk; | 118 var sdk = resolver.dartSdk; |
115 var lib = sdk.getSdkLibrary('dart:fox'); | 119 var lib = sdk.getSdkLibrary('dart:fox'); |
116 expect(lib, isNotNull); | 120 expect(lib, isNotNull); |
117 expect(lib.path, posixToOSPath('/tmp/slippy.dart')); | 121 expect(lib.path, posixToOSPath('/tmp/slippy.dart')); |
118 expect(lib.shortName, 'fox'); | 122 expect(lib.shortName, 'dart:fox'); |
119 }); | 123 }); |
120 test('test_EmbedderSdk_mapDartUri', () { | 124 test('test_EmbedderSdk_mapDartUri', () { |
121 var locator = new EmbedderYamlLocator({ | 125 var locator = new EmbedderYamlLocator({ |
122 'fox': [pathTranslator.getResource('/tmp')] | 126 'fox': [pathTranslator.getResource('/tmp')] |
123 }); | 127 }); |
124 var resolver = new EmbedderUriResolver(locator.embedderYamls); | 128 var resolver = |
129 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
125 var sdk = resolver.dartSdk; | 130 var sdk = resolver.dartSdk; |
126 | 131 |
127 expectSource(String dartUri, String posixPath) { | 132 expectSource(String dartUri, String posixPath) { |
128 var source = sdk.mapDartUri(dartUri); | 133 var source = sdk.mapDartUri(dartUri); |
129 expect(source, isNotNull, reason: posixPath); | 134 expect(source, isNotNull, reason: posixPath); |
130 expect(source.uri.toString(), dartUri); | 135 expect(source.uri.toString(), dartUri); |
131 expect(source.fullName, posixToOSPath(posixPath)); | 136 expect(source.fullName, posixToOSPath(posixPath)); |
132 } | 137 } |
133 | 138 |
139 expectSource('dart:core', '/tmp/core.dart'); | |
134 expectSource('dart:fox', '/tmp/slippy.dart'); | 140 expectSource('dart:fox', '/tmp/slippy.dart'); |
135 expectSource('dart:deep', '/tmp/deep/directory/file.dart'); | 141 expectSource('dart:deep', '/tmp/deep/directory/file.dart'); |
136 expectSource('dart:deep/part.dart', '/tmp/deep/directory/part.dart'); | 142 expectSource('dart:deep/part.dart', '/tmp/deep/directory/part.dart'); |
137 }); | 143 }); |
138 }); | 144 }); |
139 } | 145 } |
140 | 146 |
141 TestPathTranslator pathTranslator; | 147 TestPathTranslator pathTranslator; |
142 ResourceProvider resourceProvider; | 148 ResourceProvider resourceProvider; |
143 | 149 |
144 buildResourceProvider() { | 150 buildResourceProvider() { |
145 var rawProvider = new MemoryResourceProvider(isWindows: isWindows); | 151 var rawProvider = new MemoryResourceProvider(isWindows: isWindows); |
146 resourceProvider = new TestResourceProvider(rawProvider); | 152 resourceProvider = new TestResourceProvider(rawProvider); |
147 pathTranslator = new TestPathTranslator(rawProvider) | 153 pathTranslator = new TestPathTranslator(rawProvider) |
148 ..newFolder('/empty') | 154 ..newFolder('/empty') |
149 ..newFolder('/tmp') | 155 ..newFolder('/tmp') |
150 ..newFile( | 156 ..newFile( |
151 '/tmp/_embedder.yaml', | 157 '/tmp/_embedder.yaml', |
152 r''' | 158 r''' |
153 embedded_libs: | 159 embedded_libs: |
160 "dart:core" : "core.dart" | |
154 "dart:fox": "slippy.dart" | 161 "dart:fox": "slippy.dart" |
155 "dart:bear": "grizzly.dart" | 162 "dart:bear": "grizzly.dart" |
156 "dart:relative": "../relative.dart" | 163 "dart:relative": "../relative.dart" |
157 "dart:deep": "deep/directory/file.dart" | 164 "dart:deep": "deep/directory/file.dart" |
158 "fart:loudly": "nomatter.dart" | 165 "fart:loudly": "nomatter.dart" |
159 '''); | 166 '''); |
160 } | 167 } |
161 | 168 |
162 clearResourceProvider() { | 169 clearResourceProvider() { |
163 resourceProvider = null; | 170 resourceProvider = null; |
164 pathTranslator = null; | 171 pathTranslator = null; |
165 } | 172 } |
OLD | NEW |