OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'dart:async'; | 5 import 'dart:async'; |
6 | 6 |
7 import 'package:analyzer/dart/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
8 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; | 8 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; |
9 import 'package:analyzer/dart/element/element.dart'; | 9 import 'package:analyzer/dart/element/element.dart'; |
10 import 'package:analyzer/src/dart/analysis/driver.dart'; | 10 import 'package:analyzer/src/dart/analysis/driver.dart'; |
11 import 'package:analyzer/src/dart/analysis/search.dart'; | 11 import 'package:analyzer/src/dart/analysis/search.dart'; |
12 import 'package:analyzer/src/dart/ast/utilities.dart'; | 12 import 'package:analyzer/src/dart/ast/utilities.dart'; |
13 import 'package:analyzer/src/dart/element/member.dart'; | 13 import 'package:analyzer/src/dart/element/member.dart'; |
14 import 'package:test/test.dart'; | 14 import 'package:test/test.dart'; |
15 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 15 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
16 | 16 |
| 17 import '../../../utils.dart'; |
17 import 'base.dart'; | 18 import 'base.dart'; |
18 | 19 |
19 main() { | 20 main() { |
20 defineReflectiveSuite(() { | 21 defineReflectiveSuite(() { |
21 defineReflectiveTests(SearchTest); | 22 defineReflectiveTests(SearchTest); |
22 }); | 23 }); |
23 } | 24 } |
24 | 25 |
25 class ExpectedResult { | 26 class ExpectedResult { |
26 final Element enclosingElement; | 27 final Element enclosingElement; |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
565 main() { | 566 main() { |
566 label: | 567 label: |
567 while (true) { | 568 while (true) { |
568 if (true) { | 569 if (true) { |
569 break label; // 1 | 570 break label; // 1 |
570 } | 571 } |
571 break label; // 2 | 572 break label; // 2 |
572 } | 573 } |
573 } | 574 } |
574 '''); | 575 '''); |
575 Element element = _findElement('label'); | 576 Element element = findElementsByName(testUnit, 'label').single; |
576 Element main = _findElement('main'); | 577 Element main = _findElement('main'); |
577 var expected = [ | 578 var expected = [ |
578 _expectId(main, SearchResultKind.REFERENCE, 'label; // 1'), | 579 _expectId(main, SearchResultKind.REFERENCE, 'label; // 1'), |
579 _expectId(main, SearchResultKind.REFERENCE, 'label; // 2') | 580 _expectId(main, SearchResultKind.REFERENCE, 'label; // 2') |
580 ]; | 581 ]; |
581 await _verifyReferences(element, expected); | 582 await _verifyReferences(element, expected); |
582 } | 583 } |
583 | 584 |
584 test_searchReferences_LibraryElement() async { | 585 test_searchReferences_LibraryElement() async { |
585 var codeA = 'part of lib; // A'; | 586 var codeA = 'part of lib; // A'; |
(...skipping 20 matching lines...) Expand all Loading... |
606 test_searchReferences_LocalVariableElement() async { | 607 test_searchReferences_LocalVariableElement() async { |
607 await _resolveTestUnit(r''' | 608 await _resolveTestUnit(r''' |
608 main() { | 609 main() { |
609 var v; | 610 var v; |
610 v = 1; | 611 v = 1; |
611 v += 2; | 612 v += 2; |
612 print(v); | 613 print(v); |
613 v(); | 614 v(); |
614 } | 615 } |
615 '''); | 616 '''); |
616 Element element = _findElementAtString('v;'); | 617 Element element = findElementsByName(testUnit, 'v').single; |
617 Element main = _findElement('main'); | 618 Element main = _findElement('main'); |
618 var expected = [ | 619 var expected = [ |
619 _expectId(main, SearchResultKind.WRITE, 'v = 1;'), | 620 _expectId(main, SearchResultKind.WRITE, 'v = 1;'), |
620 _expectId(main, SearchResultKind.READ_WRITE, 'v += 2;'), | 621 _expectId(main, SearchResultKind.READ_WRITE, 'v += 2;'), |
621 _expectId(main, SearchResultKind.READ, 'v);'), | 622 _expectId(main, SearchResultKind.READ, 'v);'), |
622 _expectId(main, SearchResultKind.INVOCATION, 'v();') | 623 _expectId(main, SearchResultKind.INVOCATION, 'v();') |
623 ]; | 624 ]; |
624 await _verifyReferences(element, expected); | 625 await _verifyReferences(element, expected); |
625 } | 626 } |
626 | 627 |
627 test_searchReferences_localVariableElement_inForEachLoop() async { | 628 test_searchReferences_localVariableElement_inForEachLoop() async { |
628 await _resolveTestUnit(''' | 629 await _resolveTestUnit(''' |
629 main() { | 630 main() { |
630 for (var v in []) { | 631 for (var v in []) { |
631 v = 1; | 632 v = 1; |
632 v += 2; | 633 v += 2; |
633 print(v); | 634 print(v); |
634 v(); | 635 v(); |
635 } | 636 } |
636 } | 637 } |
637 '''); | 638 '''); |
638 Element element = _findElementAtString('v in []'); | 639 Element element = findElementsByName(testUnit, 'v').single; |
639 Element main = _findElement('main'); | 640 Element main = _findElement('main'); |
640 var expected = [ | 641 var expected = [ |
641 _expectId(main, SearchResultKind.WRITE, 'v = 1;'), | 642 _expectId(main, SearchResultKind.WRITE, 'v = 1;'), |
642 _expectId(main, SearchResultKind.READ_WRITE, 'v += 2;'), | 643 _expectId(main, SearchResultKind.READ_WRITE, 'v += 2;'), |
643 _expectId(main, SearchResultKind.READ, 'v);'), | 644 _expectId(main, SearchResultKind.READ, 'v);'), |
644 _expectId(main, SearchResultKind.INVOCATION, 'v();') | 645 _expectId(main, SearchResultKind.INVOCATION, 'v();') |
645 ]; | 646 ]; |
646 await _verifyReferences(element, expected); | 647 await _verifyReferences(element, expected); |
647 } | 648 } |
648 | 649 |
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1264 List<SearchResult> results = await driver.search.references(element); | 1265 List<SearchResult> results = await driver.search.references(element); |
1265 _assertResults(results, expectedMatches); | 1266 _assertResults(results, expectedMatches); |
1266 expect(results, hasLength(expectedMatches.length)); | 1267 expect(results, hasLength(expectedMatches.length)); |
1267 } | 1268 } |
1268 | 1269 |
1269 static void _assertResults( | 1270 static void _assertResults( |
1270 List<SearchResult> matches, List<ExpectedResult> expectedMatches) { | 1271 List<SearchResult> matches, List<ExpectedResult> expectedMatches) { |
1271 expect(matches, unorderedEquals(expectedMatches)); | 1272 expect(matches, unorderedEquals(expectedMatches)); |
1272 } | 1273 } |
1273 } | 1274 } |
OLD | NEW |