| 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 @deprecated | 5 @deprecated |
| 6 library analyzer.test.source.embedder_test; | 6 library analyzer.test.source.embedder_test; |
| 7 | 7 |
| 8 import 'dart:core' hide Resource; | 8 import 'dart:core' hide Resource; |
| 9 | 9 |
| 10 import 'package:analyzer/source/embedder.dart'; | 10 import 'package:analyzer/source/embedder.dart'; |
| 11 import 'package:analyzer/src/generated/sdk.dart'; | 11 import 'package:analyzer/src/generated/sdk.dart'; |
| 12 import 'package:analyzer/src/generated/source.dart'; | 12 import 'package:analyzer/src/generated/source.dart'; |
| 13 import 'package:unittest/unittest.dart'; | 13 import 'package:unittest/unittest.dart'; |
| 14 | 14 |
| 15 import '../embedder_tests.dart'; | 15 import '../embedder_tests.dart'; |
| 16 import '../reflective_tests.dart'; | 16 import '../reflective_tests.dart'; |
| 17 import '../resource_utils.dart'; | 17 import '../resource_utils.dart'; |
| 18 | 18 |
| 19 main() { | 19 main() { |
| 20 runReflectiveTests(DartUriResolverTest); | 20 runReflectiveTests(DartUriResolverTest); |
| 21 runReflectiveTests(EmbedderSdkTest); | 21 runReflectiveTests(EmbedderSdkTest); |
| 22 runReflectiveTests(EmbedderUriResolverTest); | 22 runReflectiveTests(EmbedderUriResolverTest); |
| 23 } | 23 } |
| 24 | 24 |
| 25 @reflectiveTest | 25 @reflectiveTest |
| 26 class DartUriResolverTest extends EmbedderRelatedTest { | 26 class DartUriResolverTest extends EmbedderRelatedTest { |
| 27 void test_embedderYaml() { | 27 void test_embedderYaml() { |
| 28 EmbedderYamlLocator locator = new EmbedderYamlLocator({ | 28 EmbedderYamlLocator locator = new EmbedderYamlLocator({ |
| 29 'fox': [pathTranslator.getResource('/tmp')] | 29 'fox': [pathTranslator.getResource(foxLib)] |
| 30 }); | 30 }); |
| 31 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); | 31 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); |
| 32 DartUriResolver resolver = new DartUriResolver(sdk); | 32 DartUriResolver resolver = new DartUriResolver(sdk); |
| 33 | 33 |
| 34 void expectResolved(dartUri, posixPath) { | 34 void expectResolved(dartUri, posixPath) { |
| 35 Source source = resolver.resolveAbsolute(Uri.parse(dartUri)); | 35 Source source = resolver.resolveAbsolute(Uri.parse(dartUri)); |
| 36 expect(source, isNotNull, reason: dartUri); | 36 expect(source, isNotNull, reason: dartUri); |
| 37 expect(source.fullName, posixToOSPath(posixPath)); | 37 expect(source.fullName, posixToOSPath(posixPath)); |
| 38 } | 38 } |
| 39 | 39 |
| 40 // Check that they map to the correct paths. | 40 // Check that they map to the correct paths. |
| 41 expectResolved('dart:core', '/tmp/core.dart'); | 41 expectResolved('dart:core', '$foxLib/core.dart'); |
| 42 expectResolved('dart:fox', '/tmp/slippy.dart'); | 42 expectResolved('dart:fox', '$foxLib/slippy.dart'); |
| 43 expectResolved('dart:bear', '/tmp/grizzly.dart'); | 43 expectResolved('dart:bear', '$foxLib/grizzly.dart'); |
| 44 expectResolved('dart:relative', '/relative.dart'); | 44 expectResolved('dart:relative', '$foxPath/relative.dart'); |
| 45 expectResolved('dart:deep', '/tmp/deep/directory/file.dart'); | 45 expectResolved('dart:deep', '$foxLib/deep/directory/file.dart'); |
| 46 } | 46 } |
| 47 } | 47 } |
| 48 | 48 |
| 49 @reflectiveTest | 49 @reflectiveTest |
| 50 class EmbedderSdkTest extends EmbedderRelatedTest { | 50 class EmbedderSdkTest extends EmbedderRelatedTest { |
| 51 void test_creation() { | 51 void test_creation() { |
| 52 EmbedderYamlLocator locator = new EmbedderYamlLocator({ | 52 EmbedderYamlLocator locator = new EmbedderYamlLocator({ |
| 53 'fox': [pathTranslator.getResource('/tmp')] | 53 'fox': [pathTranslator.getResource(foxLib)] |
| 54 }); | 54 }); |
| 55 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); | 55 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); |
| 56 | 56 |
| 57 expect(sdk.urlMappings, hasLength(5)); | 57 expect(sdk.urlMappings, hasLength(5)); |
| 58 } | 58 } |
| 59 | 59 |
| 60 void test_fromFileUri() { | 60 void test_fromFileUri() { |
| 61 EmbedderYamlLocator locator = new EmbedderYamlLocator({ | 61 EmbedderYamlLocator locator = new EmbedderYamlLocator({ |
| 62 'fox': [pathTranslator.getResource('/tmp')] | 62 'fox': [pathTranslator.getResource(foxLib)] |
| 63 }); | 63 }); |
| 64 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); | 64 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); |
| 65 | 65 |
| 66 expectSource(String posixPath, String dartUri) { | 66 expectSource(String posixPath, String dartUri) { |
| 67 Uri uri = Uri.parse(posixToOSFileUri(posixPath)); | 67 Uri uri = Uri.parse(posixToOSFileUri(posixPath)); |
| 68 Source source = sdk.fromFileUri(uri); | 68 Source source = sdk.fromFileUri(uri); |
| 69 expect(source, isNotNull, reason: posixPath); | 69 expect(source, isNotNull, reason: posixPath); |
| 70 expect(source.uri.toString(), dartUri); | 70 expect(source.uri.toString(), dartUri); |
| 71 expect(source.fullName, posixToOSPath(posixPath)); | 71 expect(source.fullName, posixToOSPath(posixPath)); |
| 72 } | 72 } |
| 73 | 73 |
| 74 expectSource('/tmp/slippy.dart', 'dart:fox'); | 74 expectSource('$foxLib/slippy.dart', 'dart:fox'); |
| 75 expectSource('/tmp/deep/directory/file.dart', 'dart:deep'); | 75 expectSource('$foxLib/deep/directory/file.dart', 'dart:deep'); |
| 76 expectSource('/tmp/deep/directory/part.dart', 'dart:deep/part.dart'); | 76 expectSource('$foxLib/deep/directory/part.dart', 'dart:deep/part.dart'); |
| 77 } | 77 } |
| 78 | 78 |
| 79 void test_getSdkLibrary() { | 79 void test_getSdkLibrary() { |
| 80 EmbedderYamlLocator locator = new EmbedderYamlLocator({ | 80 EmbedderYamlLocator locator = new EmbedderYamlLocator({ |
| 81 'fox': [pathTranslator.getResource('/tmp')] | 81 'fox': [pathTranslator.getResource(foxLib)] |
| 82 }); | 82 }); |
| 83 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); | 83 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); |
| 84 | 84 |
| 85 SdkLibrary lib = sdk.getSdkLibrary('dart:fox'); | 85 SdkLibrary lib = sdk.getSdkLibrary('dart:fox'); |
| 86 expect(lib, isNotNull); | 86 expect(lib, isNotNull); |
| 87 expect(lib.path, posixToOSPath('/tmp/slippy.dart')); | 87 expect(lib.path, posixToOSPath('$foxLib/slippy.dart')); |
| 88 expect(lib.shortName, 'dart:fox'); | 88 expect(lib.shortName, 'dart:fox'); |
| 89 } | 89 } |
| 90 | 90 |
| 91 void test_mapDartUri() { | 91 void test_mapDartUri() { |
| 92 EmbedderYamlLocator locator = new EmbedderYamlLocator({ | 92 EmbedderYamlLocator locator = new EmbedderYamlLocator({ |
| 93 'fox': [pathTranslator.getResource('/tmp')] | 93 'fox': [pathTranslator.getResource(foxLib)] |
| 94 }); | 94 }); |
| 95 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); | 95 EmbedderSdk sdk = new EmbedderSdk(locator.embedderYamls); |
| 96 | 96 |
| 97 void expectSource(String dartUri, String posixPath) { | 97 void expectSource(String dartUri, String posixPath) { |
| 98 Source source = sdk.mapDartUri(dartUri); | 98 Source source = sdk.mapDartUri(dartUri); |
| 99 expect(source, isNotNull, reason: posixPath); | 99 expect(source, isNotNull, reason: posixPath); |
| 100 expect(source.uri.toString(), dartUri); | 100 expect(source.uri.toString(), dartUri); |
| 101 expect(source.fullName, posixToOSPath(posixPath)); | 101 expect(source.fullName, posixToOSPath(posixPath)); |
| 102 } | 102 } |
| 103 | 103 |
| 104 expectSource('dart:core', '/tmp/core.dart'); | 104 expectSource('dart:core', '$foxLib/core.dart'); |
| 105 expectSource('dart:fox', '/tmp/slippy.dart'); | 105 expectSource('dart:fox', '$foxLib/slippy.dart'); |
| 106 expectSource('dart:deep', '/tmp/deep/directory/file.dart'); | 106 expectSource('dart:deep', '$foxLib/deep/directory/file.dart'); |
| 107 expectSource('dart:deep/part.dart', '/tmp/deep/directory/part.dart'); | 107 expectSource('dart:deep/part.dart', '$foxLib/deep/directory/part.dart'); |
| 108 } | 108 } |
| 109 } | 109 } |
| 110 | 110 |
| 111 @reflectiveTest | 111 @reflectiveTest |
| 112 class EmbedderUriResolverTest extends EmbedderRelatedTest { | 112 class EmbedderUriResolverTest extends EmbedderRelatedTest { |
| 113 void test_embedderYaml() { | 113 void test_embedderYaml() { |
| 114 var locator = new EmbedderYamlLocator({ | 114 var locator = new EmbedderYamlLocator({ |
| 115 'fox': [pathTranslator.getResource('/tmp')] | 115 'fox': [pathTranslator.getResource(foxLib)] |
| 116 }); | 116 }); |
| 117 var resolver = new EmbedderUriResolver(locator.embedderYamls); | 117 var resolver = new EmbedderUriResolver(locator.embedderYamls); |
| 118 | 118 |
| 119 expectResolved(dartUri, posixPath) { | 119 expectResolved(dartUri, posixPath) { |
| 120 Source source = resolver.resolveAbsolute(Uri.parse(dartUri)); | 120 Source source = resolver.resolveAbsolute(Uri.parse(dartUri)); |
| 121 expect(source, isNotNull, reason: dartUri); | 121 expect(source, isNotNull, reason: dartUri); |
| 122 expect(source.fullName, posixToOSPath(posixPath)); | 122 expect(source.fullName, posixToOSPath(posixPath)); |
| 123 } | 123 } |
| 124 | 124 |
| 125 // We have five mappings. | 125 // We have five mappings. |
| 126 expect(resolver, hasLength(5)); | 126 expect(resolver, hasLength(5)); |
| 127 // Check that they map to the correct paths. | 127 // Check that they map to the correct paths. |
| 128 expectResolved('dart:core', '/tmp/core.dart'); | 128 expectResolved('dart:core', '$foxLib/core.dart'); |
| 129 expectResolved('dart:fox', '/tmp/slippy.dart'); | 129 expectResolved('dart:fox', '$foxLib/slippy.dart'); |
| 130 expectResolved('dart:bear', '/tmp/grizzly.dart'); | 130 expectResolved('dart:bear', '$foxLib/grizzly.dart'); |
| 131 expectResolved('dart:relative', '/relative.dart'); | 131 expectResolved('dart:relative', '$foxPath/relative.dart'); |
| 132 expectResolved('dart:deep', '/tmp/deep/directory/file.dart'); | 132 expectResolved('dart:deep', '$foxLib/deep/directory/file.dart'); |
| 133 } | 133 } |
| 134 | 134 |
| 135 void test_nullEmbedderYamls() { | 135 void test_nullEmbedderYamls() { |
| 136 var resolver = new EmbedderUriResolver(null); | 136 var resolver = new EmbedderUriResolver(null); |
| 137 expect(resolver, hasLength(0)); | 137 expect(resolver, hasLength(0)); |
| 138 } | 138 } |
| 139 | 139 |
| 140 void test_restoreAbsolute() { | 140 void test_restoreAbsolute() { |
| 141 var locator = new EmbedderYamlLocator({ | 141 var locator = new EmbedderYamlLocator({ |
| 142 'fox': [pathTranslator.getResource('/tmp')] | 142 'fox': [pathTranslator.getResource(foxLib)] |
| 143 }); | 143 }); |
| 144 var resolver = new EmbedderUriResolver(locator.embedderYamls); | 144 var resolver = new EmbedderUriResolver(locator.embedderYamls); |
| 145 | 145 |
| 146 expectRestore(String dartUri, [String expected]) { | 146 expectRestore(String dartUri, [String expected]) { |
| 147 var parsedUri = Uri.parse(dartUri); | 147 var parsedUri = Uri.parse(dartUri); |
| 148 var source = resolver.resolveAbsolute(parsedUri); | 148 var source = resolver.resolveAbsolute(parsedUri); |
| 149 expect(source, isNotNull); | 149 expect(source, isNotNull); |
| 150 // Restore source's uri. | 150 // Restore source's uri. |
| 151 var restoreUri = resolver.restoreAbsolute(source); | 151 var restoreUri = resolver.restoreAbsolute(source); |
| 152 expect(restoreUri, isNotNull, reason: dartUri); | 152 expect(restoreUri, isNotNull, reason: dartUri); |
| 153 // Verify that it is 'dart:fox'. | 153 // Verify that it is 'dart:fox'. |
| 154 expect(restoreUri.toString(), expected ?? dartUri); | 154 expect(restoreUri.toString(), expected ?? dartUri); |
| 155 List<String> split = (expected ?? dartUri).split(':'); | 155 List<String> split = (expected ?? dartUri).split(':'); |
| 156 expect(restoreUri.scheme, split[0]); | 156 expect(restoreUri.scheme, split[0]); |
| 157 expect(restoreUri.path, split[1]); | 157 expect(restoreUri.path, split[1]); |
| 158 } | 158 } |
| 159 | 159 |
| 160 expectRestore('dart:deep'); | 160 expectRestore('dart:deep'); |
| 161 expectRestore('dart:deep/file.dart', 'dart:deep'); | 161 expectRestore('dart:deep/file.dart', 'dart:deep'); |
| 162 expectRestore('dart:deep/part.dart'); | 162 expectRestore('dart:deep/part.dart'); |
| 163 expectRestore('dart:deep/deep/file.dart'); | 163 expectRestore('dart:deep/deep/file.dart'); |
| 164 } | 164 } |
| 165 } | 165 } |
| OLD | NEW |