 Chromium Code Reviews
 Chromium Code Reviews Issue 2043963004:
  Package map processing abstraction.  (Closed) 
  Base URL: git@github.com:dart-lang/sdk.git@master
    
  
    Issue 2043963004:
  Package map processing abstraction.  (Closed) 
  Base URL: git@github.com:dart-lang/sdk.git@master| Index: pkg/analyzer/test/src/context/context_factory_test.dart | 
| diff --git a/pkg/analyzer/test/src/context/context_factory_test.dart b/pkg/analyzer/test/src/context/context_factory_test.dart | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..bc64fbe6c8495aaeff87ee97be18d56e7c935627 | 
| --- /dev/null | 
| +++ b/pkg/analyzer/test/src/context/context_factory_test.dart | 
| @@ -0,0 +1,75 @@ | 
| +// Copyright (c) 2016, 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 analyzer.test.src.context.context_factory_test; | 
| + | 
| +import 'package:analyzer/file_system/file_system.dart'; | 
| +import 'package:analyzer/file_system/memory_file_system.dart'; | 
| +import 'package:analyzer/src/context/context_factory.dart'; | 
| +import 'package:unittest/unittest.dart'; | 
| + | 
| +import '../../utils.dart'; | 
| + | 
| +main() { | 
| + initializeTestEnvironment(); | 
| + | 
| + group('PackageMapProcessor', () { | 
| 
Brian Wilkerson
2016/06/07 20:48:48
There are a lot of cases not tested here.
- What i
 
pquitslund
2016/06/07 20:59:58
Your wish is my command. :)  Done!
 | 
| + MemoryResourceProvider resourceProvider = new MemoryResourceProvider(); | 
| + | 
| + Folder empty = resourceProvider.newFolder('/empty'); | 
| + Folder tmp_sdk_ext = resourceProvider.newFolder('/tmp_sdk_ext'); | 
| + Folder tmp_embedder = resourceProvider.newFolder('/tmp_embedder'); | 
| + | 
| + Map<String, List<Folder>> packageMap = <String, List<Folder>>{ | 
| + 'empty': [empty], | 
| + 'tmp_embedder': [tmp_embedder], | 
| + 'tmp_sdk_ext': [tmp_sdk_ext] | 
| + }; | 
| + | 
| + test('basic processing', () { | 
| + resourceProvider.newFile( | 
| + '/tmp_sdk_ext/_sdkext', | 
| + r''' | 
| + { | 
| + "dart:ui": "ui.dart" | 
| + }'''); | 
| + resourceProvider.newFile( | 
| + '/tmp_embedder/_embedder.yaml', | 
| + r''' | 
| +embedded_libs: | 
| + "dart:core" : "core.dart" | 
| + "dart:fox": "slippy.dart" | 
| + "dart:bear": "grizzly.dart" | 
| + "dart:relative": "../relative.dart" | 
| + "dart:deep": "deep/directory/file.dart" | 
| +'''); | 
| + | 
| + PackageMapProcessor proc = new PackageMapProcessor(packageMap); | 
| + expect(proc.embeddedLibraries.size(), 5); | 
| + expect(proc.extendedLibraries.size(), 1); | 
| 
Brian Wilkerson
2016/06/07 20:48:48
We should test that the library map has the right
 
pquitslund
2016/06/07 20:59:58
Agreed.  I'll follow up with a test-full follow up
 | 
| + }); | 
| + test('extenders do not override', () { | 
| + resourceProvider.newFile( | 
| + '/tmp_sdk_ext/_sdkext', | 
| + r''' | 
| + { | 
| + "dart:ui": "ui2.dart" | 
| + }'''); | 
| + resourceProvider.newFile( | 
| + '/tmp_embedder/_embedder.yaml', | 
| + r''' | 
| +embedded_libs: | 
| + "dart:core" : "core.dart" | 
| + "dart:ui": "ui.dart" | 
| +'''); | 
| + | 
| + PackageMapProcessor proc = new PackageMapProcessor(packageMap); | 
| + expect(proc.embeddedLibraries.size(), 2); | 
| + expect(proc.extendedLibraries.size(), 1); | 
| + expect(proc.libraryMap.size(), 2); | 
| + expect( | 
| + proc.libraryMap.getLibrary('dart:ui').path, '/tmp_embedder/ui.dart'); | 
| + }); | 
| + }); | 
| +} |