| 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.search.element_references; | 5 library test.search.element_references; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/protocol.dart'; | 9 import 'package:analysis_server/src/protocol.dart'; |
| 10 import 'package:analysis_testing/reflective_tests.dart'; | 10 import 'package:analysis_testing/reflective_tests.dart'; |
| 11 import 'package:unittest/unittest.dart'; | 11 import 'package:unittest/unittest.dart'; |
| 12 | 12 |
| 13 import 'abstract_search_domain.dart'; | 13 import 'abstract_search_domain.dart'; |
| 14 | 14 |
| 15 | 15 |
| 16 main() { | 16 main() { |
| 17 groupSep = ' | '; | 17 groupSep = ' | '; |
| 18 runReflectiveTests(ElementReferencesTest); | 18 runReflectiveTests(ElementReferencesTest); |
| 19 } | 19 } |
| 20 | 20 |
| 21 | 21 |
| 22 @ReflectiveTestCase() | 22 @ReflectiveTestCase() |
| 23 class ElementReferencesTest extends AbstractSearchDomainTest { | 23 class ElementReferencesTest extends AbstractSearchDomainTest { |
| 24 Element searchElement; | 24 Element searchElement; |
| 25 | 25 |
| 26 Future findElementReferences(String search, bool includePotential) { | 26 Future findElementReferences(String search, bool includePotential) { |
| 27 int offset = findOffset(search); | 27 int offset = findOffset(search); |
| 28 return waitForTasksFinished().then((_) { | 28 return waitForTasksFinished().then((_) { |
| 29 Request request = new SearchFindElementReferencesParams(testFile, offset, | 29 Request request = new SearchFindElementReferencesParams( |
| 30 testFile, |
| 31 offset, |
| 30 includePotential).toRequest('0'); | 32 includePotential).toRequest('0'); |
| 31 Response response = handleSuccessfulRequest(request); | 33 Response response = handleSuccessfulRequest(request); |
| 32 var result = new SearchFindElementReferencesResult.fromResponse(response); | 34 var result = new SearchFindElementReferencesResult.fromResponse(response); |
| 33 searchId = result.id; | 35 searchId = result.id; |
| 34 searchElement = result.element; | 36 searchElement = result.element; |
| 35 results.clear(); | 37 results.clear(); |
| 36 if (searchId == null) { | 38 if (searchId == null) { |
| 37 return null; | 39 return null; |
| 38 } else { | 40 } else { |
| 39 return waitForSearchResults(); | 41 return waitForSearchResults(); |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 } | 294 } |
| 293 '''); | 295 '''); |
| 294 return findElementReferences('mmm(p) {}', false).then((_) { | 296 return findElementReferences('mmm(p) {}', false).then((_) { |
| 295 expect(searchElement.kind, ElementKind.METHOD); | 297 expect(searchElement.kind, ElementKind.METHOD); |
| 296 expect(results, hasLength(2)); | 298 expect(results, hasLength(2)); |
| 297 assertHasResult(SearchResultKind.INVOCATION, 'mmm(10);'); | 299 assertHasResult(SearchResultKind.INVOCATION, 'mmm(10);'); |
| 298 assertHasResult(SearchResultKind.REFERENCE, 'mmm);'); | 300 assertHasResult(SearchResultKind.REFERENCE, 'mmm);'); |
| 299 }); | 301 }); |
| 300 } | 302 } |
| 301 | 303 |
| 304 test_noElement() { |
| 305 addTestFile(''' |
| 306 main() { |
| 307 print(noElement); |
| 308 } |
| 309 '''); |
| 310 return findElementReferences('noElement', false).then((_) { |
| 311 expect(searchId, isNull); |
| 312 }); |
| 313 } |
| 314 |
| 302 test_oneUnit_twoLibraries() { | 315 test_oneUnit_twoLibraries() { |
| 303 var pathA = '/project/bin/libA.dart'; | 316 var pathA = '/project/bin/libA.dart'; |
| 304 var pathB = '/project/bin/libB.dart'; | 317 var pathB = '/project/bin/libB.dart'; |
| 305 var codeA = ''' | 318 var codeA = ''' |
| 306 library lib; | 319 library lib; |
| 307 part 'test.dart'; | 320 part 'test.dart'; |
| 308 main() { | 321 main() { |
| 309 fff(1); | 322 fff(1); |
| 310 } | 323 } |
| 311 '''; | 324 '''; |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 577 } | 590 } |
| 578 '''); | 591 '''); |
| 579 return findElementReferences('T> {', false).then((_) { | 592 return findElementReferences('T> {', false).then((_) { |
| 580 expect(searchElement.kind, ElementKind.TYPE_PARAMETER); | 593 expect(searchElement.kind, ElementKind.TYPE_PARAMETER); |
| 581 expect(results, hasLength(2)); | 594 expect(results, hasLength(2)); |
| 582 assertHasResult(SearchResultKind.REFERENCE, 'T f;'); | 595 assertHasResult(SearchResultKind.REFERENCE, 'T f;'); |
| 583 assertHasResult(SearchResultKind.REFERENCE, 'T m()'); | 596 assertHasResult(SearchResultKind.REFERENCE, 'T m()'); |
| 584 }); | 597 }); |
| 585 } | 598 } |
| 586 } | 599 } |
| OLD | NEW |