Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(515)

Unified Diff: pkg/analysis_server/test/analysis_notification_navigation_test.dart

Issue 315053005: Split computers.dart and use parsed JSON objects for navigation tests. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rollback debug output Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/test/analysis_notification_navigation_test.dart
diff --git a/pkg/analysis_server/test/analysis_notification_navigation_test.dart b/pkg/analysis_server/test/analysis_notification_navigation_test.dart
index 792433e2608a2a0f11a474571c3e19b427e6b7fd..9359581450dcdd6e864e134aa054d874cd545708 100644
--- a/pkg/analysis_server/test/analysis_notification_navigation_test.dart
+++ b/pkg/analysis_server/test/analysis_notification_navigation_test.dart
@@ -24,15 +24,29 @@ main() {
@ReflectiveTestCase()
class AnalysisNotificationNavigationTest extends AbstractAnalysisTest {
- List<Map<String, Object>> regions;
- Map<String, Object> testRegion;
- List<Map<String, Object>> testTargets;
+ List<_NavigationRegion> regions;
+ _NavigationRegion testRegion;
+ List<_NavigationTarget> testTargets;
void processNotification(Notification notification) {
if (notification.event == NOTIFICATION_NAVIGATION) {
String file = notification.getParameter(FILE);
if (file == testFile) {
- regions = notification.getParameter(REGIONS);
+ regions = [];
+ List<Map<String, Object>> regionsJson = notification.getParameter(REGIONS);
+ for (Map<String, Object> regionJson in regionsJson) {
+ var regionOffset = regionJson['offset'];
+ var regionLength = regionJson['length'];
+ List<_NavigationTarget> targets = [];
+ for (Map<String, Object> targetJson in regionJson['targets']) {
+ var targetFile = targetJson['file'];
+ var targetOffset = targetJson['offset'];
+ var targetLength = targetJson['length'];
+ targets.add(new _NavigationTarget(targetFile, targetOffset, targetLength));
+ }
+ var region = new _NavigationRegion(regionOffset, regionLength, targets);
+ regions.add(region);
+ }
}
}
}
@@ -55,15 +69,15 @@ class AnalysisNotificationNavigationTest extends AbstractAnalysisTest {
* If [exists] is `false`, then fails if such region exists.
*/
void findRegion(int offset, int length, [bool exists]) {
- for (Map<String, Object> region in regions) {
- if (region['offset'] == offset &&
- (length == -1 || region['length'] == length)) {
+ for (_NavigationRegion region in regions) {
+ if (region.offset == offset &&
+ (length == -1 || region.length == length)) {
if (exists == false) {
fail('Not expected to find (offset=$offset; length=$length) in\n'
'${regions.join('\n')}');
}
testRegion = region;
- testTargets = region['targets'];
+ testTargets = region.targets;
return;
}
}
@@ -106,16 +120,7 @@ class AnalysisNotificationNavigationTest extends AbstractAnalysisTest {
if (length == -1) {
length = findIdentifierLength(search);
}
- for (Map<String, Object> target in testTargets) {
- if (target['file'] == testFile &&
- target['offset'] == offset &&
- target['length'] == length) {
- return;
- }
- }
- fail('Expected to find target (offset=$offset; length=$length) in\n'
- '${testRegion} in\n'
- '${regions.join('\n')}');
+ assertHasFileTarget(testFile, offset, length);
}
/**
@@ -123,10 +128,10 @@ class AnalysisNotificationNavigationTest extends AbstractAnalysisTest {
* and with the given [length].
*/
void assertHasFileTarget(String file, int offset, int length) {
- for (Map<String, Object> target in testTargets) {
- if (target['file'] == file &&
- target['offset'] == offset &&
- target['length'] == length) {
+ for (_NavigationTarget target in testTargets) {
+ if (target.file == file &&
+ target.offset == offset &&
+ target.length == length) {
return;
}
}
@@ -432,3 +437,21 @@ part "test_unit.dart";
// });
}
}
+
+
+class _NavigationRegion {
+ final int offset;
+ final int length;
+ final List<_NavigationTarget> targets;
+
+ _NavigationRegion(this.offset, this.length, this.targets);
+}
+
+
+class _NavigationTarget {
+ final String file;
+ final int offset;
+ final int length;
+
+ _NavigationTarget(this.file, this.offset, this.length);
+}
« no previous file with comments | « pkg/analysis_server/lib/src/operation/operation_analysis.dart ('k') | pkg/analysis_server/test/domain_analysis_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698