| Index: pkg/analysis_server/test/analysis_notification_highlights_test.dart
|
| diff --git a/pkg/analysis_server/test/analysis_notification_highlights_test.dart b/pkg/analysis_server/test/analysis_notification_highlights_test.dart
|
| deleted file mode 100644
|
| index 721d72e362bacb9ecf2f7decee254fa8f9093670..0000000000000000000000000000000000000000
|
| --- a/pkg/analysis_server/test/analysis_notification_highlights_test.dart
|
| +++ /dev/null
|
| @@ -1,941 +0,0 @@
|
| -// 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.domain.analysis.notification.highlights;
|
| -
|
| -import 'dart:async';
|
| -
|
| -import 'package:analysis_server/src/constants.dart';
|
| -import 'package:analysis_server/src/protocol.dart';
|
| -import 'package:unittest/unittest.dart';
|
| -
|
| -import 'analysis_abstract.dart';
|
| -import 'reflective_tests.dart';
|
| -
|
| -
|
| -main() {
|
| - runReflectiveTests(AnalysisNotificationHighlightsTest);
|
| - runReflectiveTests(HighlightTypeTest);
|
| -}
|
| -
|
| -
|
| -@ReflectiveTestCase()
|
| -class AnalysisNotificationHighlightsTest extends AbstractAnalysisTest {
|
| - List<HighlightRegion> regions;
|
| -
|
| - void assertHasRawRegion(HighlightRegionType type, int offset, int length) {
|
| - for (HighlightRegion region in regions) {
|
| - if (region.offset == offset &&
|
| - region.length == length &&
|
| - region.type == type) {
|
| - return;
|
| - }
|
| - }
|
| - fail(
|
| - 'Expected to find (offset=$offset; length=$length; type=$type) in\n'
|
| - '${regions.join('\n')}');
|
| - }
|
| -
|
| - void assertHasRegion(HighlightRegionType type, String search, [int length =
|
| - -1]) {
|
| - int offset = findOffset(search);
|
| - length = findRegionLength(search, length);
|
| - assertHasRawRegion(type, offset, length);
|
| - }
|
| -
|
| - void assertHasStringRegion(HighlightRegionType type, String str) {
|
| - int offset = findOffset(str);
|
| - int length = str.length;
|
| - assertHasRawRegion(type, offset, length);
|
| - }
|
| -
|
| - void assertNoRawRegion(HighlightRegionType type, int offset, int length) {
|
| - for (HighlightRegion region in regions) {
|
| - if (region.offset == offset &&
|
| - region.length == length &&
|
| - region.type == type) {
|
| - fail(
|
| - 'Not expected to find (offset=$offset; length=$length; type=$type) in\n'
|
| - '${regions.join('\n')}');
|
| - }
|
| - }
|
| - }
|
| -
|
| -
|
| - void assertNoRegion(HighlightRegionType type, String search, [int length =
|
| - -1]) {
|
| - int offset = findOffset(search);
|
| - length = findRegionLength(search, length);
|
| - assertNoRawRegion(type, offset, length);
|
| - }
|
| -
|
| - int findRegionLength(String search, int length) {
|
| - if (length == -1) {
|
| - length = 0;
|
| - while (length < search.length) {
|
| - int c = search.codeUnitAt(length);
|
| - if (length == 0 && c == '@'.codeUnitAt(0)) {
|
| - length++;
|
| - continue;
|
| - }
|
| - if (!(c >= 'a'.codeUnitAt(0) && c <= 'z'.codeUnitAt(0) ||
|
| - c >= 'A'.codeUnitAt(0) && c <= 'Z'.codeUnitAt(0) ||
|
| - c >= '0'.codeUnitAt(0) && c <= '9'.codeUnitAt(0))) {
|
| - break;
|
| - }
|
| - length++;
|
| - }
|
| - }
|
| - return length;
|
| - }
|
| -
|
| - Future prepareHighlights() {
|
| - addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile);
|
| - return waitForTasksFinished();
|
| - }
|
| -
|
| - void processNotification(Notification notification) {
|
| - if (notification.event == ANALYSIS_HIGHLIGHTS) {
|
| - var params = new AnalysisHighlightsParams.fromNotification(notification);
|
| - if (params.file == testFile) {
|
| - regions = params.regions;
|
| - }
|
| - }
|
| - }
|
| -
|
| - @override
|
| - void setUp() {
|
| - super.setUp();
|
| - createProject();
|
| - }
|
| -
|
| - test_ANNOTATION_hasArguments() {
|
| - addTestFile('''
|
| -class AAA {
|
| - const AAA(a, b, c);
|
| -}
|
| -@AAA(1, 2, 3) main() {}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.ANNOTATION, '@AAA(', '@AAA('.length);
|
| - assertHasRegion(HighlightRegionType.ANNOTATION, ') main', ')'.length);
|
| - });
|
| - }
|
| -
|
| - test_ANNOTATION_noArguments() {
|
| - addTestFile('''
|
| -const AAA = 42;
|
| -@AAA main() {}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.ANNOTATION, '@AAA');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_abstract() {
|
| - addTestFile('''
|
| -abstract class A {};
|
| -main() {
|
| - var abstract = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'abstract class');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'abstract = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_as() {
|
| - addTestFile('''
|
| -import 'dart:math' as math;
|
| -main() {
|
| - p as int;
|
| - var as = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'as math');
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'as int');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'as = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_deferred() {
|
| - addTestFile('''
|
| -import 'dart:math' deferred as math;
|
| -main() {
|
| - var deferred = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'deferred as math');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'deferred = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_export() {
|
| - addTestFile('''
|
| -export "dart:math";
|
| -main() {
|
| - var export = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'export "dart:');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'export = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_external() {
|
| - addTestFile('''
|
| -class A {
|
| - external A();
|
| - external aaa();
|
| -}
|
| -external main() {
|
| - var external = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'external A()');
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'external aaa()');
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'external main()');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'external = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_factory() {
|
| - addTestFile('''
|
| -class A {
|
| - factory A() => null;
|
| -}
|
| -main() {
|
| - var factory = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'factory A()');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'factory = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_get() {
|
| - addTestFile('''
|
| -get aaa => 1;
|
| -class A {
|
| - get bbb => 2;
|
| -}
|
| -main() {
|
| - var get = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'get aaa =>');
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'get bbb =>');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'get = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_hide() {
|
| - addTestFile('''
|
| -import 'foo.dart' hide Foo;
|
| -main() {
|
| - var hide = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'hide Foo');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'hide = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_implements() {
|
| - addTestFile('''
|
| -class A {}
|
| -class B implements A {}
|
| -main() {
|
| - var implements = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'implements A {}');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'implements = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_import() {
|
| - addTestFile('''
|
| -import "foo.dart";
|
| -main() {
|
| - var import = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'import "');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'import = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_library() {
|
| - addTestFile('''
|
| -library lib;
|
| -main() {
|
| - var library = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'library lib;');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'library = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_native() {
|
| - addTestFile('''
|
| -class A native "A_native" {}
|
| -class B {
|
| - bbb() native "bbb_native";
|
| -}
|
| -main() {
|
| - var native = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'native "A_');
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'native "bbb_');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'native = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_on() {
|
| - addTestFile('''
|
| -main() {
|
| - try {
|
| - } on int catch (e) {
|
| - }
|
| - var on = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'on int');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'on = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_operator() {
|
| - addTestFile('''
|
| -class A {
|
| - operator +(x) => null;
|
| -}
|
| -main() {
|
| - var operator = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'operator +(');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'operator = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_part() {
|
| - addTestFile('''
|
| -part "my_part.dart";
|
| -main() {
|
| - var part = 42;
|
| -}''');
|
| - addFile('/project/bin/my_part.dart', 'part of lib;');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'part "my_');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'part = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_partOf() {
|
| - addTestFile('''
|
| -part of lib;
|
| -main() {
|
| - var part = 1;
|
| - var of = 2;
|
| -}''');
|
| - _addLibraryForTestPart();
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(
|
| - HighlightRegionType.BUILT_IN,
|
| - 'part of',
|
| - 'part of'.length);
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'part = 1');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'of = 2');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_set() {
|
| - addTestFile('''
|
| -set aaa(x) {}
|
| -class A
|
| - set bbb(x) {}
|
| -}
|
| -main() {
|
| - var set = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'set aaa(');
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'set bbb(');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'set = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_show() {
|
| - addTestFile('''
|
| -import 'foo.dart' show Foo;
|
| -main() {
|
| - var show = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'show Foo');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'show = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_static() {
|
| - addTestFile('''
|
| -class A {
|
| - static aaa;
|
| - static bbb() {}
|
| -}
|
| -main() {
|
| - var static = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'static aaa;');
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'static bbb()');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'static = 42');
|
| - });
|
| - }
|
| -
|
| - test_BUILT_IN_typedef() {
|
| - addTestFile('''
|
| -typedef A();
|
| -main() {
|
| - var typedef = 42;
|
| -}''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.BUILT_IN, 'typedef A();');
|
| - assertNoRegion(HighlightRegionType.BUILT_IN, 'typedef = 42');
|
| - });
|
| - }
|
| -
|
| - test_CLASS() {
|
| - addTestFile('''
|
| -class AAA {}
|
| -AAA aaa;
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.CLASS, 'AAA {}');
|
| - assertHasRegion(HighlightRegionType.CLASS, 'AAA aaa');
|
| - });
|
| - }
|
| -
|
| - test_CLASS_notDynamic() {
|
| - addTestFile('''
|
| -dynamic f() {}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertNoRegion(HighlightRegionType.CLASS, 'dynamic f()');
|
| - });
|
| - }
|
| -
|
| - test_CLASS_notVoid() {
|
| - addTestFile('''
|
| -void f() {}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertNoRegion(HighlightRegionType.CLASS, 'void f()');
|
| - });
|
| - }
|
| -
|
| - test_COMMENT() {
|
| - addTestFile('''
|
| -/**
|
| - * documentation comment
|
| - */
|
| -void main() {
|
| - // end-of-line comment
|
| - my_function(1);
|
| -}
|
| -
|
| -void my_function(String a) {
|
| - /* block comment */
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.COMMENT_DOCUMENTATION, '/**', 32);
|
| - assertHasRegion(HighlightRegionType.COMMENT_END_OF_LINE, '//', 22);
|
| - assertHasRegion(HighlightRegionType.COMMENT_BLOCK, '/* b', 19);
|
| - });
|
| - }
|
| -
|
| - test_CONSTRUCTOR() {
|
| - addTestFile('''
|
| -class AAA {
|
| - AAA() {}
|
| - AAA.name(p) {}
|
| -}
|
| -main() {
|
| - new AAA();
|
| - new AAA.name(42);
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.CONSTRUCTOR, 'name(p)');
|
| - assertHasRegion(HighlightRegionType.CONSTRUCTOR, 'name(42)');
|
| - assertNoRegion(HighlightRegionType.CONSTRUCTOR, 'AAA() {}');
|
| - assertNoRegion(HighlightRegionType.CONSTRUCTOR, 'AAA();');
|
| - });
|
| - }
|
| -
|
| - test_DIRECTIVE() {
|
| - addTestFile('''
|
| -library lib;
|
| -import 'dart:math';
|
| -export 'dart:math';
|
| -part 'part.dart';
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasStringRegion(HighlightRegionType.DIRECTIVE, "library lib;");
|
| - assertHasStringRegion(
|
| - HighlightRegionType.DIRECTIVE,
|
| - "import 'dart:math';");
|
| - assertHasStringRegion(
|
| - HighlightRegionType.DIRECTIVE,
|
| - "export 'dart:math';");
|
| - assertHasStringRegion(HighlightRegionType.DIRECTIVE, "part 'part.dart';");
|
| - });
|
| - }
|
| -
|
| - test_DIRECTIVE_partOf() {
|
| - addTestFile('''
|
| -part of lib;
|
| -''');
|
| - _addLibraryForTestPart();
|
| - return prepareHighlights().then((_) {
|
| - assertHasStringRegion(HighlightRegionType.DIRECTIVE, "part of lib;");
|
| - });
|
| - }
|
| -
|
| - test_DYNAMIC_TYPE() {
|
| - addTestFile('''
|
| -f() {}
|
| -main(p) {
|
| - print(p);
|
| - var v1 = f();
|
| - int v2;
|
| - var v3 = v2;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.DYNAMIC_TYPE, 'p)');
|
| - assertHasRegion(HighlightRegionType.DYNAMIC_TYPE, 'v1 =');
|
| - assertNoRegion(HighlightRegionType.DYNAMIC_TYPE, 'v2;');
|
| - assertNoRegion(HighlightRegionType.DYNAMIC_TYPE, 'v3 =');
|
| - });
|
| - }
|
| -
|
| - test_FIELD() {
|
| - addTestFile('''
|
| -class A {
|
| - int aaa = 1;
|
| - int bbb = 2;
|
| - A([this.bbb = 3]);
|
| -}
|
| -main(A a) {
|
| - a.aaa = 4;
|
| - a.bbb = 5;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.FIELD, 'aaa = 1');
|
| - assertHasRegion(HighlightRegionType.FIELD, 'bbb = 2');
|
| - assertHasRegion(HighlightRegionType.FIELD, 'bbb = 3');
|
| - assertHasRegion(HighlightRegionType.FIELD, 'aaa = 4');
|
| - assertHasRegion(HighlightRegionType.FIELD, 'bbb = 5');
|
| - });
|
| - }
|
| -
|
| - test_FIELD_STATIC() {
|
| - addTestFile('''
|
| -class A {
|
| - static aaa = 1;
|
| - static get bbb => null;
|
| - static set ccc(x) {}
|
| -}
|
| -main() {
|
| - A.aaa = 2;
|
| - A.bbb;
|
| - A.ccc = 3;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.FIELD_STATIC, 'aaa = 1');
|
| - assertHasRegion(HighlightRegionType.FIELD_STATIC, 'aaa = 2');
|
| - assertHasRegion(HighlightRegionType.FIELD_STATIC, 'bbb;');
|
| - assertHasRegion(HighlightRegionType.FIELD_STATIC, 'ccc = 3');
|
| - });
|
| - }
|
| -
|
| - test_FUNCTION() {
|
| - addTestFile('''
|
| -fff(p) {}
|
| -main() {
|
| - fff(42);
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.FUNCTION_DECLARATION, 'fff(p) {}');
|
| - assertHasRegion(HighlightRegionType.FUNCTION, 'fff(42)');
|
| - });
|
| - }
|
| -
|
| - test_FUNCTION_TYPE_ALIAS() {
|
| - addTestFile('''
|
| -typedef FFF(p);
|
| -main(FFF fff) {
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.FUNCTION_TYPE_ALIAS, 'FFF(p)');
|
| - assertHasRegion(HighlightRegionType.FUNCTION_TYPE_ALIAS, 'FFF fff)');
|
| - });
|
| - }
|
| -
|
| - test_GETTER_DECLARATION() {
|
| - addTestFile('''
|
| -get aaa => null;
|
| -class A {
|
| - get bbb => null;
|
| -}
|
| -main(A a) {
|
| - aaa;
|
| - a.bbb;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.GETTER_DECLARATION, 'aaa => null');
|
| - assertHasRegion(HighlightRegionType.GETTER_DECLARATION, 'bbb => null');
|
| - assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'aaa;');
|
| - assertHasRegion(HighlightRegionType.FIELD, 'bbb;');
|
| - });
|
| - }
|
| -
|
| - test_IDENTIFIER_DEFAULT() {
|
| - addTestFile('''
|
| -main() {
|
| - aaa = 42;
|
| - bbb(84);
|
| - CCC ccc;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'aaa = 42');
|
| - assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'bbb(84)');
|
| - assertHasRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'CCC ccc');
|
| - });
|
| - }
|
| -
|
| - test_IMPORT_PREFIX() {
|
| - addTestFile('''
|
| -import 'dart:math' as ma;
|
| -main() {
|
| - ma.max(1, 2);
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma;');
|
| - assertHasRegion(HighlightRegionType.IMPORT_PREFIX, 'ma.max');
|
| - });
|
| - }
|
| -
|
| - test_KEYWORD() {
|
| - addTestFile('''
|
| -main() {
|
| - assert(true);
|
| - for (;;) break;
|
| - switch (0) {
|
| - case 0: break;
|
| - default: break;
|
| - }
|
| - try {} catch (e) {}
|
| - const v1 = 0;
|
| - for (;;) continue;
|
| - do {} while (true);
|
| - if (true) {} else {}
|
| - var v2 = false;
|
| - final v3 = 1;
|
| - try {} finally {}
|
| - for (var v4 in []) {}
|
| - v3 is int;
|
| - new A();
|
| - try {} catch (e) {rethrow;}
|
| - var v5 = true;
|
| - while (true) {}
|
| -}
|
| -class A {}
|
| -class B extends A {
|
| - B() : super();
|
| - m() {
|
| - return this;
|
| - }
|
| -}
|
| -class C = Object with A;
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'assert(true)');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'for (;;)');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'for (var v4 in');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'break;');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'case 0:');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'catch (e) {}');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'class A {}');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'const v1');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'continue;');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'default:');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'do {} while');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'if (true)');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'false;');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'final v3 =');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'finally {}');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'in []');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'is int');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'new A();');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'rethrow;');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'return this');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'super();');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'switch (0)');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'this;');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'true;');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'try {');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'while (true) {}');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'while (true);');
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'with A;');
|
| - });
|
| - }
|
| -
|
| - test_KEYWORD_void() {
|
| - addTestFile('''
|
| -void main() {
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.KEYWORD, 'void main()');
|
| - });
|
| - }
|
| -
|
| - test_LABEL() {
|
| - addTestFile('''
|
| -main() {
|
| -myLabel:
|
| - while (true) {
|
| - break myLabel;
|
| - }
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.LABEL, 'myLabel:');
|
| - assertHasRegion(HighlightRegionType.LABEL, 'myLabel;');
|
| - });
|
| - }
|
| -
|
| - test_LITERAL_BOOLEAN() {
|
| - addTestFile('var V = true;');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.LITERAL_BOOLEAN, 'true;');
|
| - });
|
| - }
|
| -
|
| - test_LITERAL_DOUBLE() {
|
| - addTestFile('var V = 4.2;');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.LITERAL_DOUBLE, '4.2;', '4.2'.length);
|
| - });
|
| - }
|
| -
|
| - test_LITERAL_INTEGER() {
|
| - addTestFile('var V = 42;');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.LITERAL_INTEGER, '42;');
|
| - });
|
| - }
|
| -
|
| - test_LITERAL_LIST() {
|
| - addTestFile('var V = <int>[1, 2, 3];');
|
| - return prepareHighlights().then((_) {
|
| - assertHasStringRegion(HighlightRegionType.LITERAL_LIST, '<int>[1, 2, 3]');
|
| - });
|
| - }
|
| -
|
| - test_LITERAL_MAP() {
|
| - addTestFile("var V = const <int, String>{1: 'a', 2: 'b', 3: 'c'};");
|
| - return prepareHighlights().then((_) {
|
| - assertHasStringRegion(
|
| - HighlightRegionType.LITERAL_MAP,
|
| - "const <int, String>{1: 'a', 2: 'b', 3: 'c'}");
|
| - });
|
| - }
|
| -
|
| - test_LITERAL_STRING() {
|
| - addTestFile('var V = "abc";');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(
|
| - HighlightRegionType.LITERAL_STRING,
|
| - '"abc";',
|
| - '"abc"'.length);
|
| - });
|
| - }
|
| -
|
| - test_LOCAL_VARIABLE() {
|
| - addTestFile('''
|
| -main() {
|
| - int vvv = 0;
|
| - vvv;
|
| - vvv = 1;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(
|
| - HighlightRegionType.LOCAL_VARIABLE_DECLARATION,
|
| - 'vvv = 0');
|
| - assertHasRegion(HighlightRegionType.LOCAL_VARIABLE, 'vvv;');
|
| - assertHasRegion(HighlightRegionType.LOCAL_VARIABLE, 'vvv = 1;');
|
| - });
|
| - }
|
| -
|
| - test_METHOD() {
|
| - addTestFile('''
|
| -class A {
|
| - aaa() {}
|
| - static bbb() {}
|
| -}
|
| -main(A a) {
|
| - a.aaa();
|
| - a.aaa;
|
| - A.bbb();
|
| - A.bbb;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.METHOD_DECLARATION, 'aaa() {}');
|
| - assertHasRegion(
|
| - HighlightRegionType.METHOD_DECLARATION_STATIC,
|
| - 'bbb() {}');
|
| - assertHasRegion(HighlightRegionType.METHOD, 'aaa();');
|
| - assertHasRegion(HighlightRegionType.METHOD, 'aaa;');
|
| - assertHasRegion(HighlightRegionType.METHOD_STATIC, 'bbb();');
|
| - assertHasRegion(HighlightRegionType.METHOD_STATIC, 'bbb;');
|
| - });
|
| - }
|
| -
|
| - test_METHOD_bestType() {
|
| - addTestFile('''
|
| -main(p) {
|
| - if (p is List) {
|
| - p.add(null);
|
| - }
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.METHOD, 'add(null)');
|
| - });
|
| - }
|
| -
|
| - test_PARAMETER() {
|
| - addTestFile('''
|
| -main(int p) {
|
| - p;
|
| - p = 42;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.PARAMETER, 'p) {');
|
| - assertHasRegion(HighlightRegionType.PARAMETER, 'p;');
|
| - assertHasRegion(HighlightRegionType.PARAMETER, 'p = 42');
|
| - });
|
| - }
|
| -
|
| - test_SETTER_DECLARATION() {
|
| - addTestFile('''
|
| -set aaa(x) {}
|
| -class A {
|
| - set bbb(x) {}
|
| -}
|
| -main(A a) {
|
| - aaa = 1;
|
| - a.bbb = 2;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.SETTER_DECLARATION, 'aaa(x)');
|
| - assertHasRegion(HighlightRegionType.SETTER_DECLARATION, 'bbb(x)');
|
| - assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'aaa = 1');
|
| - assertHasRegion(HighlightRegionType.FIELD, 'bbb = 2');
|
| - });
|
| - }
|
| -
|
| - test_TOP_LEVEL_VARIABLE() {
|
| - addTestFile('''
|
| -const VVV = 0;
|
| -@VVV // annotation
|
| -main() {
|
| - print(VVV);
|
| - VVV = 1;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'VVV = 0');
|
| - assertHasRegion(
|
| - HighlightRegionType.TOP_LEVEL_VARIABLE,
|
| - 'VVV // annotation');
|
| - assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'VVV);');
|
| - assertHasRegion(HighlightRegionType.TOP_LEVEL_VARIABLE, 'VVV = 1');
|
| - });
|
| - }
|
| -
|
| - test_TYPE_NAME_DYNAMIC() {
|
| - addTestFile('''
|
| -dynamic main() {
|
| - dynamic = 42;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.TYPE_NAME_DYNAMIC, 'dynamic main()');
|
| - assertNoRegion(HighlightRegionType.IDENTIFIER_DEFAULT, 'dynamic main()');
|
| - assertNoRegion(HighlightRegionType.TYPE_NAME_DYNAMIC, 'dynamic = 42');
|
| - });
|
| - }
|
| -
|
| - test_TYPE_PARAMETER() {
|
| - addTestFile('''
|
| -class A<T> {
|
| - T fff;
|
| - T mmm(T p) => null;
|
| -}
|
| -''');
|
| - return prepareHighlights().then((_) {
|
| - assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T> {');
|
| - assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T fff;');
|
| - assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T mmm(');
|
| - assertHasRegion(HighlightRegionType.TYPE_PARAMETER, 'T p)');
|
| - });
|
| - }
|
| -
|
| - void _addLibraryForTestPart() {
|
| - addFile('$testFolder/my_lib.dart', '''
|
| -library lib;
|
| -part 'test.dart';
|
| - ''');
|
| - }
|
| -}
|
| -
|
| -
|
| -@ReflectiveTestCase()
|
| -class HighlightTypeTest {
|
| - void test_constructor() {
|
| - expect(
|
| - HighlightRegionType.CLASS,
|
| - new HighlightRegionType(HighlightRegionType.CLASS.name));
|
| - }
|
| -
|
| - void test_toString() {
|
| - expect(HighlightRegionType.CLASS.toString(), 'HighlightRegionType.CLASS');
|
| - }
|
| -
|
| - void test_valueOf_unknown() {
|
| - expect(() {
|
| - new HighlightRegionType('no-such-type');
|
| - }, throws);
|
| - }
|
| -}
|
|
|