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

Side by Side Diff: pkg/analyzer/test/source/embedder_test.dart

Issue 1596693002: simplify EmbedderUrlResolver (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 4 years, 11 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
« no previous file with comments | « pkg/analyzer/lib/source/embedder.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 'package:analyzer/file_system/memory_file_system.dart'; 7 import 'package:analyzer/file_system/memory_file_system.dart';
8 import 'package:analyzer/source/embedder.dart'; 8 import 'package:analyzer/source/embedder.dart';
9 import 'package:analyzer/src/generated/java_io.dart'; 9 import 'package:analyzer/src/generated/java_io.dart';
10 import 'package:analyzer/src/generated/source.dart';
10 import 'package:unittest/unittest.dart'; 11 import 'package:unittest/unittest.dart';
11 12
12 import '../utils.dart'; 13 import '../utils.dart';
13 14
14 main() { 15 main() {
15 initializeTestEnvironment(); 16 initializeTestEnvironment();
16 group('EmbedderUriResolverTest', () { 17 group('EmbedderUriResolverTest', () {
17 setUp(() { 18 setUp(() {
18 buildResourceProvider(); 19 buildResourceProvider();
19 }); 20 });
20 tearDown(() { 21 tearDown(() {
21 clearResourceProvider(); 22 clearResourceProvider();
22 }); 23 });
23 test('test_NullEmbedderYamls', () { 24 test('test_NullEmbedderYamls', () {
24 var resolver = new EmbedderUriResolver(null); 25 var resolver = new EmbedderUriResolver(null);
25 expect(resolver.length, equals(0)); 26 expect(resolver.length, equals(0));
26 }); 27 });
27 test('test_NoEmbedderYamls', () { 28 test('test_NoEmbedderYamls', () {
28 var locator = new EmbedderYamlLocator({ 29 var locator = new EmbedderYamlLocator({
29 'fox': [resourceProvider.getResource('/empty')] 30 'fox': [resourceProvider.getResource('/empty')]
30 }); 31 });
31 expect(locator.embedderYamls.length, equals(0)); 32 expect(locator.embedderYamls.length, equals(0));
32 }); 33 });
33 test('test_EmbedderYaml', () { 34 test('test_EmbedderYaml', () {
34 var locator = new EmbedderYamlLocator({ 35 var locator = new EmbedderYamlLocator({
35 'fox': [resourceProvider.getResource('/tmp')] 36 'fox': [resourceProvider.getResource('/tmp')]
36 }); 37 });
37 var resolver = new EmbedderUriResolver(locator.embedderYamls); 38 var resolver = new EmbedderUriResolver(locator.embedderYamls);
39
40 expectResolved(dartUri, filePath) {
41 Source source = resolver.resolveAbsolute(Uri.parse(dartUri));
42 expect(source, isNotNull, reason: dartUri);
43 expect(source.fullName, filePath);
44 }
45
38 // We have four mappings. 46 // We have four mappings.
39 expect(resolver.length, equals(4)); 47 expect(resolver.length, equals(4));
40 // Check that they map to the correct paths. 48 // Check that they map to the correct paths.
41 expect(resolver['dart:fox'], equals("/tmp/slippy.dart")); 49 expectResolved('dart:fox', '/tmp/slippy.dart');
42 expect(resolver['dart:bear'], equals("/tmp/grizzly.dart")); 50 expectResolved('dart:bear', '/tmp/grizzly.dart');
43 expect(resolver['dart:relative'], equals("/relative.dart")); 51 expectResolved('dart:relative', '/relative.dart');
44 expect(resolver['dart:deep'], equals("/tmp/deep/directory/file.dart")); 52 expectResolved('dart:deep', '/tmp/deep/directory/file.dart');
45 }); 53 });
46 test('test_BadYAML', () { 54 test('test_BadYAML', () {
47 var locator = new EmbedderYamlLocator(null); 55 var locator = new EmbedderYamlLocator(null);
48 locator.addEmbedderYaml(null, r'''{{{,{{}}},}}'''); 56 locator.addEmbedderYaml(null, r'''{{{,{{}}},}}''');
49 expect(locator.embedderYamls.length, equals(0)); 57 expect(locator.embedderYamls.length, equals(0));
50 }); 58 });
51 test('test_restoreAbsolute', () { 59 test('test_restoreAbsolute', () {
52 var locator = new EmbedderYamlLocator({ 60 var locator = new EmbedderYamlLocator({
53 'fox': [resourceProvider.getResource('/tmp')] 61 'fox': [resourceProvider.getResource('/tmp')]
54 }); 62 });
55 var resolver = new EmbedderUriResolver(locator.embedderYamls); 63 var resolver = new EmbedderUriResolver(locator.embedderYamls);
56 var source = resolver.resolveAbsolute(Uri.parse('dart:fox')); 64
57 expect(source, isNotNull); 65 expectRestore(String dartUri, [String expected]) {
58 // Restore source's uri. 66 var source = resolver.resolveAbsolute(Uri.parse(dartUri));
59 var restoreUri = resolver.restoreAbsolute(source); 67 expect(source, isNotNull);
60 expect(restoreUri, isNotNull); 68 // Restore source's uri.
61 // Verify that it is 'dart:fox'. 69 var restoreUri = resolver.restoreAbsolute(source);
62 expect(restoreUri.toString(), equals('dart:fox')); 70 expect(restoreUri, isNotNull, reason: dartUri);
63 expect(restoreUri.scheme, equals('dart')); 71 // Verify that it is 'dart:fox'.
64 expect(restoreUri.path, equals('fox')); 72 expect(restoreUri.toString(), equals(expected ?? dartUri));
73 List<String> split = (expected ?? dartUri).split(':');
74 expect(restoreUri.scheme, equals(split[0]));
75 expect(restoreUri.path, equals(split[1]));
76 }
77
78 expectRestore('dart:deep');
79 expectRestore('dart:deep/file.dart', 'dart:deep');
80 expectRestore('dart:deep/part.dart');
81 expectRestore('dart:deep/deep/file.dart');
65 }); 82 });
66 83
67 test('test_EmbedderSdk_fromFileUri', () { 84 test('test_EmbedderSdk_fromFileUri', () {
68 var locator = new EmbedderYamlLocator({ 85 var locator = new EmbedderYamlLocator({
69 'fox': [resourceProvider.getResource('/tmp')] 86 'fox': [resourceProvider.getResource('/tmp')]
70 }); 87 });
71 var resolver = new EmbedderUriResolver(locator.embedderYamls); 88 var resolver = new EmbedderUriResolver(locator.embedderYamls);
72 var sdk = resolver.dartSdk; 89 var sdk = resolver.dartSdk;
73 90
74 expectSource(String filePath, String dartUri) { 91 expectSource(String filePath, String dartUri) {
75 var uri = Uri.parse(filePath); 92 var uri = Uri.parse(filePath);
76 var source = sdk.fromFileUri(uri); 93 var source = sdk.fromFileUri(uri);
77 expect(source, isNotNull, reason: filePath); 94 expect(source, isNotNull, reason: filePath);
78 expect(source.uri.toString(), dartUri); 95 expect(source.uri.toString(), dartUri);
79 expect(source.fullName, filePath.replaceAll('/', JavaFile.separator)); 96 expect(source.fullName, filePath);
80 } 97 }
81 98
82 expectSource('/tmp/slippy.dart', 'dart:fox'); 99 expectSource('/tmp/slippy.dart', 'dart:fox');
83 expectSource('\\tmp\\slippy.dart', 'dart:fox');
84 expectSource('/tmp/deep/directory/file.dart', 'dart:deep'); 100 expectSource('/tmp/deep/directory/file.dart', 'dart:deep');
85 expectSource('/tmp/deep/directory/part.dart', 'dart:deep/part.dart'); 101 expectSource('/tmp/deep/directory/part.dart', 'dart:deep/part.dart');
86 }); 102 });
87 test('test_EmbedderSdk_getSdkLibrary', () { 103 test('test_EmbedderSdk_getSdkLibrary', () {
88 var locator = new EmbedderYamlLocator({ 104 var locator = new EmbedderYamlLocator({
89 'fox': [resourceProvider.getResource('/tmp')] 105 'fox': [resourceProvider.getResource('/tmp')]
90 }); 106 });
91 var resolver = new EmbedderUriResolver(locator.embedderYamls); 107 var resolver = new EmbedderUriResolver(locator.embedderYamls);
92 var sdk = resolver.dartSdk; 108 var sdk = resolver.dartSdk;
93 var lib = sdk.getSdkLibrary('dart:fox'); 109 var lib = sdk.getSdkLibrary('dart:fox');
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 "dart:bear": "grizzly.dart" 146 "dart:bear": "grizzly.dart"
131 "dart:relative": "../relative.dart" 147 "dart:relative": "../relative.dart"
132 "dart:deep": "deep/directory/file.dart" 148 "dart:deep": "deep/directory/file.dart"
133 "fart:loudly": "nomatter.dart" 149 "fart:loudly": "nomatter.dart"
134 '''); 150 ''');
135 } 151 }
136 152
137 clearResourceProvider() { 153 clearResourceProvider() {
138 resourceProvider = null; 154 resourceProvider = null;
139 } 155 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/source/embedder.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698