| Index: pkg/analysis_server/test/services/completion/dart/combinator_contributor_test.dart
|
| diff --git a/pkg/analysis_server/test/services/completion/dart/combinator_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/combinator_contributor_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..50999b069ddb0fa62c040a6dde475ea33a3aee16
|
| --- /dev/null
|
| +++ b/pkg/analysis_server/test/services/completion/dart/combinator_contributor_test.dart
|
| @@ -0,0 +1,144 @@
|
| +// Copyright (c) 2014, 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.services.completion.dart.combinator;
|
| +
|
| +import 'package:analysis_server/plugin/protocol/protocol.dart';
|
| +import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
|
| +import 'package:analysis_server/src/services/completion/dart/combinator_contributor.dart';
|
| +import 'package:test_reflective_loader/test_reflective_loader.dart';
|
| +
|
| +import '../../../utils.dart';
|
| +import 'completion_contributor_util.dart';
|
| +import 'package:analyzer/src/generated/source.dart';
|
| +
|
| +main() {
|
| + initializeTestEnvironment();
|
| + defineReflectiveTests(CombinatorContributorTest);
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class CombinatorContributorTest extends DartCompletionContributorTest {
|
| + @override
|
| + DartCompletionContributor createContributor() {
|
| + return new CombinatorContributor();
|
| + }
|
| +
|
| + test_Block_inherited_local() async {
|
| + // Block BlockFunctionBody MethodDeclaration ClassDeclaration
|
| + addTestSource('''
|
| + class F { var f1; f2() { } }
|
| + class E extends F { var e1; e2() { } }
|
| + class I { int i1; i2() { } }
|
| + class M { var m1; int m2() { } }
|
| + class A extends E implements I with M {a() {^}}''');
|
| + await computeSuggestions();
|
| + assertNoSuggestions();
|
| + }
|
| +
|
| + test_Combinator_hide() async {
|
| + // SimpleIdentifier HideCombinator ImportDirective
|
| + Source importedLibSource = addSource(
|
| + '/testAB.dart',
|
| + '''
|
| + library libAB;
|
| + part '/partAB.dart';
|
| + class A { }
|
| + class B { }''');
|
| + addSource(
|
| + '/partAB.dart',
|
| + '''
|
| + part of libAB;
|
| + var T1;
|
| + PB F1() => new PB();
|
| + class PB { }''');
|
| + addSource(
|
| + '/testCD.dart',
|
| + '''
|
| + class C { }
|
| + class D { }''');
|
| + addTestSource('''
|
| + import "/testAB.dart" hide ^;
|
| + import "/testCD.dart";
|
| + class X {}''');
|
| +
|
| + // Assume that imported libraries have been resolved
|
| + context.resolveCompilationUnit2(importedLibSource, importedLibSource);
|
| +
|
| + await computeSuggestions();
|
| + assertSuggestClass('A',
|
| + relevance: DART_RELEVANCE_DEFAULT,
|
| + kind: CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestClass('B',
|
| + relevance: DART_RELEVANCE_DEFAULT,
|
| + kind: CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestClass('PB',
|
| + relevance: DART_RELEVANCE_DEFAULT,
|
| + kind: CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestTopLevelVar('T1', null, DART_RELEVANCE_DEFAULT,
|
| + CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestFunction('F1', 'PB',
|
| + kind: CompletionSuggestionKind.IDENTIFIER);
|
| + assertNotSuggested('C');
|
| + assertNotSuggested('D');
|
| + assertNotSuggested('X');
|
| + assertNotSuggested('Object');
|
| + }
|
| +
|
| + test_Combinator_show() async {
|
| + // SimpleIdentifier HideCombinator ImportDirective
|
| + Source importedLibSource = addSource(
|
| + '/testAB.dart',
|
| + '''
|
| + library libAB;
|
| + part '/partAB.dart';
|
| + class A { }
|
| + class B { }''');
|
| + addSource(
|
| + '/partAB.dart',
|
| + '''
|
| + part of libAB;
|
| + var T1;
|
| + PB F1() => new PB();
|
| + typedef PB2 F2(int blat);
|
| + class Clz = Object with Object;
|
| + class PB { }''');
|
| + addSource(
|
| + '/testCD.dart',
|
| + '''
|
| + class C { }
|
| + class D { }''');
|
| + addTestSource('''
|
| + import "/testAB.dart" show ^;
|
| + import "/testCD.dart";
|
| + class X {}''');
|
| +
|
| + // Assume that imported libraries have been resolved
|
| + context.resolveCompilationUnit2(importedLibSource, importedLibSource);
|
| +
|
| + await computeSuggestions();
|
| + assertSuggestClass('A',
|
| + relevance: DART_RELEVANCE_DEFAULT,
|
| + kind: CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestClass('B',
|
| + relevance: DART_RELEVANCE_DEFAULT,
|
| + kind: CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestClass('PB',
|
| + relevance: DART_RELEVANCE_DEFAULT,
|
| + kind: CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestTopLevelVar('T1', null, DART_RELEVANCE_DEFAULT,
|
| + CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestFunction('F1', 'PB',
|
| + kind: CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestClass('Clz',
|
| + relevance: DART_RELEVANCE_DEFAULT,
|
| + kind: CompletionSuggestionKind.IDENTIFIER);
|
| + assertSuggestFunctionTypeAlias('F2', null, false, DART_RELEVANCE_DEFAULT,
|
| + CompletionSuggestionKind.IDENTIFIER);
|
| + assertNotSuggested('C');
|
| + assertNotSuggested('D');
|
| + assertNotSuggested('X');
|
| + assertNotSuggested('Object');
|
| + }
|
| +}
|
|
|