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.occurrences; | 5 library test.integration.analysis.occurrences; |
6 | 6 |
7 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 7 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 8 import 'package:test/test.dart'; |
8 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 9 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
9 import 'package:unittest/unittest.dart'; | |
10 | 10 |
11 import '../../utils.dart'; | 11 import '../../utils.dart'; |
12 import '../integration_tests.dart'; | 12 import '../integration_tests.dart'; |
13 | 13 |
14 main() { | 14 main() { |
15 initializeTestEnvironment(); | 15 initializeTestEnvironment(); |
16 defineReflectiveTests(Test); | 16 defineReflectiveSuite(() { |
| 17 defineReflectiveTests(Test); |
| 18 }); |
17 } | 19 } |
18 | 20 |
19 @reflectiveTest | 21 @reflectiveTest |
20 class Test extends AbstractAnalysisServerIntegrationTest { | 22 class Test extends AbstractAnalysisServerIntegrationTest { |
21 test_occurrences() { | 23 test_occurrences() { |
22 String pathname = sourcePath('test.dart'); | 24 String pathname = sourcePath('test.dart'); |
23 String text = r''' | 25 String text = r''' |
24 main() { | 26 main() { |
25 int sum = 0; | 27 int sum = 0; |
26 for (int i = 0; i < 10; i++) { | 28 for (int i = 0; i < 10; i++) { |
(...skipping 18 matching lines...) Expand all Loading... |
45 expect(currentAnalysisErrors[pathname], isEmpty); | 47 expect(currentAnalysisErrors[pathname], isEmpty); |
46 Set<int> findOffsets(String elementName) { | 48 Set<int> findOffsets(String elementName) { |
47 for (Occurrences occurrence in occurrences) { | 49 for (Occurrences occurrence in occurrences) { |
48 if (occurrence.element.name == elementName) { | 50 if (occurrence.element.name == elementName) { |
49 return occurrence.offsets.toSet(); | 51 return occurrence.offsets.toSet(); |
50 } | 52 } |
51 } | 53 } |
52 fail('No element found matching $elementName'); | 54 fail('No element found matching $elementName'); |
53 return null; | 55 return null; |
54 } | 56 } |
| 57 |
55 void check(String elementName, Iterable<String> expectedOccurrences) { | 58 void check(String elementName, Iterable<String> expectedOccurrences) { |
56 Set<int> expectedOffsets = expectedOccurrences | 59 Set<int> expectedOffsets = expectedOccurrences |
57 .map((String substring) => text.indexOf(substring)) | 60 .map((String substring) => text.indexOf(substring)) |
58 .toSet(); | 61 .toSet(); |
59 Set<int> foundOffsets = findOffsets(elementName); | 62 Set<int> foundOffsets = findOffsets(elementName); |
60 expect(foundOffsets, equals(expectedOffsets)); | 63 expect(foundOffsets, equals(expectedOffsets)); |
61 } | 64 } |
| 65 |
62 check('i', ['i = 0', 'i < 10', 'i++', 'i;']); | 66 check('i', ['i = 0', 'i < 10', 'i++', 'i;']); |
63 check('j', ['j = 0', 'j < i', 'j++', 'j;']); | 67 check('j', ['j = 0', 'j < i', 'j++', 'j;']); |
64 check('sum', ['sum = 0', 'sum +=', 'sum)']); | 68 check('sum', ['sum = 0', 'sum +=', 'sum)']); |
65 }); | 69 }); |
66 } | 70 } |
67 } | 71 } |
OLD | NEW |