Chromium Code Reviews| 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 |