| 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 |