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