| 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 '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 Loading... |
| 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 } |
| OLD | NEW |