| 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.integration.analysis.highlights; | 5 library test.integration.analysis.highlights; | 
| 6 | 6 | 
| 7 import 'package:analysis_server/src/protocol.dart'; | 7 import 'package:analysis_server/src/protocol.dart'; | 
|  | 8 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 
| 8 import 'package:unittest/unittest.dart'; | 9 import 'package:unittest/unittest.dart'; | 
| 9 | 10 | 
| 10 import '../../reflective_tests.dart'; |  | 
| 11 import '../integration_tests.dart'; | 11 import '../integration_tests.dart'; | 
| 12 | 12 | 
| 13 main() { | 13 main() { | 
| 14   runReflectiveTests(AnalysisHighlightsTest); | 14   defineReflectiveTests(AnalysisHighlightsTest); | 
| 15 } | 15 } | 
| 16 | 16 | 
| 17 @reflectiveTest | 17 @reflectiveTest | 
| 18 class AnalysisHighlightsTest extends AbstractAnalysisServerIntegrationTest { | 18 class AnalysisHighlightsTest extends AbstractAnalysisServerIntegrationTest { | 
| 19   test_highlights() { | 19   test_highlights() { | 
| 20     String pathname = sourcePath('test.dart'); | 20     String pathname = sourcePath('test.dart'); | 
| 21     String text = r''' | 21     String text = r''' | 
| 22 import 'dart:async' as async; | 22 import 'dart:async' as async; | 
| 23 | 23 | 
| 24 /** | 24 /** | 
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 89     }); | 89     }); | 
| 90     return analysisFinished.then((_) { | 90     return analysisFinished.then((_) { | 
| 91       // There should be 1 error due to the fact that unresolvedIdentifier is | 91       // There should be 1 error due to the fact that unresolvedIdentifier is | 
| 92       // unresolved. | 92       // unresolved. | 
| 93       expect(currentAnalysisErrors[pathname], hasLength(1)); | 93       expect(currentAnalysisErrors[pathname], hasLength(1)); | 
| 94       void check(HighlightRegionType type, List<String> expected) { | 94       void check(HighlightRegionType type, List<String> expected) { | 
| 95         expect(highlights[type], equals(expected.toSet())); | 95         expect(highlights[type], equals(expected.toSet())); | 
| 96         highlights.remove(type); | 96         highlights.remove(type); | 
| 97       } | 97       } | 
| 98       check(HighlightRegionType.ANNOTATION, ['@override']); | 98       check(HighlightRegionType.ANNOTATION, ['@override']); | 
| 99       check(HighlightRegionType.BUILT_IN, | 99       check(HighlightRegionType.BUILT_IN, [ | 
| 100           ['as', 'get', 'import', 'set', 'static', 'typedef']); | 100         'as', | 
|  | 101         'get', | 
|  | 102         'import', | 
|  | 103         'set', | 
|  | 104         'static', | 
|  | 105         'typedef' | 
|  | 106       ]); | 
| 101       check(HighlightRegionType.CLASS, [ | 107       check(HighlightRegionType.CLASS, [ | 
| 102         'Class', | 108         'Class', | 
| 103         'Class2', | 109         'Class2', | 
| 104         'Future', | 110         'Future', | 
| 105         'Map', | 111         'Map', | 
| 106         'int' | 112         'int' | 
| 107       ]); | 113       ]); | 
| 108       check(HighlightRegionType.COMMENT_BLOCK, ['/* Block comment */']); | 114       check(HighlightRegionType.COMMENT_BLOCK, ['/* Block comment */']); | 
| 109       check(HighlightRegionType.COMMENT_DOCUMENTATION, [ | 115       check(HighlightRegionType.COMMENT_DOCUMENTATION, | 
| 110         '/**\n * Doc comment\n */' | 116           ['/**\n * Doc comment\n */']); | 
| 111       ]); |  | 
| 112       check( | 117       check( | 
| 113           HighlightRegionType.COMMENT_END_OF_LINE, ['// End of line comment']); | 118           HighlightRegionType.COMMENT_END_OF_LINE, ['// End of line comment']); | 
| 114       check(HighlightRegionType.CONSTRUCTOR, ['constructor']); | 119       check(HighlightRegionType.CONSTRUCTOR, ['constructor']); | 
| 115       check(HighlightRegionType.DIRECTIVE, ["import 'dart:async' as async;"]); | 120       check(HighlightRegionType.DIRECTIVE, ["import 'dart:async' as async;"]); | 
| 116       check(HighlightRegionType.DYNAMIC_TYPE, ['dynamicType']); | 121       check(HighlightRegionType.DYNAMIC_TYPE, ['dynamicType']); | 
| 117       check(HighlightRegionType.FIELD, ['field']); | 122       check(HighlightRegionType.FIELD, ['field']); | 
| 118       check(HighlightRegionType.FIELD_STATIC, ['staticField']); | 123       check(HighlightRegionType.FIELD_STATIC, ['staticField']); | 
| 119       check(HighlightRegionType.FUNCTION, ['print']); | 124       check(HighlightRegionType.FUNCTION, ['print']); | 
| 120       check(HighlightRegionType.FUNCTION_DECLARATION, ['function']); | 125       check(HighlightRegionType.FUNCTION_DECLARATION, ['function']); | 
| 121       check(HighlightRegionType.FUNCTION_TYPE_ALIAS, ['functionType']); | 126       check(HighlightRegionType.FUNCTION_TYPE_ALIAS, ['functionType']); | 
| 122       check(HighlightRegionType.GETTER_DECLARATION, ['getter']); | 127       check(HighlightRegionType.GETTER_DECLARATION, ['getter']); | 
| 123       check(HighlightRegionType.IDENTIFIER_DEFAULT, ['unresolvedIdentifier']); | 128       check(HighlightRegionType.IDENTIFIER_DEFAULT, ['unresolvedIdentifier']); | 
| 124       check(HighlightRegionType.IMPORT_PREFIX, ['async']); | 129       check(HighlightRegionType.IMPORT_PREFIX, ['async']); | 
| 125       check(HighlightRegionType.KEYWORD, ['class', 'true', 'return']); | 130       check(HighlightRegionType.KEYWORD, ['class', 'true', 'return']); | 
| 126       check(HighlightRegionType.LITERAL_BOOLEAN, ['true']); | 131       check(HighlightRegionType.LITERAL_BOOLEAN, ['true']); | 
| 127       check(HighlightRegionType.LITERAL_DOUBLE, ['1.0']); | 132       check(HighlightRegionType.LITERAL_DOUBLE, ['1.0']); | 
| 128       check(HighlightRegionType.LITERAL_INTEGER, ['2', '42']); | 133       check(HighlightRegionType.LITERAL_INTEGER, ['2', '42']); | 
| 129       check(HighlightRegionType.LITERAL_LIST, ['[]']); | 134       check(HighlightRegionType.LITERAL_LIST, ['[]']); | 
| 130       check(HighlightRegionType.LITERAL_MAP, | 135       check(HighlightRegionType.LITERAL_MAP, [ | 
| 131           ['{1.0: [].toList()}', '{2: local}']); | 136         '{1.0: [].toList()}', | 
|  | 137         '{2: local}' | 
|  | 138       ]); | 
| 132       check(HighlightRegionType.LITERAL_STRING, ["'dart:async'", "'string'"]); | 139       check(HighlightRegionType.LITERAL_STRING, ["'dart:async'", "'string'"]); | 
| 133       check(HighlightRegionType.LOCAL_VARIABLE, ['local']); | 140       check(HighlightRegionType.LOCAL_VARIABLE, ['local']); | 
| 134       check(HighlightRegionType.LOCAL_VARIABLE_DECLARATION, ['local']); | 141       check(HighlightRegionType.LOCAL_VARIABLE_DECLARATION, ['local']); | 
| 135       check(HighlightRegionType.METHOD, ['toList']); | 142       check(HighlightRegionType.METHOD, ['toList']); | 
| 136       check(HighlightRegionType.METHOD_DECLARATION, ['method']); | 143       check(HighlightRegionType.METHOD_DECLARATION, ['method']); | 
| 137       check(HighlightRegionType.METHOD_DECLARATION_STATIC, ['staticMethod']); | 144       check(HighlightRegionType.METHOD_DECLARATION_STATIC, ['staticMethod']); | 
| 138       check(HighlightRegionType.METHOD_STATIC, ['wait']); | 145       check(HighlightRegionType.METHOD_STATIC, ['wait']); | 
| 139       check(HighlightRegionType.PARAMETER, ['parameter']); | 146       check(HighlightRegionType.PARAMETER, ['parameter']); | 
| 140       check(HighlightRegionType.SETTER_DECLARATION, ['setter']); | 147       check(HighlightRegionType.SETTER_DECLARATION, ['setter']); | 
| 141       check(HighlightRegionType.TOP_LEVEL_VARIABLE, | 148       check(HighlightRegionType.TOP_LEVEL_VARIABLE, [ | 
| 142           ['override', 'topLevelVariable']); | 149         'override', | 
|  | 150         'topLevelVariable' | 
|  | 151       ]); | 
| 143       check(HighlightRegionType.TYPE_NAME_DYNAMIC, ['dynamic']); | 152       check(HighlightRegionType.TYPE_NAME_DYNAMIC, ['dynamic']); | 
| 144       check(HighlightRegionType.TYPE_PARAMETER, ['TypeParameter']); | 153       check(HighlightRegionType.TYPE_PARAMETER, ['TypeParameter']); | 
| 145       expect(highlights, isEmpty); | 154       expect(highlights, isEmpty); | 
| 146     }); | 155     }); | 
| 147   } | 156   } | 
| 148 } | 157 } | 
| OLD | NEW | 
|---|