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 22 matching lines...) Expand all Loading... |
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, 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 = | 43 var resolver = new EmbedderUriResolver(locator.embedderYamls); |
44 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
45 | 44 |
46 expectResolved(dartUri, posixPath) { | 45 expectResolved(dartUri, posixPath) { |
47 Source source = resolver.resolveAbsolute(Uri.parse(dartUri)); | 46 Source source = resolver.resolveAbsolute(Uri.parse(dartUri)); |
48 expect(source, isNotNull, reason: dartUri); | 47 expect(source, isNotNull, reason: dartUri); |
49 expect(source.fullName, posixToOSPath(posixPath)); | 48 expect(source.fullName, posixToOSPath(posixPath)); |
50 } | 49 } |
51 | 50 |
52 // We have five mappings. | 51 // We have five mappings. |
53 expect(resolver.length, 5); | 52 expect(resolver.length, 5); |
54 // Check that they map to the correct paths. | 53 // Check that they map to the correct paths. |
55 expectResolved('dart:core', '/tmp/core.dart'); | 54 expectResolved('dart:core', '/tmp/core.dart'); |
56 expectResolved('dart:fox', '/tmp/slippy.dart'); | 55 expectResolved('dart:fox', '/tmp/slippy.dart'); |
57 expectResolved('dart:bear', '/tmp/grizzly.dart'); | 56 expectResolved('dart:bear', '/tmp/grizzly.dart'); |
58 expectResolved('dart:relative', '/relative.dart'); | 57 expectResolved('dart:relative', '/relative.dart'); |
59 expectResolved('dart:deep', '/tmp/deep/directory/file.dart'); | 58 expectResolved('dart:deep', '/tmp/deep/directory/file.dart'); |
60 }); | 59 }); |
61 test('test_BadYAML', () { | 60 test('test_BadYAML', () { |
62 var locator = new EmbedderYamlLocator(null); | 61 var locator = new EmbedderYamlLocator(null); |
63 locator.addEmbedderYaml(null, r'''{{{,{{}}},}}'''); | 62 locator.addEmbedderYaml(null, r'''{{{,{{}}},}}'''); |
64 expect(locator.embedderYamls.length, 0); | 63 expect(locator.embedderYamls.length, 0); |
65 }); | 64 }); |
66 test('test_restoreAbsolute', () { | 65 test('test_restoreAbsolute', () { |
67 var locator = new EmbedderYamlLocator({ | 66 var locator = new EmbedderYamlLocator({ |
68 'fox': [pathTranslator.getResource('/tmp')] | 67 'fox': [pathTranslator.getResource('/tmp')] |
69 }); | 68 }); |
70 var resolver = | 69 var resolver = new EmbedderUriResolver(locator.embedderYamls); |
71 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
72 | 70 |
73 expectRestore(String dartUri, [String expected]) { | 71 expectRestore(String dartUri, [String expected]) { |
74 var parsedUri = Uri.parse(dartUri); | 72 var parsedUri = Uri.parse(dartUri); |
75 var source = resolver.resolveAbsolute(parsedUri); | 73 var source = resolver.resolveAbsolute(parsedUri); |
76 expect(source, isNotNull); | 74 expect(source, isNotNull); |
77 // Restore source's uri. | 75 // Restore source's uri. |
78 var restoreUri = resolver.restoreAbsolute(source); | 76 var restoreUri = resolver.restoreAbsolute(source); |
79 expect(restoreUri, isNotNull, reason: dartUri); | 77 expect(restoreUri, isNotNull, reason: dartUri); |
80 // Verify that it is 'dart:fox'. | 78 // Verify that it is 'dart:fox'. |
81 expect(restoreUri.toString(), expected ?? dartUri); | 79 expect(restoreUri.toString(), expected ?? dartUri); |
82 List<String> split = (expected ?? dartUri).split(':'); | 80 List<String> split = (expected ?? dartUri).split(':'); |
83 expect(restoreUri.scheme, split[0]); | 81 expect(restoreUri.scheme, split[0]); |
84 expect(restoreUri.path, split[1]); | 82 expect(restoreUri.path, split[1]); |
85 } | 83 } |
86 | 84 |
87 expectRestore('dart:deep'); | 85 expectRestore('dart:deep'); |
88 expectRestore('dart:deep/file.dart', 'dart:deep'); | 86 expectRestore('dart:deep/file.dart', 'dart:deep'); |
89 expectRestore('dart:deep/part.dart'); | 87 expectRestore('dart:deep/part.dart'); |
90 expectRestore('dart:deep/deep/file.dart'); | 88 expectRestore('dart:deep/deep/file.dart'); |
91 }); | 89 }); |
92 | 90 |
93 test('test_EmbedderSdk_fromFileUri', () { | 91 test('test_EmbedderSdk_fromFileUri', () { |
94 var locator = new EmbedderYamlLocator({ | 92 var locator = new EmbedderYamlLocator({ |
95 'fox': [pathTranslator.getResource('/tmp')] | 93 'fox': [pathTranslator.getResource('/tmp')] |
96 }); | 94 }); |
97 var resolver = | 95 var resolver = new EmbedderUriResolver(locator.embedderYamls); |
98 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
99 var sdk = resolver.dartSdk; | 96 var sdk = resolver.dartSdk; |
100 | 97 |
101 expectSource(String posixPath, String dartUri) { | 98 expectSource(String posixPath, String dartUri) { |
102 var uri = Uri.parse(posixToOSFileUri(posixPath)); | 99 var uri = Uri.parse(posixToOSFileUri(posixPath)); |
103 var source = sdk.fromFileUri(uri); | 100 var source = sdk.fromFileUri(uri); |
104 expect(source, isNotNull, reason: posixPath); | 101 expect(source, isNotNull, reason: posixPath); |
105 expect(source.uri.toString(), dartUri); | 102 expect(source.uri.toString(), dartUri); |
106 expect(source.fullName, posixToOSPath(posixPath)); | 103 expect(source.fullName, posixToOSPath(posixPath)); |
107 } | 104 } |
108 | 105 |
109 expectSource('/tmp/slippy.dart', 'dart:fox'); | 106 expectSource('/tmp/slippy.dart', 'dart:fox'); |
110 expectSource('/tmp/deep/directory/file.dart', 'dart:deep'); | 107 expectSource('/tmp/deep/directory/file.dart', 'dart:deep'); |
111 expectSource('/tmp/deep/directory/part.dart', 'dart:deep/part.dart'); | 108 expectSource('/tmp/deep/directory/part.dart', 'dart:deep/part.dart'); |
112 }); | 109 }); |
113 test('test_EmbedderSdk_getSdkLibrary', () { | 110 test('test_EmbedderSdk_getSdkLibrary', () { |
114 var locator = new EmbedderYamlLocator({ | 111 var locator = new EmbedderYamlLocator({ |
115 'fox': [pathTranslator.getResource('/tmp')] | 112 'fox': [pathTranslator.getResource('/tmp')] |
116 }); | 113 }); |
117 var resolver = | 114 var resolver = new EmbedderUriResolver(locator.embedderYamls); |
118 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
119 var sdk = resolver.dartSdk; | 115 var sdk = resolver.dartSdk; |
120 var lib = sdk.getSdkLibrary('dart:fox'); | 116 var lib = sdk.getSdkLibrary('dart:fox'); |
121 expect(lib, isNotNull); | 117 expect(lib, isNotNull); |
122 expect(lib.path, posixToOSPath('/tmp/slippy.dart')); | 118 expect(lib.path, posixToOSPath('/tmp/slippy.dart')); |
123 expect(lib.shortName, 'dart:fox'); | 119 expect(lib.shortName, 'dart:fox'); |
124 }); | 120 }); |
125 test('test_EmbedderSdk_mapDartUri', () { | 121 test('test_EmbedderSdk_mapDartUri', () { |
126 var locator = new EmbedderYamlLocator({ | 122 var locator = new EmbedderYamlLocator({ |
127 'fox': [pathTranslator.getResource('/tmp')] | 123 'fox': [pathTranslator.getResource('/tmp')] |
128 }); | 124 }); |
129 var resolver = | 125 var resolver = new EmbedderUriResolver(locator.embedderYamls); |
130 new EmbedderUriResolver(new EmbedderSdk(locator.embedderYamls)); | |
131 var sdk = resolver.dartSdk; | 126 var sdk = resolver.dartSdk; |
132 | 127 |
133 expectSource(String dartUri, String posixPath) { | 128 expectSource(String dartUri, String posixPath) { |
134 var source = sdk.mapDartUri(dartUri); | 129 var source = sdk.mapDartUri(dartUri); |
135 expect(source, isNotNull, reason: posixPath); | 130 expect(source, isNotNull, reason: posixPath); |
136 expect(source.uri.toString(), dartUri); | 131 expect(source.uri.toString(), dartUri); |
137 expect(source.fullName, posixToOSPath(posixPath)); | 132 expect(source.fullName, posixToOSPath(posixPath)); |
138 } | 133 } |
139 | 134 |
140 expectSource('dart:core', '/tmp/core.dart'); | 135 expectSource('dart:core', '/tmp/core.dart'); |
(...skipping 23 matching lines...) Expand all Loading... |
164 "dart:relative": "../relative.dart" | 159 "dart:relative": "../relative.dart" |
165 "dart:deep": "deep/directory/file.dart" | 160 "dart:deep": "deep/directory/file.dart" |
166 "fart:loudly": "nomatter.dart" | 161 "fart:loudly": "nomatter.dart" |
167 '''); | 162 '''); |
168 } | 163 } |
169 | 164 |
170 clearResourceProvider() { | 165 clearResourceProvider() { |
171 resourceProvider = null; | 166 resourceProvider = null; |
172 pathTranslator = null; | 167 pathTranslator = null; |
173 } | 168 } |
OLD | NEW |