OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 library analyzer.test.src.summary.in_summary_source_test; | 5 library analyzer.test.src.summary.in_summary_source_test; |
6 | 6 |
7 import 'package:analyzer/src/generated/source_io.dart'; | 7 import 'package:analyzer/src/generated/source_io.dart'; |
| 8 import 'package:analyzer/src/summary/format.dart'; |
8 import 'package:analyzer/src/summary/idl.dart'; | 9 import 'package:analyzer/src/summary/idl.dart'; |
9 import 'package:analyzer/src/summary/package_bundle_reader.dart'; | 10 import 'package:analyzer/src/summary/package_bundle_reader.dart'; |
10 import 'package:unittest/unittest.dart'; | 11 import 'package:unittest/unittest.dart'; |
11 | 12 |
12 import '../../reflective_tests.dart'; | 13 import '../../reflective_tests.dart'; |
13 | 14 |
14 main() { | 15 main() { |
15 groupSep = ' | '; | 16 groupSep = ' | '; |
16 runReflectiveTests(InSummarySourceTest); | 17 runReflectiveTests(InSummarySourceTest); |
17 } | 18 } |
18 | 19 |
19 @reflectiveTest | 20 @reflectiveTest |
20 class InSummarySourceTest extends ReflectiveTest { | 21 class InSummarySourceTest extends ReflectiveTest { |
| 22 test_fallbackPath() { |
| 23 var sourceFactory = new SourceFactory([ |
| 24 new InSummaryPackageUriResolver(new MockSummaryDataStore.fake( |
| 25 {'package:foo/foo.dart': 'foo.sum',}, |
| 26 uriToFallbackModePath: {'package:foo/foo.dart': '/path/to/foo.dart'})) |
| 27 ]); |
| 28 |
| 29 InSummarySource source = sourceFactory.forUri('package:foo/foo.dart'); |
| 30 expect(source, new isInstanceOf<FileBasedSource>()); |
| 31 expect(source.fullName, '/path/to/foo.dart'); |
| 32 } |
| 33 |
21 test_InSummarySource() { | 34 test_InSummarySource() { |
22 var sourceFactory = new SourceFactory([ | 35 var sourceFactory = new SourceFactory([ |
23 new InSummaryPackageUriResolver(new MockSummaryDataStore.fake({ | 36 new InSummaryPackageUriResolver(new MockSummaryDataStore.fake({ |
24 'package:foo/foo.dart': 'foo.sum', | 37 'package:foo/foo.dart': 'foo.sum', |
25 'package:foo/src/foo_impl.dart': 'foo.sum', | 38 'package:foo/src/foo_impl.dart': 'foo.sum', |
26 'package:bar/baz.dart': 'bar.sum', | 39 'package:bar/baz.dart': 'bar.sum', |
27 })) | 40 })) |
28 ]); | 41 ]); |
29 | 42 |
30 InSummarySource source = sourceFactory.forUri('package:foo/foo.dart'); | 43 InSummarySource source = sourceFactory.forUri('package:foo/foo.dart'); |
| 44 expect(source, isNot(new isInstanceOf<FileBasedSource>())); |
31 expect(source.summaryPath, 'foo.sum'); | 45 expect(source.summaryPath, 'foo.sum'); |
32 | 46 |
33 source = sourceFactory.forUri('package:foo/src/foo_impl.dart'); | 47 source = sourceFactory.forUri('package:foo/src/foo_impl.dart'); |
| 48 expect(source, isNot(new isInstanceOf<FileBasedSource>())); |
34 expect(source.summaryPath, 'foo.sum'); | 49 expect(source.summaryPath, 'foo.sum'); |
35 | 50 |
36 source = sourceFactory.forUri('package:bar/baz.dart'); | 51 source = sourceFactory.forUri('package:bar/baz.dart'); |
| 52 expect(source, isNot(new isInstanceOf<FileBasedSource>())); |
37 expect(source.summaryPath, 'bar.sum'); | 53 expect(source.summaryPath, 'bar.sum'); |
38 } | 54 } |
39 } | 55 } |
40 | 56 |
41 class MockSummaryDataStore implements SummaryDataStore { | 57 class MockSummaryDataStore implements SummaryDataStore { |
42 final Map<String, LinkedLibrary> linkedMap; | 58 final Map<String, LinkedLibrary> linkedMap; |
43 final Map<String, UnlinkedUnit> unlinkedMap; | 59 final Map<String, UnlinkedUnit> unlinkedMap; |
44 final Map<String, String> uriToSummaryPath; | 60 final Map<String, String> uriToSummaryPath; |
45 | 61 |
46 MockSummaryDataStore(this.linkedMap, this.unlinkedMap, this.uriToSummaryPath); | 62 MockSummaryDataStore(this.linkedMap, this.unlinkedMap, this.uriToSummaryPath); |
47 | 63 |
48 factory MockSummaryDataStore.fake(Map<String, String> uriToSummary) { | 64 factory MockSummaryDataStore.fake(Map<String, String> uriToSummary, |
| 65 {Map<String, String> uriToFallbackModePath: const {}}) { |
49 // Create fake unlinked map. | 66 // Create fake unlinked map. |
50 // We don't populate the values as it is not needed for the test. | 67 // We don't populate the values as it is not needed for the test. |
51 var unlinkedMap = new Map<String, UnlinkedUnit>.fromIterable( | 68 var unlinkedMap = new Map<String, UnlinkedUnit>.fromIterable( |
52 uriToSummary.keys, | 69 uriToSummary.keys, |
53 value: (k) => null); | 70 value: (uri) => new UnlinkedUnitBuilder( |
| 71 fallbackModePath: uriToFallbackModePath[uri])); |
54 return new MockSummaryDataStore(null, unlinkedMap, uriToSummary); | 72 return new MockSummaryDataStore(null, unlinkedMap, uriToSummary); |
55 } | 73 } |
56 } | 74 } |
OLD | NEW |