Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Unified Diff: pkg/analysis_server/test/services/completion/dart/static_member_contributor_test.dart

Issue 1505703003: extract StaticMemberContributor from PrefixedElementContributor (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/test/services/completion/dart/static_member_contributor_test.dart
diff --git a/pkg/analysis_server/test/services/completion/dart/static_member_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/static_member_contributor_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..1adbed53d6e69f789f281b8205cf17d9ffc1dd99
--- /dev/null
+++ b/pkg/analysis_server/test/services/completion/dart/static_member_contributor_test.dart
@@ -0,0 +1,157 @@
+// 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.static_member;
+
+import 'dart:async';
+
+import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+import 'package:unittest/unittest.dart';
+
+import '../../../utils.dart';
+import 'completion_contributor_util.dart';
+import 'package:analysis_server/src/services/completion/dart/static_member_contributor.dart';
+
+main() {
+ initializeTestEnvironment();
+ defineReflectiveTests(StaticMemberContributorTest);
+}
+
+@reflectiveTest
+class StaticMemberContributorTest extends DartCompletionContributorTest {
+ @override
+ DartCompletionContributor createContributor() {
+ return new StaticMemberContributor();
+ }
+
+ fail_enumConst_deprecated() async {
+ addTestSource('@deprecated enum E { one, two } main() {E.^}');
+ await computeSuggestions();
+ assertNotSuggested('E');
+ // TODO(danrubel) Investigate why enum suggestion is not marked
+ // as deprecated if enum ast element is deprecated
+ assertSuggestEnumConst('one', isDeprecated: true);
+ assertSuggestEnumConst('two', isDeprecated: true);
+ assertNotSuggested('index');
+ assertSuggestField('values', 'List<E>', isDeprecated: true);
+ }
+
+ test_PrefixedIdentifier_class_const() async {
+ // SimpleIdentifier PrefixedIdentifier ExpressionStatement Block
+ addSource(
+ '/testB.dart',
+ '''
+ lib B;
+ class I {
+ static const scI = 'boo';
+ X get f => new A();
+ get _g => new A();}
+ class B implements I {
+ static const int scB = 12;
+ var b; X _c;
+ X get d => new A();get _e => new A();
+ set s1(I x) {} set _s2(I x) {}
+ m(X x) {} I _n(X x) {}}
+ class X{}''');
+ addTestSource('''
+ import "/testB.dart";
+ class A extends B {
+ static const String scA = 'foo';
+ w() { }}
+ main() {A.^}''');
+ await computeSuggestions();
+ expect(replacementOffset, completionOffset);
+ expect(replacementLength, 0);
+ assertSuggestField('scA', 'String');
+ assertSuggestField('scB', 'int');
+ assertSuggestField('scI', null);
+ assertNotSuggested('b');
+ assertNotSuggested('_c');
+ assertNotSuggested('d');
+ assertNotSuggested('_e');
+ assertNotSuggested('f');
+ assertNotSuggested('_g');
+ assertNotSuggested('s1');
+ assertNotSuggested('_s2');
+ assertNotSuggested('m');
+ assertNotSuggested('_n');
+ assertNotSuggested('a');
+ assertNotSuggested('A');
+ assertNotSuggested('X');
+ assertNotSuggested('w');
+ assertNotSuggested('Object');
+ assertNotSuggested('==');
+ }
+
+ test_enumConst() async {
+ addTestSource('enum E { one, two } main() {E.^}');
+ await computeSuggestions();
+ assertNotSuggested('E');
+ assertSuggestEnumConst('one');
+ assertSuggestEnumConst('two');
+ assertNotSuggested('index');
+ assertSuggestField('values', 'List<E>');
+ }
+
+ test_enumConst2() async {
+ addTestSource('enum E { one, two } main() {E.o^}');
+ await computeSuggestions();
+ assertNotSuggested('E');
+ assertSuggestEnumConst('one');
+ assertSuggestEnumConst('two');
+ assertNotSuggested('index');
+ assertSuggestField('values', 'List<E>');
+ }
+
+ test_enumConst3() async {
+ addTestSource('enum E { one, two } main() {E.^ int g;}');
+ await computeSuggestions();
+ assertNotSuggested('E');
+ assertSuggestEnumConst('one');
+ assertSuggestEnumConst('two');
+ assertNotSuggested('index');
+ assertSuggestField('values', 'List<E>');
+ }
+
+ test_keyword() async {
+ addTestSource('class C { static C get instance => null; } main() {C.in^}');
+ await computeSuggestions();
+ assertSuggestGetter('instance', 'C');
+ }
+
+ test_only_static() async {
+ // SimpleIdentifier PrefixedIdentifier ExpressionStatement
+ addTestSource('''
+class C {
+ int f1;
+ static int f2;
+ m1() {}
+ static m2() {}
+}
+void main() {C.^}''');
+ await computeSuggestions();
+ assertNotSuggested('f1');
+ assertSuggestField('f2', 'int');
+ assertNotSuggested('m1');
+ assertSuggestMethod('m2', 'C', null);
+ }
+
+ test_only_static2() async {
+ // SimpleIdentifier MethodInvocation ExpressionStatement
+ addTestSource('''
+class C {
+ int f1;
+ static int f2;
+ m1() {}
+ static m2() {}
+}
+void main() {C.^ print("something");}''');
+ await computeSuggestions();
+ assertNotSuggested('f1');
+ assertSuggestField('f2', 'int');
+ assertNotSuggested('m1');
+ assertSuggestMethod('m2', 'C', null);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698