| 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.domain.analysis; | 5 library test.domain.analysis; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 10 import 'package:analysis_server/src/analysis_server.dart'; | 10 import 'package:analysis_server/src/analysis_server.dart'; |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 | 98 |
| 99 group('setAnalysisRoots', () { | 99 group('setAnalysisRoots', () { |
| 100 Response testSetAnalysisRoots( | 100 Response testSetAnalysisRoots( |
| 101 List<String> included, List<String> excluded) { | 101 List<String> included, List<String> excluded) { |
| 102 Request request = new AnalysisSetAnalysisRootsParams(included, excluded) | 102 Request request = new AnalysisSetAnalysisRootsParams(included, excluded) |
| 103 .toRequest('0'); | 103 .toRequest('0'); |
| 104 return handler.handleRequest(request); | 104 return handler.handleRequest(request); |
| 105 } | 105 } |
| 106 | 106 |
| 107 group('excluded', () { | 107 group('excluded', () { |
| 108 test('excluded folder', () { | 108 test('excluded folder', () async { |
| 109 String fileA = '/project/aaa/a.dart'; | 109 String fileA = '/project/aaa/a.dart'; |
| 110 String fileB = '/project/bbb/b.dart'; | 110 String fileB = '/project/bbb/b.dart'; |
| 111 resourceProvider.newFile(fileA, '// a'); | 111 resourceProvider.newFile(fileA, '// a'); |
| 112 resourceProvider.newFile(fileB, '// b'); | 112 resourceProvider.newFile(fileB, '// b'); |
| 113 var response = testSetAnalysisRoots(['/project'], ['/project/bbb']); | 113 var response = testSetAnalysisRoots(['/project'], ['/project/bbb']); |
| 114 var serverRef = server; | 114 var serverRef = server; |
| 115 expect(response, isResponseSuccess('0')); | 115 expect(response, isResponseSuccess('0')); |
| 116 // unit "a" is resolved eventually | 116 // unit "a" is resolved eventually |
| 117 // unit "b" is not resolved | 117 // unit "b" is not resolved |
| 118 return server.onAnalysisComplete.then((_) { | 118 await server.onAnalysisComplete; |
| 119 expect(serverRef.getResolvedCompilationUnit(fileA), isNotNull); | 119 expect(await serverRef.getResolvedCompilationUnit(fileA), isNotNull); |
| 120 expect(serverRef.getResolvedCompilationUnit(fileB), isNull); | 120 expect(await serverRef.getResolvedCompilationUnit(fileB), isNull); |
| 121 }); | |
| 122 }); | 121 }); |
| 123 | 122 |
| 124 test('not absolute', () async { | 123 test('not absolute', () async { |
| 125 var response = testSetAnalysisRoots([], ['foo/bar']); | 124 var response = testSetAnalysisRoots([], ['foo/bar']); |
| 126 expect( | 125 expect( |
| 127 response, | 126 response, |
| 128 isResponseFailure( | 127 isResponseFailure( |
| 129 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); | 128 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); |
| 130 }); | 129 }); |
| 131 | 130 |
| 132 test('not normalized', () async { | 131 test('not normalized', () async { |
| 133 var response = testSetAnalysisRoots([], ['/foo/../bar']); | 132 var response = testSetAnalysisRoots([], ['/foo/../bar']); |
| 134 expect( | 133 expect( |
| 135 response, | 134 response, |
| 136 isResponseFailure( | 135 isResponseFailure( |
| 137 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); | 136 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); |
| 138 }); | 137 }); |
| 139 }); | 138 }); |
| 140 | 139 |
| 141 group('included', () { | 140 group('included', () { |
| 142 test('new folder', () { | 141 test('new folder', () async { |
| 143 String file = '/project/bin/test.dart'; | 142 String file = '/project/bin/test.dart'; |
| 144 resourceProvider.newFile('/project/pubspec.yaml', 'name: project'); | 143 resourceProvider.newFile('/project/pubspec.yaml', 'name: project'); |
| 145 resourceProvider.newFile(file, 'main() {}'); | 144 resourceProvider.newFile(file, 'main() {}'); |
| 146 var response = testSetAnalysisRoots(['/project'], []); | 145 var response = testSetAnalysisRoots(['/project'], []); |
| 147 var serverRef = server; | 146 var serverRef = server; |
| 148 expect(response, isResponseSuccess('0')); | 147 expect(response, isResponseSuccess('0')); |
| 149 // verify that unit is resolved eventually | 148 // verify that unit is resolved eventually |
| 150 return server.onAnalysisComplete.then((_) { | 149 await server.onAnalysisComplete; |
| 151 var unit = serverRef.getResolvedCompilationUnit(file); | 150 var unit = await serverRef.getResolvedCompilationUnit(file); |
| 152 expect(unit, isNotNull); | 151 expect(unit, isNotNull); |
| 153 }); | |
| 154 }); | 152 }); |
| 155 | 153 |
| 156 test('nonexistent folder', () async { | 154 test('nonexistent folder', () async { |
| 157 String fileB = '/project_b/b.dart'; | 155 String fileB = '/project_b/b.dart'; |
| 158 resourceProvider.newFile(fileB, '// b'); | 156 resourceProvider.newFile(fileB, '// b'); |
| 159 var response = testSetAnalysisRoots(['/project_a', '/project_b'], []); | 157 var response = testSetAnalysisRoots(['/project_a', '/project_b'], []); |
| 160 var serverRef = server; | 158 var serverRef = server; |
| 161 expect(response, isResponseSuccess('0')); | 159 expect(response, isResponseSuccess('0')); |
| 162 // Non-existence of /project_a should not prevent files in /project_b | 160 // Non-existence of /project_a should not prevent files in /project_b |
| 163 // from being analyzed. | 161 // from being analyzed. |
| 164 await server.onAnalysisComplete; | 162 await server.onAnalysisComplete; |
| 165 expect(serverRef.getResolvedCompilationUnit(fileB), isNotNull); | 163 var unit = await serverRef.getResolvedCompilationUnit(fileB); |
| 164 expect(unit, isNotNull); |
| 166 }); | 165 }); |
| 167 | 166 |
| 168 test('not absolute', () async { | 167 test('not absolute', () async { |
| 169 var response = testSetAnalysisRoots(['foo/bar'], []); | 168 var response = testSetAnalysisRoots(['foo/bar'], []); |
| 170 expect( | 169 expect( |
| 171 response, | 170 response, |
| 172 isResponseFailure( | 171 isResponseFailure( |
| 173 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); | 172 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); |
| 174 }); | 173 }); |
| 175 | 174 |
| (...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 775 test_beforeAnalysis() async { | 774 test_beforeAnalysis() async { |
| 776 addTestFile('int V = 42;'); | 775 addTestFile('int V = 42;'); |
| 777 createProject(); | 776 createProject(); |
| 778 // subscribe | 777 // subscribe |
| 779 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile); | 778 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile); |
| 780 // wait for analysis | 779 // wait for analysis |
| 781 await waitForTasksFinished(); | 780 await waitForTasksFinished(); |
| 782 expect(filesHighlights[testFile], isNotEmpty); | 781 expect(filesHighlights[testFile], isNotEmpty); |
| 783 } | 782 } |
| 784 } | 783 } |
| OLD | NEW |