b936ffb329
Change-Id: I8259de00134310f25b1c6168940aea5190488999 Reviewed-on: https://dart-review.googlesource.com/51443 Commit-Queue: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
97 lines
3.2 KiB
Dart
97 lines
3.2 KiB
Dart
// 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.
|
|
|
|
import 'package:analyzer/file_system/file_system.dart';
|
|
import 'package:analyzer/file_system/memory_file_system.dart';
|
|
import 'package:analyzer/src/source/sdk_ext.dart';
|
|
import 'package:test/test.dart';
|
|
import 'package:test_reflective_loader/test_reflective_loader.dart';
|
|
|
|
main() {
|
|
defineReflectiveSuite(() {
|
|
defineReflectiveTests(SdkExtUriResolverTest);
|
|
});
|
|
}
|
|
|
|
@reflectiveTest
|
|
class SdkExtUriResolverTest {
|
|
MemoryResourceProvider resourceProvider;
|
|
|
|
void setUp() {
|
|
String joinAndEscape(List<String> components) {
|
|
return resourceProvider.pathContext
|
|
.joinAll(components)
|
|
.replaceAll(r'\', r'\\');
|
|
}
|
|
|
|
resourceProvider = new MemoryResourceProvider();
|
|
resourceProvider.newFolder(resourceProvider.convertPath('/empty'));
|
|
resourceProvider.newFolder(resourceProvider.convertPath('/tmp'));
|
|
resourceProvider.newFile(resourceProvider.convertPath('/tmp/_sdkext'), '''
|
|
{
|
|
"dart:fox": "slippy.dart",
|
|
"dart:bear": "grizzly.dart",
|
|
"dart:relative": "${joinAndEscape(['..', 'relative.dart'])}",
|
|
"dart:deep": "${joinAndEscape(['deep', 'directory', 'file.dart'])}",
|
|
"fart:loudly": "nomatter.dart"
|
|
}''');
|
|
}
|
|
|
|
test_create_badJSON() {
|
|
var resolver = new SdkExtUriResolver(null);
|
|
resolver.addSdkExt(r'''{{{,{{}}},}}''', null);
|
|
expect(resolver.length, equals(0));
|
|
}
|
|
|
|
test_create_noSdkExtPackageMap() {
|
|
var resolver = new SdkExtUriResolver({
|
|
'fox': <Folder>[
|
|
resourceProvider.getFolder(resourceProvider.convertPath('/empty'))
|
|
]
|
|
});
|
|
expect(resolver.length, equals(0));
|
|
}
|
|
|
|
test_create_nullPackageMap() {
|
|
var resolver = new SdkExtUriResolver(null);
|
|
expect(resolver.length, equals(0));
|
|
}
|
|
|
|
test_create_sdkExtPackageMap() {
|
|
var resolver = new SdkExtUriResolver({
|
|
'fox': <Folder>[
|
|
resourceProvider.newFolder(resourceProvider.convertPath('/tmp'))
|
|
]
|
|
});
|
|
// We have four mappings.
|
|
expect(resolver.length, equals(4));
|
|
// Check that they map to the correct paths.
|
|
expect(resolver['dart:fox'],
|
|
equals(resourceProvider.convertPath('/tmp/slippy.dart')));
|
|
expect(resolver['dart:bear'],
|
|
equals(resourceProvider.convertPath('/tmp/grizzly.dart')));
|
|
expect(resolver['dart:relative'],
|
|
equals(resourceProvider.convertPath('/relative.dart')));
|
|
expect(resolver['dart:deep'],
|
|
equals(resourceProvider.convertPath('/tmp/deep/directory/file.dart')));
|
|
}
|
|
|
|
test_restoreAbsolute() {
|
|
var resolver = new SdkExtUriResolver({
|
|
'fox': <Folder>[
|
|
resourceProvider.newFolder(resourceProvider.convertPath('/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'));
|
|
}
|
|
}
|