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

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

Issue 628473002: cleanup/organize/improve completion tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: merge Created 6 years, 2 months 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
« no previous file with comments | « pkg/analysis_server/test/services/completion/invocation_computer_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/services/completion/local_computer_test.dart
diff --git a/pkg/analysis_server/test/services/completion/local_computer_test.dart b/pkg/analysis_server/test/services/completion/local_computer_test.dart
index 6e20e79f6a551469336694dd8291502ab64cd826..2f1a55966774efc2a89adb32702bcd013c0d44b1 100644
--- a/pkg/analysis_server/test/services/completion/local_computer_test.dart
+++ b/pkg/analysis_server/test/services/completion/local_computer_test.dart
@@ -5,9 +5,9 @@
library test.services.completion.dart.local;
import 'package:analysis_server/src/services/completion/local_computer.dart';
-import '../../reflective_tests.dart';
import 'package:unittest/unittest.dart';
+import '../../reflective_tests.dart';
import 'completion_test_util.dart';
main() {
@@ -24,29 +24,56 @@ class LocalComputerTest extends AbstractCompletionTest {
computer = new LocalComputer();
}
- test_block() {
+ test_BinaryExpression_LHS() {
+ // SimpleIdentifier BinaryExpression VariableDeclaration
+ // VariableDeclarationList VariableDeclarationStatement
+ addTestSource('main() {int a = 1, b = ^ + 2;}');
+ expect(computeFast(), isTrue);
+ assertSuggestLocalVariable('a', 'int');
+ assertNotSuggested('b');
+ }
+
+ test_BinaryExpression_RHS() {
+ // SimpleIdentifier BinaryExpression VariableDeclaration
+ // VariableDeclarationList VariableDeclarationStatement
+ addTestSource('main() {int a = 1, b = 2 + ^;}');
+ expect(computeFast(), isTrue);
+ assertSuggestLocalVariable('a', 'int');
+ assertNotSuggested('b');
+ }
+
+ test_Block() {
+ // Block BlockFunctionBody
addTestSource('class A {a() {var f; {var x;} ^ var g;}}');
expect(computeFast(), isTrue);
+ assertSuggestClass('A');
assertSuggestLocalVariable('f', null);
assertNotSuggested('g');
assertNotSuggested('x');
}
- test_catch() {
+ test_CatchClause_typed() {
+ // Block CatchClause TryStatement
addTestSource('class A {a() {try{} on E catch (e) {^}}}');
expect(computeFast(), isTrue);
assertSuggestParameter('e', 'E');
}
- test_catch2() {
+ test_CatchClause_untyped() {
+ // Block CatchClause TryStatement
addTestSource('class A {a() {try{} catch (e, s) {^}}}');
expect(computeFast(), isTrue);
assertSuggestParameter('e', null);
assertSuggestParameter('s', 'StackTrace');
}
- test_compilationUnit_declarations() {
- addTestSource('@deprecated class A {^} class _B {} A T;');
+ test_ClassDeclaration_body() {
+ // ClassDeclaration CompilationUnit
+ addTestSource( //
+ 'import "boo.dart" as x;' //
+ ' @deprecated class A {^}' //
+ ' class _B {}' //
+ ' A T;');
expect(computeFast(), isTrue);
var a = assertSuggestClass('A');
expect(a.element.isDeprecated, isTrue);
@@ -55,45 +82,49 @@ class LocalComputerTest extends AbstractCompletionTest {
expect(b.element.isDeprecated, isFalse);
expect(b.element.isPrivate, isTrue);
assertSuggestTopLevelVar('T', 'A');
- }
-
- test_compilationUnit_directives() {
- addTestSource('import "boo.dart" as x; class A {^}');
- expect(computeFast(), isTrue);
assertSuggestLibraryPrefix('x');
}
- test_field_name() {
- addTestSource('class A {B ^}}');
+ test_ExpressionStatement_name() {
+ // ExpressionStatement Block
+ addTestSource('class A {a() {var f; A ^}}');
expect(computeFast(), isTrue);
assertNotSuggested('A');
+ assertNotSuggested('a');
+ assertNotSuggested('f');
}
- test_field_name2() {
- addTestSource('class A {var ^}}');
+ test_FieldDeclaration_name() {
+ // SimpleIdentifier VariableDeclaration VariableDeclarationList
+ // FieldDeclaration
+ addTestSource('class A {B ^}}');
expect(computeFast(), isTrue);
assertNotSuggested('A');
}
- test_for() {
- addTestSource('main(args) {for (int i; i < 10; ++i) {^}}');
+ test_ForEachStatement_body_typed() {
+ // Block ForEachStatement
+ addTestSource('main(args) {for (int foo in bar) {^}}');
expect(computeFast(), isTrue);
- assertSuggestLocalVariable('i', 'int');
+ assertSuggestLocalVariable('foo', 'int');
}
- test_forEach() {
+ test_ForEachStatement_body_untyped() {
+ // Block ForEachStatement
addTestSource('main(args) {for (foo in bar) {^}}');
expect(computeFast(), isTrue);
assertSuggestLocalVariable('foo', null);
}
- test_forEach2() {
- addTestSource('main(args) {for (int foo in bar) {^}}');
+ test_ForStatement_body() {
+ // Block ForStatement
+ addTestSource('main(args) {for (int i; i < 10; ++i) {^}}');
expect(computeFast(), isTrue);
- assertSuggestLocalVariable('foo', 'int');
+ assertSuggestLocalVariable('i', 'int');
}
- test_function() {
+ test_FunctionExpression_body_function() {
+ // Block BlockFunctionBody FunctionExpression
addTestSource('String foo(List args) {x.then((R b) {^});}');
expect(computeFast(), isTrue);
var f = assertSuggestFunction('foo', 'String', false);
@@ -102,7 +133,22 @@ class LocalComputerTest extends AbstractCompletionTest {
assertSuggestParameter('b', 'R');
}
- test_getters() {
+ test_InstanceCreationExpression() {
+ // SimpleIdentifier TypeName ConstructorName InstanceCreationExpression
+ addTestSource('class A {a() {var f; {var x;} new ^}} class B { }');
+ expect(computeFast(), isTrue);
+ assertSuggestClass('A');
+ assertSuggestClass('B');
+ // TODO (danrubel) should only suggest types
+ //assertNotSuggested('a');
+ assertSuggestMethod('a', 'A', null);
+ //assertNotSuggested('f');
+ assertSuggestLocalVariable('f', null);
+ assertNotSuggested('x');
+ }
+
+ test_MethodDeclaration_body_getters() {
+ // Block BlockFunctionBody MethodDeclaration
addTestSource('class A {@deprecated X get f => 0; Z a() {^} get _g => 1;}');
expect(computeFast(), isTrue);
var a = assertSuggestMethod('a', 'A', 'Z');
@@ -116,23 +162,8 @@ class LocalComputerTest extends AbstractCompletionTest {
expect(g.element.isPrivate, isTrue);
}
- test_local_name() {
- addTestSource('class A {a() {var f; A ^}}');
- expect(computeFast(), isTrue);
- assertNotSuggested('A');
- assertNotSuggested('a');
- assertNotSuggested('f');
- }
-
- test_local_name2() {
- addTestSource('class _A {a() {var f; var ^}}');
- expect(computeFast(), isTrue);
- assertNotSuggested('A');
- assertNotSuggested('a');
- assertNotSuggested('f');
- }
-
- test_members() {
+ test_MethodDeclaration_members() {
+ // Block BlockFunctionBody MethodDeclaration
addTestSource('class A {@deprecated X f; Z _a() {^} var _g;}');
expect(computeFast(), isTrue);
var a = assertSuggestMethod('_a', 'A', 'Z');
@@ -146,7 +177,8 @@ class LocalComputerTest extends AbstractCompletionTest {
expect(g.element.isPrivate, isTrue);
}
- test_methodParam_named() {
+ test_MethodDeclaration_parameters_named() {
+ // Block BlockFunctionBody MethodDeclaration
addTestSource('class A {@deprecated Z a(X x, {y: boo}) {^}}');
expect(computeFast(), isTrue);
var a = assertSuggestMethod('a', 'A', 'Z');
@@ -156,7 +188,8 @@ class LocalComputerTest extends AbstractCompletionTest {
assertSuggestParameter('y', null);
}
- test_methodParam_positional() {
+ test_MethodDeclaration_parameters_positional() {
+ // Block BlockFunctionBody MethodDeclaration
addTestSource('class A {Z a(X x, [int y=1]) {^}}');
expect(computeFast(), isTrue);
assertSuggestMethod('a', 'A', 'Z');
@@ -164,22 +197,40 @@ class LocalComputerTest extends AbstractCompletionTest {
assertSuggestParameter('y', 'int');
}
- test_topLevelVar_name() {
+ test_TopLevelVariableDeclaration_typed_name() {
+ // SimpleIdentifier VariableDeclaration VariableDeclarationList
+ // TopLevelVariableDeclaration
addTestSource('class A {} B ^');
expect(computeFast(), isTrue);
assertNotSuggested('A');
}
- test_topLevelVar_name2() {
+ test_TopLevelVariableDeclaration_untyped_name() {
+ // SimpleIdentifier VariableDeclaration VariableDeclarationList
+ // TopLevelVariableDeclaration
addTestSource('class A {} var ^');
expect(computeFast(), isTrue);
assertNotSuggested('A');
}
- test_variableDeclaration() {
- addTestSource('main() {int a = 1, b = 2 + ^;}');
+ test_VariableDeclarationStatement_name() {
+ // SimpleIdentifier VariableDeclaration VariableDeclarationList
+ // VariableDeclarationStatement
+ addTestSource('class _A {a() {var f; var ^}}');
expect(computeFast(), isTrue);
- assertSuggestLocalVariable('a', 'int');
- assertNotSuggested('b');
+ assertNotSuggested('A');
+ assertNotSuggested('a');
+ assertNotSuggested('f');
+ }
+
+ test_VariableDeclaration_RHS() {
+
+ // VariableDeclaration VariableDeclarationList VariableDeclarationStatement
+ addTestSource('class A {a() {var f; {var x;} var e = ^ var g;}}');
+ expect(computeFast(), isTrue);
+ assertSuggestClass('A');
+ assertSuggestLocalVariable('f', null);
+ assertNotSuggested('g');
+ assertNotSuggested('x');
}
}
« no previous file with comments | « pkg/analysis_server/test/services/completion/invocation_computer_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698