OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 test.services.completion.dart.manager; | 5 library test.services.completion.dart.manager; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
dart'; | 9 import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
dart'; |
10 import 'package:analysis_server/src/services/completion/completion_core.dart'; | 10 import 'package:analysis_server/src/services/completion/completion_core.dart'; |
11 import 'package:analysis_server/src/services/completion/completion_performance.d
art'; | 11 import 'package:analysis_server/src/services/completion/completion_performance.d
art'; |
12 import 'package:analysis_server/src/services/completion/dart/completion_manager.
dart'; | 12 import 'package:analysis_server/src/services/completion/dart/completion_manager.
dart'; |
13 import 'package:analysis_server/src/services/completion/dart/imported_reference_
contributor.dart'; | 13 import 'package:analysis_server/src/services/completion/dart/imported_reference_
contributor.dart'; |
| 14 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; |
14 import 'package:analyzer/dart/element/element.dart'; | 15 import 'package:analyzer/dart/element/element.dart'; |
15 import 'package:analyzer/src/task/dart.dart'; | 16 import 'package:analyzer/src/task/dart.dart'; |
16 import 'package:test/test.dart'; | 17 import 'package:test/test.dart'; |
17 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 18 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
18 | 19 |
19 import 'completion_contributor_util.dart'; | 20 import 'completion_contributor_util.dart'; |
20 | 21 |
21 main() { | 22 main() { |
22 defineReflectiveSuite(() { | 23 defineReflectiveSuite(() { |
23 defineReflectiveTests(CompletionManagerTest); | 24 defineReflectiveTests(CompletionManagerTest); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 .from(baseRequest, resultDescriptor: RESOLVED_UNIT1) | 70 .from(baseRequest, resultDescriptor: RESOLVED_UNIT1) |
70 .then((DartCompletionRequest request) { | 71 .then((DartCompletionRequest request) { |
71 requestCompleter.complete(request); | 72 requestCompleter.complete(request); |
72 }); | 73 }); |
73 request = await performAnalysis(200, requestCompleter); | 74 request = await performAnalysis(200, requestCompleter); |
74 | 75 |
75 // Get the unresolved directives | 76 // Get the unresolved directives |
76 var directives = request.target.unit.directives; | 77 var directives = request.target.unit.directives; |
77 | 78 |
78 // Assert that the import does not have an export namespace | 79 // Assert that the import does not have an export namespace |
79 expect(directives[0].element?.library?.exportNamespace, isNull); | 80 Element element = resolutionMap.elementDeclaredByDirective(directives[0]); |
| 81 expect(element?.library?.exportNamespace, isNull); |
80 | 82 |
81 // Resolve directives | 83 // Resolve directives |
82 var importCompleter = new Completer<List<ImportElement>>(); | 84 var importCompleter = new Completer<List<ImportElement>>(); |
83 request.resolveImports().then((List<ImportElement> elements) { | 85 request.resolveImports().then((List<ImportElement> elements) { |
84 importCompleter.complete(elements); | 86 importCompleter.complete(elements); |
85 }); | 87 }); |
86 List<ImportElement> imports = await performAnalysis(200, importCompleter); | 88 List<ImportElement> imports = await performAnalysis(200, importCompleter); |
87 expect(imports, hasLength(directives.length + 1)); | 89 expect(imports, hasLength(directives.length + 1)); |
88 | 90 |
89 ImportElement importNamed(String expectedUri) { | 91 ImportElement importNamed(String expectedUri) { |
90 return imports.firstWhere((elem) => elem.uri == expectedUri, orElse: () { | 92 return imports.firstWhere((elem) => elem.uri == expectedUri, orElse: () { |
91 var importedNames = imports.map((elem) => elem.uri); | 93 var importedNames = imports.map((elem) => elem.uri); |
92 fail('Failed to find $expectedUri in $importedNames'); | 94 fail('Failed to find $expectedUri in $importedNames'); |
93 }); | 95 }); |
94 } | 96 } |
95 | 97 |
96 void assertImportedLib(String expectedUri) { | 98 void assertImportedLib(String expectedUri) { |
97 ImportElement importElem = importNamed(expectedUri); | 99 ImportElement importElem = importNamed(expectedUri); |
98 expect(importElem.importedLibrary.exportNamespace, isNotNull); | 100 expect(importElem.importedLibrary.exportNamespace, isNotNull); |
99 } | 101 } |
100 | 102 |
101 // Assert that the new imports each have an export namespace | 103 // Assert that the new imports each have an export namespace |
102 assertImportedLib(null /* dart:core */); | 104 assertImportedLib(null /* dart:core */); |
103 assertImportedLib('/libA.dart'); | 105 assertImportedLib('/libA.dart'); |
104 } | 106 } |
105 } | 107 } |
OLD | NEW |