| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 vmservice_test_helper; | 5 library vmservice_test_helper; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:convert'; | 8 import 'dart:convert'; |
| 9 import 'dart:io'; | 9 import 'dart:io'; |
| 10 import 'package:expect/expect.dart'; | 10 import 'package:expect/expect.dart'; |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 | 179 |
| 180 IsolateListTester(this.isolateList) { | 180 IsolateListTester(this.isolateList) { |
| 181 // The reply is an IsolateList. | 181 // The reply is an IsolateList. |
| 182 Expect.equals('IsolateList', isolateList['type'], 'Not an IsolateList.'); | 182 Expect.equals('IsolateList', isolateList['type'], 'Not an IsolateList.'); |
| 183 } | 183 } |
| 184 | 184 |
| 185 void checkIsolateCount(int n) { | 185 void checkIsolateCount(int n) { |
| 186 Expect.equals(n, isolateList['members'].length, 'Isolate count not $n'); | 186 Expect.equals(n, isolateList['members'].length, 'Isolate count not $n'); |
| 187 } | 187 } |
| 188 | 188 |
| 189 void checkIsolateIdExists(int id) { | 189 void checkIsolateIdExists(String id) { |
| 190 var exists = false; | 190 var exists = false; |
| 191 isolateList['members'].forEach((isolate) { | 191 isolateList['members'].forEach((isolate) { |
| 192 if (isolate['id'] == id) { | 192 if (isolate['id'] == id) { |
| 193 exists = true; | 193 exists = true; |
| 194 } | 194 } |
| 195 }); | 195 }); |
| 196 Expect.isTrue(exists, 'No isolate with id: $id'); | 196 Expect.isTrue(exists, 'No isolate with id: $id'); |
| 197 } | 197 } |
| 198 | 198 |
| 199 int checkIsolateNameContains(String name) { | 199 String checkIsolateNameContains(String name) { |
| 200 var exists = false; | 200 var exists = false; |
| 201 int id; | 201 String id; |
| 202 isolateList['members'].forEach((isolate) { | 202 isolateList['members'].forEach((isolate) { |
| 203 if (isolate['name'].contains(name)) { | 203 if (isolate['name'].contains(name)) { |
| 204 exists = true; | 204 exists = true; |
| 205 id = isolate['id']; | 205 id = isolate['id']; |
| 206 } | 206 } |
| 207 }); | 207 }); |
| 208 Expect.isTrue(exists, 'No isolate with name: $name'); | 208 Expect.isTrue(exists, 'No isolate with name: $name'); |
| 209 return id; | 209 return id; |
| 210 } | 210 } |
| 211 | 211 |
| 212 void checkIsolateNamePrefix(int id, String name) { | 212 void checkIsolateNamePrefix(String id, String name) { |
| 213 var exists = false; | 213 var exists = false; |
| 214 isolateList['members'].forEach((isolate) { | 214 isolateList['members'].forEach((isolate) { |
| 215 if (isolate['id'] == id) { | 215 if (isolate['id'] == id) { |
| 216 exists = true; | 216 exists = true; |
| 217 Expect.isTrue(isolate['name'].startsWith(name), | 217 Expect.isTrue(isolate['name'].startsWith(name), |
| 218 'Isolate $id does not have name prefix: $name' | 218 'Isolate $id does not have name prefix: $name' |
| 219 ' (was ${isolate['name']})'); | 219 ' (was ${isolate['name']})'); |
| 220 } | 220 } |
| 221 }); | 221 }); |
| 222 Expect.isTrue(exists, 'No isolate with id: $id'); | 222 Expect.isTrue(exists, 'No isolate with id: $id'); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 234 List members = classTable['members']; | 234 List members = classTable['members']; |
| 235 for (var i = 0; i < members.length; i++) { | 235 for (var i = 0; i < members.length; i++) { |
| 236 Map klass = members[i]; | 236 Map klass = members[i]; |
| 237 if (klass['user_name'] == user_name) { | 237 if (klass['user_name'] == user_name) { |
| 238 return true; | 238 return true; |
| 239 } | 239 } |
| 240 } | 240 } |
| 241 return false; | 241 return false; |
| 242 } | 242 } |
| 243 | 243 |
| 244 int classId(String user_name) { | 244 String classId(String user_name) { |
| 245 List members = classTable['members']; | 245 List members = classTable['members']; |
| 246 for (var i = 0; i < members.length; i++) { | 246 for (var i = 0; i < members.length; i++) { |
| 247 Map klass = members[i]; | 247 Map klass = members[i]; |
| 248 if (klass['user_name'] == user_name) { | 248 if (klass['user_name'] == user_name) { |
| 249 return klass['id']; | 249 return klass['id']; |
| 250 } | 250 } |
| 251 } | 251 } |
| 252 return -1; | 252 return null; |
| 253 } | 253 } |
| 254 } | 254 } |
| 255 | 255 |
| 256 class FieldRequestHelper extends VmServiceRequestHelper { | 256 class FieldRequestHelper extends VmServiceRequestHelper { |
| 257 FieldRequestHelper(port, isolate_id, field_id) : | 257 FieldRequestHelper(port, isolate_id, field_id) : |
| 258 super('http://127.0.0.1:$port/isolates/$isolate_id/objects/$field_id'); | 258 super('http://127.0.0.1:$port/$isolate_id/$field_id'); |
| 259 Map field; | 259 Map field; |
| 260 onRequestCompleted(Map reply) { | 260 onRequestCompleted(Map reply) { |
| 261 Expect.equals('Field', reply['type']); | 261 Expect.equals('Field', reply['type']); |
| 262 field = reply; | 262 field = reply; |
| 263 return new Future.value(this); | 263 return new Future.value(this); |
| 264 } | 264 } |
| 265 } | 265 } |
| 266 | 266 |
| 267 class ClassFieldRequestHelper extends VmServiceRequestHelper { | 267 class ClassFieldRequestHelper extends VmServiceRequestHelper { |
| 268 final List<String> fieldNames; | 268 final List<String> fieldNames; |
| 269 int port_; | 269 int port_; |
| 270 int isolate_id_; | 270 String isolate_id_; |
| 271 ClassFieldRequestHelper(port, isolate_id, class_id, this.fieldNames) : | 271 ClassFieldRequestHelper(port, isolate_id, class_id, this.fieldNames) : |
| 272 super('http://127.0.0.1:$port/isolates/$isolate_id/classes/$class_id') { | 272 super('http://127.0.0.1:$port/$isolate_id/$class_id') { |
| 273 port_ = port; | 273 port_ = port; |
| 274 isolate_id_ = isolate_id; | 274 isolate_id_ = isolate_id; |
| 275 } | 275 } |
| 276 final Map<String, Map> fields = new Map<String, Map>(); | 276 final Map<String, Map> fields = new Map<String, Map>(); |
| 277 | 277 |
| 278 onRequestCompleted(Map reply) { | 278 onRequestCompleted(Map reply) { |
| 279 Expect.equals('Class', reply['type']); | 279 Expect.equals('Class', reply['type']); |
| 280 List<Map> class_fields = reply['fields']; | 280 List<Map> class_fields = reply['fields']; |
| 281 List<Future> requests = new List<Future>(); | 281 List<Future> requests = new List<Future>(); |
| 282 fieldNames.forEach((fn) { | 282 fieldNames.forEach((fn) { |
| 283 class_fields.forEach((f) { | 283 class_fields.forEach((f) { |
| 284 if (f['user_name'] == fn) { | 284 if (f['user_name'] == fn) { |
| 285 var request = new FieldRequestHelper(port_, isolate_id_, f['id']); | 285 var request = new FieldRequestHelper(port_, isolate_id_, f['id']); |
| 286 requests.add(request.makeRequest()); | 286 requests.add(request.makeRequest()); |
| 287 } | 287 } |
| 288 }); | 288 }); |
| 289 }); | 289 }); |
| 290 return Future.wait(requests).then((a) { | 290 return Future.wait(requests).then((a) { |
| 291 a.forEach((FieldRequestHelper field) { | 291 a.forEach((FieldRequestHelper field) { |
| 292 fields[field.field['user_name']] = field.field; | 292 fields[field.field['user_name']] = field.field; |
| 293 }); | 293 }); |
| 294 return this; | 294 return this; |
| 295 }); | 295 }); |
| 296 } | 296 } |
| 297 } | 297 } |
| OLD | NEW |