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