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.analysis.notification_errors; | 5 library test.analysis.notification_errors; |
6 | 6 |
7 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 7 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
8 import 'package:analysis_server/src/constants.dart'; | 8 import 'package:analysis_server/src/constants.dart'; |
9 import 'package:analysis_server/src/domain_analysis.dart'; | 9 import 'package:analysis_server/src/domain_analysis.dart'; |
10 import 'package:analyzer/src/generated/engine.dart'; | 10 import 'package:analyzer/src/generated/engine.dart'; |
(...skipping 30 matching lines...) Expand all Loading... |
41 server.handlers = [new AnalysisDomainHandler(server),]; | 41 server.handlers = [new AnalysisDomainHandler(server),]; |
42 wasTaskModelEnabled = AnalysisEngine.instance.useTaskModel; | 42 wasTaskModelEnabled = AnalysisEngine.instance.useTaskModel; |
43 } | 43 } |
44 | 44 |
45 @override | 45 @override |
46 void tearDown() { | 46 void tearDown() { |
47 AnalysisEngine.instance.useTaskModel = wasTaskModelEnabled; | 47 AnalysisEngine.instance.useTaskModel = wasTaskModelEnabled; |
48 super.tearDown(); | 48 super.tearDown(); |
49 } | 49 } |
50 | 50 |
51 test_importError() { | 51 test_importError() async { |
52 createProject(); | 52 createProject(); |
53 | 53 |
54 addTestFile(''' | 54 addTestFile(''' |
55 import 'does_not_exist.dart'; | 55 import 'does_not_exist.dart'; |
56 '''); | 56 '''); |
57 return waitForTasksFinished().then((_) { | 57 await waitForTasksFinished(); |
58 List<AnalysisError> errors = filesErrors[testFile]; | 58 List<AnalysisError> errors = filesErrors[testFile]; |
59 // Verify that we are generating only 1 error for the bad URI. | 59 // Verify that we are generating only 1 error for the bad URI. |
60 // https://github.com/dart-lang/sdk/issues/23754 | 60 // https://github.com/dart-lang/sdk/issues/23754 |
61 expect(errors, hasLength(1)); | 61 expect(errors, hasLength(1)); |
62 AnalysisError error = errors[0]; | 62 AnalysisError error = errors[0]; |
63 expect(error.severity, AnalysisErrorSeverity.ERROR); | 63 expect(error.severity, AnalysisErrorSeverity.ERROR); |
64 expect(error.type, AnalysisErrorType.COMPILE_TIME_ERROR); | 64 expect(error.type, AnalysisErrorType.COMPILE_TIME_ERROR); |
65 expect(error.message, startsWith('Target of URI does not exist')); | 65 expect(error.message, startsWith('Target of URI does not exist')); |
66 }); | |
67 } | 66 } |
68 | 67 |
69 test_lintError() { | 68 test_lintError() async { |
70 // Requires task model. | 69 // Requires task model. |
71 AnalysisEngine.instance.useTaskModel = true; | 70 AnalysisEngine.instance.useTaskModel = true; |
72 | 71 |
73 var camelCaseTypesLintName = 'camel_case_types'; | 72 var camelCaseTypesLintName = 'camel_case_types'; |
74 | 73 |
75 addFile( | 74 addFile( |
76 '$projectPath/.analysis_options', | 75 '$projectPath/.analysis_options', |
77 ''' | 76 ''' |
78 linter: | 77 linter: |
79 rules: | 78 rules: |
80 - $camelCaseTypesLintName | 79 - $camelCaseTypesLintName |
81 '''); | 80 '''); |
82 | 81 |
83 addTestFile('class a { }'); | 82 addTestFile('class a { }'); |
84 | 83 |
85 Request request = | 84 Request request = |
86 new AnalysisSetAnalysisRootsParams([projectPath], []).toRequest('0'); | 85 new AnalysisSetAnalysisRootsParams([projectPath], []).toRequest('0'); |
87 handleSuccessfulRequest(request); | 86 handleSuccessfulRequest(request); |
88 | 87 |
89 return waitForTasksFinished().then((_) { | 88 await waitForTasksFinished(); |
90 AnalysisContext testContext = server.getContainingContext(testFile); | 89 AnalysisContext testContext = server.getContainingContext(testFile); |
91 List<Linter> lints = getLints(testContext); | 90 List<Linter> lints = getLints(testContext); |
92 // Registry should only contain single lint rule. | 91 // Registry should only contain single lint rule. |
93 expect(lints, hasLength(1)); | 92 expect(lints, hasLength(1)); |
94 LintRule lint = lints.first as LintRule; | 93 LintRule lint = lints.first as LintRule; |
95 expect(lint.name, camelCaseTypesLintName); | 94 expect(lint.name, camelCaseTypesLintName); |
96 // Verify lint error result. | 95 // Verify lint error result. |
97 List<AnalysisError> errors = filesErrors[testFile]; | 96 List<AnalysisError> errors = filesErrors[testFile]; |
98 expect(errors, hasLength(1)); | 97 expect(errors, hasLength(1)); |
99 AnalysisError error = errors[0]; | 98 AnalysisError error = errors[0]; |
100 expect(error.location.file, '/project/bin/test.dart'); | 99 expect(error.location.file, '/project/bin/test.dart'); |
101 expect(error.severity, AnalysisErrorSeverity.INFO); | 100 expect(error.severity, AnalysisErrorSeverity.INFO); |
102 expect(error.type, AnalysisErrorType.LINT); | 101 expect(error.type, AnalysisErrorType.LINT); |
103 expect(error.message, lint.description); | 102 expect(error.message, lint.description); |
104 }); | |
105 } | 103 } |
106 | 104 |
107 test_notInAnalysisRoot() { | 105 test_notInAnalysisRoot() async { |
108 createProject(); | 106 createProject(); |
109 String otherFile = '/other.dart'; | 107 String otherFile = '/other.dart'; |
110 addFile(otherFile, 'UnknownType V;'); | 108 addFile(otherFile, 'UnknownType V;'); |
111 addTestFile(''' | 109 addTestFile(''' |
112 import '/other.dart'; | 110 import '/other.dart'; |
113 | |
114 main() { | 111 main() { |
115 print(V); | 112 print(V); |
116 } | 113 } |
117 '''); | 114 '''); |
118 return waitForTasksFinished().then((_) { | 115 await waitForTasksFinished(); |
119 expect(filesErrors[otherFile], isNull); | 116 expect(filesErrors[otherFile], isNull); |
120 }); | |
121 } | 117 } |
122 | 118 |
123 test_ParserError() { | 119 test_ParserError() async { |
124 createProject(); | 120 createProject(); |
125 addTestFile('library lib'); | 121 addTestFile('library lib'); |
126 return waitForTasksFinished().then((_) { | 122 await waitForTasksFinished(); |
127 List<AnalysisError> errors = filesErrors[testFile]; | 123 List<AnalysisError> errors = filesErrors[testFile]; |
128 expect(errors, hasLength(1)); | 124 expect(errors, hasLength(1)); |
129 AnalysisError error = errors[0]; | 125 AnalysisError error = errors[0]; |
130 expect(error.location.file, '/project/bin/test.dart'); | 126 expect(error.location.file, '/project/bin/test.dart'); |
131 expect(error.location.offset, isPositive); | 127 expect(error.location.offset, isPositive); |
132 expect(error.location.length, isNonNegative); | 128 expect(error.location.length, isNonNegative); |
133 expect(error.severity, AnalysisErrorSeverity.ERROR); | 129 expect(error.severity, AnalysisErrorSeverity.ERROR); |
134 expect(error.type, AnalysisErrorType.SYNTACTIC_ERROR); | 130 expect(error.type, AnalysisErrorType.SYNTACTIC_ERROR); |
135 expect(error.message, isNotNull); | 131 expect(error.message, isNotNull); |
136 }); | |
137 } | 132 } |
138 | 133 |
139 test_StaticWarning() { | 134 test_StaticWarning() async { |
140 createProject(); | 135 createProject(); |
141 addTestFile(''' | 136 addTestFile(''' |
142 main() { | 137 main() { |
143 print(UNKNOWN); | 138 print(UNKNOWN); |
144 } | 139 } |
145 '''); | 140 '''); |
146 return waitForTasksFinished().then((_) { | 141 await waitForTasksFinished(); |
147 List<AnalysisError> errors = filesErrors[testFile]; | 142 List<AnalysisError> errors = filesErrors[testFile]; |
148 expect(errors, hasLength(1)); | 143 expect(errors, hasLength(1)); |
149 AnalysisError error = errors[0]; | 144 AnalysisError error = errors[0]; |
150 expect(error.severity, AnalysisErrorSeverity.WARNING); | 145 expect(error.severity, AnalysisErrorSeverity.WARNING); |
151 expect(error.type, AnalysisErrorType.STATIC_WARNING); | 146 expect(error.type, AnalysisErrorType.STATIC_WARNING); |
152 }); | |
153 } | 147 } |
154 } | 148 } |
OLD | NEW |