Index: packages/analyzer/test/source/sdk_ext_test.dart |
diff --git a/packages/analyzer/test/source/sdk_ext_test.dart b/packages/analyzer/test/source/sdk_ext_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..01416af8ed1db36f78c5a2900f565d0ede3473cb |
--- /dev/null |
+++ b/packages/analyzer/test/source/sdk_ext_test.dart |
@@ -0,0 +1,86 @@ |
+// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+library test.source.sdk_ext; |
+ |
+import 'package:analyzer/file_system/memory_file_system.dart'; |
+import 'package:analyzer/source/sdk_ext.dart'; |
+import 'package:unittest/unittest.dart'; |
+ |
+import '../utils.dart'; |
+ |
+main() { |
+ initializeTestEnvironment(); |
+ group('SdkExtUriResolverTest', () { |
+ setUp(() { |
+ buildResourceProvider(); |
+ }); |
+ tearDown(() { |
+ clearResourceProvider(); |
+ }); |
+ test('test_NullPackageMap', () { |
+ var resolver = new SdkExtUriResolver(null); |
+ expect(resolver.length, equals(0)); |
+ }); |
+ test('test_NoSdkExtPackageMap', () { |
+ var resolver = new SdkExtUriResolver({ |
+ 'fox': [resourceProvider.getResource('/empty')] |
+ }); |
+ expect(resolver.length, equals(0)); |
+ }); |
+ test('test_SdkExtPackageMap', () { |
+ var resolver = new SdkExtUriResolver({ |
+ 'fox': [resourceProvider.getResource('/tmp')] |
+ }); |
+ // We have four mappings. |
+ expect(resolver.length, equals(4)); |
+ // Check that they map to the correct paths. |
+ expect(resolver['dart:fox'], equals("/tmp/slippy.dart")); |
+ expect(resolver['dart:bear'], equals("/tmp/grizzly.dart")); |
+ expect(resolver['dart:relative'], equals("/relative.dart")); |
+ expect(resolver['dart:deep'], equals("/tmp/deep/directory/file.dart")); |
+ }); |
+ test('test_BadJSON', () { |
+ var resolver = new SdkExtUriResolver(null); |
+ resolver.addSdkExt(r'''{{{,{{}}},}}''', null); |
+ expect(resolver.length, equals(0)); |
+ }); |
+ test('test_restoreAbsolute', () { |
+ var resolver = new SdkExtUriResolver({ |
+ 'fox': [resourceProvider.getResource('/tmp')] |
+ }); |
+ var source = resolver.resolveAbsolute(Uri.parse('dart:fox')); |
+ expect(source, isNotNull); |
+ // Restore source's uri. |
+ var restoreUri = resolver.restoreAbsolute(source); |
+ expect(restoreUri, isNotNull); |
+ // Verify that it is 'dart:fox'. |
+ expect(restoreUri.toString(), equals('dart:fox')); |
+ expect(restoreUri.scheme, equals('dart')); |
+ expect(restoreUri.path, equals('fox')); |
+ }); |
+ }); |
+} |
+ |
+MemoryResourceProvider resourceProvider; |
+ |
+buildResourceProvider() { |
+ resourceProvider = new MemoryResourceProvider(); |
+ resourceProvider.newFolder('/empty'); |
+ resourceProvider.newFolder('/tmp'); |
+ resourceProvider.newFile( |
+ '/tmp/_sdkext', |
+ r''' |
+ { |
+ "dart:fox": "slippy.dart", |
+ "dart:bear": "grizzly.dart", |
+ "dart:relative": "../relative.dart", |
+ "dart:deep": "deep/directory/file.dart", |
+ "fart:loudly": "nomatter.dart" |
+ }'''); |
+} |
+ |
+clearResourceProvider() { |
+ resourceProvider = null; |
+} |