OLD | NEW |
---|---|
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 // VMOptions=--error_on_bad_type --error_on_bad_override | 4 // VMOptions=--error_on_bad_type --error_on_bad_override |
5 | 5 |
6 library get_object_rpc_test; | 6 library get_object_rpc_test; |
7 | 7 |
8 import 'dart:typed_data'; | 8 import 'dart:typed_data'; |
9 import 'dart:convert' show BASE64; | 9 import 'dart:convert' show BASE64; |
10 import 'package:observatory/service_io.dart'; | 10 import 'package:observatory/service_io.dart'; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
74 var params = { | 74 var params = { |
75 'objectId': 'objects/int-123', | 75 'objectId': 'objects/int-123', |
76 }; | 76 }; |
77 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 77 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
78 expect(result['type'], equals('Instance')); | 78 expect(result['type'], equals('Instance')); |
79 expect(result['kind'], equals('Int')); | 79 expect(result['kind'], equals('Int')); |
80 expect(result['_vmType'], equals('Smi')); | 80 expect(result['_vmType'], equals('Smi')); |
81 expect(result['id'], equals('objects/int-123')); | 81 expect(result['id'], equals('objects/int-123')); |
82 expect(result['valueAsString'], equals('123')); | 82 expect(result['valueAsString'], equals('123')); |
83 expect(result['class']['type'], equals('@Class')); | 83 expect(result['class']['type'], equals('@Class')); |
84 expect(result['class']['name'], equals('_Smi')); | 84 expect(result['class']['name'], equals('int')); |
Cutch
2016/02/23 17:42:53
I think we still want to use the ScrubbedName (the
| |
85 expect(result['size'], isZero); | 85 expect(result['size'], isZero); |
86 expect(result['fields'], isEmpty); | 86 expect(result['fields'], isEmpty); |
87 }, | 87 }, |
88 | 88 |
89 // A string | 89 // A string |
90 (Isolate isolate) async { | 90 (Isolate isolate) async { |
91 // Call eval to get a Dart list. | 91 // Call eval to get a Dart list. |
92 var evalResult = await eval(isolate, '"Chattanooga"'); | 92 var evalResult = await eval(isolate, '"Chattanooga"'); |
93 var params = { | 93 var params = { |
94 'objectId': evalResult['id'], | 94 'objectId': evalResult['id'], |
95 }; | 95 }; |
96 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 96 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
97 expect(result['type'], equals('Instance')); | 97 expect(result['type'], equals('Instance')); |
98 expect(result['kind'], equals('String')); | 98 expect(result['kind'], equals('String')); |
99 expect(result['_vmType'], equals('String')); | 99 expect(result['_vmType'], equals('String')); |
100 expect(result['id'], startsWith('objects/')); | 100 expect(result['id'], startsWith('objects/')); |
101 expect(result['valueAsString'], equals('Chattanooga')); | 101 expect(result['valueAsString'], equals('Chattanooga')); |
102 expect(result['class']['type'], equals('@Class')); | 102 expect(result['class']['type'], equals('@Class')); |
103 expect(result['class']['name'], equals('_OneByteString')); | 103 expect(result['class']['name'], equals('String')); |
104 expect(result['size'], isPositive); | 104 expect(result['size'], isPositive); |
105 expect(result['fields'], isEmpty); | 105 expect(result['fields'], isEmpty); |
106 expect(result['length'], equals(11)); | 106 expect(result['length'], equals(11)); |
107 expect(result['offset'], isNull); | 107 expect(result['offset'], isNull); |
108 expect(result['count'], isNull); | 108 expect(result['count'], isNull); |
109 }, | 109 }, |
110 | 110 |
111 // String prefix. | 111 // String prefix. |
112 (Isolate isolate) async { | 112 (Isolate isolate) async { |
113 // Call eval to get a Dart list. | 113 // Call eval to get a Dart list. |
114 var evalResult = await eval(isolate, '"Chattanooga"'); | 114 var evalResult = await eval(isolate, '"Chattanooga"'); |
115 var params = { | 115 var params = { |
116 'objectId': evalResult['id'], | 116 'objectId': evalResult['id'], |
117 'count': 4, | 117 'count': 4, |
118 }; | 118 }; |
119 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 119 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
120 expect(result['type'], equals('Instance')); | 120 expect(result['type'], equals('Instance')); |
121 expect(result['kind'], equals('String')); | 121 expect(result['kind'], equals('String')); |
122 expect(result['_vmType'], equals('String')); | 122 expect(result['_vmType'], equals('String')); |
123 expect(result['id'], startsWith('objects/')); | 123 expect(result['id'], startsWith('objects/')); |
124 expect(result['valueAsString'], equals('Chat')); | 124 expect(result['valueAsString'], equals('Chat')); |
125 expect(result['class']['type'], equals('@Class')); | 125 expect(result['class']['type'], equals('@Class')); |
126 expect(result['class']['name'], equals('_OneByteString')); | 126 expect(result['class']['name'], equals('String')); |
127 expect(result['size'], isPositive); | 127 expect(result['size'], isPositive); |
128 expect(result['fields'], isEmpty); | 128 expect(result['fields'], isEmpty); |
129 expect(result['length'], equals(11)); | 129 expect(result['length'], equals(11)); |
130 expect(result['offset'], isNull); | 130 expect(result['offset'], isNull); |
131 expect(result['count'], equals(4)); | 131 expect(result['count'], equals(4)); |
132 }, | 132 }, |
133 | 133 |
134 // String subrange. | 134 // String subrange. |
135 (Isolate isolate) async { | 135 (Isolate isolate) async { |
136 // Call eval to get a Dart list. | 136 // Call eval to get a Dart list. |
137 var evalResult = await eval(isolate, '"Chattanooga"'); | 137 var evalResult = await eval(isolate, '"Chattanooga"'); |
138 var params = { | 138 var params = { |
139 'objectId': evalResult['id'], | 139 'objectId': evalResult['id'], |
140 'offset': 4, | 140 'offset': 4, |
141 'count': 6, | 141 'count': 6, |
142 }; | 142 }; |
143 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 143 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
144 expect(result['type'], equals('Instance')); | 144 expect(result['type'], equals('Instance')); |
145 expect(result['kind'], equals('String')); | 145 expect(result['kind'], equals('String')); |
146 expect(result['_vmType'], equals('String')); | 146 expect(result['_vmType'], equals('String')); |
147 expect(result['id'], startsWith('objects/')); | 147 expect(result['id'], startsWith('objects/')); |
148 expect(result['valueAsString'], equals('tanoog')); | 148 expect(result['valueAsString'], equals('tanoog')); |
149 expect(result['class']['type'], equals('@Class')); | 149 expect(result['class']['type'], equals('@Class')); |
150 expect(result['class']['name'], equals('_OneByteString')); | 150 expect(result['class']['name'], equals('String')); |
151 expect(result['size'], isPositive); | 151 expect(result['size'], isPositive); |
152 expect(result['fields'], isEmpty); | 152 expect(result['fields'], isEmpty); |
153 expect(result['length'], equals(11)); | 153 expect(result['length'], equals(11)); |
154 expect(result['offset'], equals(4)); | 154 expect(result['offset'], equals(4)); |
155 expect(result['count'], equals(6)); | 155 expect(result['count'], equals(6)); |
156 }, | 156 }, |
157 | 157 |
158 // String with wacky offset. | 158 // String with wacky offset. |
159 (Isolate isolate) async { | 159 (Isolate isolate) async { |
160 // Call eval to get a Dart list. | 160 // Call eval to get a Dart list. |
161 var evalResult = await eval(isolate, '"Chattanooga"'); | 161 var evalResult = await eval(isolate, '"Chattanooga"'); |
162 var params = { | 162 var params = { |
163 'objectId': evalResult['id'], | 163 'objectId': evalResult['id'], |
164 'offset': 100, | 164 'offset': 100, |
165 'count': 2, | 165 'count': 2, |
166 }; | 166 }; |
167 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 167 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
168 expect(result['type'], equals('Instance')); | 168 expect(result['type'], equals('Instance')); |
169 expect(result['kind'], equals('String')); | 169 expect(result['kind'], equals('String')); |
170 expect(result['_vmType'], equals('String')); | 170 expect(result['_vmType'], equals('String')); |
171 expect(result['id'], startsWith('objects/')); | 171 expect(result['id'], startsWith('objects/')); |
172 expect(result['valueAsString'], equals('')); | 172 expect(result['valueAsString'], equals('')); |
173 expect(result['class']['type'], equals('@Class')); | 173 expect(result['class']['type'], equals('@Class')); |
174 expect(result['class']['name'], equals('_OneByteString')); | 174 expect(result['class']['name'], equals('String')); |
175 expect(result['size'], isPositive); | 175 expect(result['size'], isPositive); |
176 expect(result['fields'], isEmpty); | 176 expect(result['fields'], isEmpty); |
177 expect(result['length'], equals(11)); | 177 expect(result['length'], equals(11)); |
178 expect(result['offset'], equals(11)); | 178 expect(result['offset'], equals(11)); |
179 expect(result['count'], equals(0)); | 179 expect(result['count'], equals(0)); |
180 }, | 180 }, |
181 | 181 |
182 // A built-in List. | 182 // A built-in List. |
183 (Isolate isolate) async { | 183 (Isolate isolate) async { |
184 // Call eval to get a Dart list. | 184 // Call eval to get a Dart list. |
185 var evalResult = await eval(isolate, '[3, 2, 1]'); | 185 var evalResult = await eval(isolate, '[3, 2, 1]'); |
186 var params = { | 186 var params = { |
187 'objectId': evalResult['id'], | 187 'objectId': evalResult['id'], |
188 }; | 188 }; |
189 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 189 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
190 expect(result['type'], equals('Instance')); | 190 expect(result['type'], equals('Instance')); |
191 expect(result['kind'], equals('List')); | 191 expect(result['kind'], equals('List')); |
192 expect(result['_vmType'], equals('GrowableObjectArray')); | 192 expect(result['_vmType'], equals('GrowableObjectArray')); |
193 expect(result['id'], startsWith('objects/')); | 193 expect(result['id'], startsWith('objects/')); |
194 expect(result['valueAsString'], isNull); | 194 expect(result['valueAsString'], isNull); |
195 expect(result['class']['type'], equals('@Class')); | 195 expect(result['class']['type'], equals('@Class')); |
196 expect(result['class']['name'], equals('_GrowableList')); | 196 expect(result['class']['name'], equals('List')); |
197 expect(result['size'], isPositive); | 197 expect(result['size'], isPositive); |
198 expect(result['fields'], isEmpty); | 198 expect(result['fields'], isEmpty); |
199 expect(result['length'], equals(3)); | 199 expect(result['length'], equals(3)); |
200 expect(result['offset'], isNull); | 200 expect(result['offset'], isNull); |
201 expect(result['count'], isNull); | 201 expect(result['count'], isNull); |
202 expect(result['elements'].length, equals(3)); | 202 expect(result['elements'].length, equals(3)); |
203 expect(result['elements'][0]['type'], equals('@Instance')); | 203 expect(result['elements'][0]['type'], equals('@Instance')); |
204 expect(result['elements'][0]['kind'], equals('Int')); | 204 expect(result['elements'][0]['kind'], equals('Int')); |
205 expect(result['elements'][0]['valueAsString'], equals('3')); | 205 expect(result['elements'][0]['valueAsString'], equals('3')); |
206 expect(result['elements'][1]['type'], equals('@Instance')); | 206 expect(result['elements'][1]['type'], equals('@Instance')); |
(...skipping 12 matching lines...) Expand all Loading... | |
219 'objectId': evalResult['id'], | 219 'objectId': evalResult['id'], |
220 'count': 2, | 220 'count': 2, |
221 }; | 221 }; |
222 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 222 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
223 expect(result['type'], equals('Instance')); | 223 expect(result['type'], equals('Instance')); |
224 expect(result['kind'], equals('List')); | 224 expect(result['kind'], equals('List')); |
225 expect(result['_vmType'], equals('GrowableObjectArray')); | 225 expect(result['_vmType'], equals('GrowableObjectArray')); |
226 expect(result['id'], startsWith('objects/')); | 226 expect(result['id'], startsWith('objects/')); |
227 expect(result['valueAsString'], isNull); | 227 expect(result['valueAsString'], isNull); |
228 expect(result['class']['type'], equals('@Class')); | 228 expect(result['class']['type'], equals('@Class')); |
229 expect(result['class']['name'], equals('_GrowableList')); | 229 expect(result['class']['name'], equals('List')); |
230 expect(result['size'], isPositive); | 230 expect(result['size'], isPositive); |
231 expect(result['fields'], isEmpty); | 231 expect(result['fields'], isEmpty); |
232 expect(result['length'], equals(3)); | 232 expect(result['length'], equals(3)); |
233 expect(result['offset'], isNull); | 233 expect(result['offset'], isNull); |
234 expect(result['count'], equals(2)); | 234 expect(result['count'], equals(2)); |
235 expect(result['elements'].length, equals(2)); | 235 expect(result['elements'].length, equals(2)); |
236 expect(result['elements'][0]['type'], equals('@Instance')); | 236 expect(result['elements'][0]['type'], equals('@Instance')); |
237 expect(result['elements'][0]['kind'], equals('Int')); | 237 expect(result['elements'][0]['kind'], equals('Int')); |
238 expect(result['elements'][0]['valueAsString'], equals('3')); | 238 expect(result['elements'][0]['valueAsString'], equals('3')); |
239 expect(result['elements'][1]['type'], equals('@Instance')); | 239 expect(result['elements'][1]['type'], equals('@Instance')); |
(...skipping 10 matching lines...) Expand all Loading... | |
250 'offset': 2, | 250 'offset': 2, |
251 'count': 2, | 251 'count': 2, |
252 }; | 252 }; |
253 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 253 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
254 expect(result['type'], equals('Instance')); | 254 expect(result['type'], equals('Instance')); |
255 expect(result['kind'], equals('List')); | 255 expect(result['kind'], equals('List')); |
256 expect(result['_vmType'], equals('GrowableObjectArray')); | 256 expect(result['_vmType'], equals('GrowableObjectArray')); |
257 expect(result['id'], startsWith('objects/')); | 257 expect(result['id'], startsWith('objects/')); |
258 expect(result['valueAsString'], isNull); | 258 expect(result['valueAsString'], isNull); |
259 expect(result['class']['type'], equals('@Class')); | 259 expect(result['class']['type'], equals('@Class')); |
260 expect(result['class']['name'], equals('_GrowableList')); | 260 expect(result['class']['name'], equals('List')); |
261 expect(result['size'], isPositive); | 261 expect(result['size'], isPositive); |
262 expect(result['fields'], isEmpty); | 262 expect(result['fields'], isEmpty); |
263 expect(result['length'], equals(3)); | 263 expect(result['length'], equals(3)); |
264 expect(result['offset'], equals(2)); | 264 expect(result['offset'], equals(2)); |
265 expect(result['count'], equals(1)); | 265 expect(result['count'], equals(1)); |
266 expect(result['elements'].length, equals(1)); | 266 expect(result['elements'].length, equals(1)); |
267 expect(result['elements'][0]['type'], equals('@Instance')); | 267 expect(result['elements'][0]['type'], equals('@Instance')); |
268 expect(result['elements'][0]['kind'], equals('Int')); | 268 expect(result['elements'][0]['kind'], equals('Int')); |
269 expect(result['elements'][0]['valueAsString'], equals('1')); | 269 expect(result['elements'][0]['valueAsString'], equals('1')); |
270 }, | 270 }, |
271 | 271 |
272 // List with wacky offset. | 272 // List with wacky offset. |
273 (Isolate isolate) async { | 273 (Isolate isolate) async { |
274 // Call eval to get a Dart list. | 274 // Call eval to get a Dart list. |
275 var evalResult = await eval(isolate, '[3, 2, 1]'); | 275 var evalResult = await eval(isolate, '[3, 2, 1]'); |
276 var params = { | 276 var params = { |
277 'objectId': evalResult['id'], | 277 'objectId': evalResult['id'], |
278 'offset': 100, | 278 'offset': 100, |
279 'count': 2, | 279 'count': 2, |
280 }; | 280 }; |
281 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 281 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
282 expect(result['type'], equals('Instance')); | 282 expect(result['type'], equals('Instance')); |
283 expect(result['kind'], equals('List')); | 283 expect(result['kind'], equals('List')); |
284 expect(result['_vmType'], equals('GrowableObjectArray')); | 284 expect(result['_vmType'], equals('GrowableObjectArray')); |
285 expect(result['id'], startsWith('objects/')); | 285 expect(result['id'], startsWith('objects/')); |
286 expect(result['valueAsString'], isNull); | 286 expect(result['valueAsString'], isNull); |
287 expect(result['class']['type'], equals('@Class')); | 287 expect(result['class']['type'], equals('@Class')); |
288 expect(result['class']['name'], equals('_GrowableList')); | 288 expect(result['class']['name'], equals('List')); |
289 expect(result['size'], isPositive); | 289 expect(result['size'], isPositive); |
290 expect(result['fields'], isEmpty); | 290 expect(result['fields'], isEmpty); |
291 expect(result['length'], equals(3)); | 291 expect(result['length'], equals(3)); |
292 expect(result['offset'], equals(3)); | 292 expect(result['offset'], equals(3)); |
293 expect(result['count'], equals(0)); | 293 expect(result['count'], equals(0)); |
294 expect(result['elements'], isEmpty); | 294 expect(result['elements'], isEmpty); |
295 }, | 295 }, |
296 | 296 |
297 // A built-in Map. | 297 // A built-in Map. |
298 (Isolate isolate) async { | 298 (Isolate isolate) async { |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
434 var params = { | 434 var params = { |
435 'objectId': evalResult['id'], | 435 'objectId': evalResult['id'], |
436 }; | 436 }; |
437 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 437 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
438 expect(result['type'], equals('Instance')); | 438 expect(result['type'], equals('Instance')); |
439 expect(result['kind'], equals('Uint8List')); | 439 expect(result['kind'], equals('Uint8List')); |
440 expect(result['_vmType'], equals('TypedData')); | 440 expect(result['_vmType'], equals('TypedData')); |
441 expect(result['id'], startsWith('objects/')); | 441 expect(result['id'], startsWith('objects/')); |
442 expect(result['valueAsString'], isNull); | 442 expect(result['valueAsString'], isNull); |
443 expect(result['class']['type'], equals('@Class')); | 443 expect(result['class']['type'], equals('@Class')); |
444 expect(result['class']['name'], equals('_Uint8Array')); | 444 expect(result['class']['name'], equals('Uint8List')); |
445 expect(result['size'], isPositive); | 445 expect(result['size'], isPositive); |
446 expect(result['fields'], isEmpty); | 446 expect(result['fields'], isEmpty); |
447 expect(result['length'], equals(3)); | 447 expect(result['length'], equals(3)); |
448 expect(result['offset'], isNull); | 448 expect(result['offset'], isNull); |
449 expect(result['count'], isNull); | 449 expect(result['count'], isNull); |
450 expect(result['bytes'], equals('AwIB')); | 450 expect(result['bytes'], equals('AwIB')); |
451 Uint8List bytes = BASE64.decode(result['bytes']); | 451 Uint8List bytes = BASE64.decode(result['bytes']); |
452 expect(bytes.buffer.asUint8List().toString(), equals('[3, 2, 1]')); | 452 expect(bytes.buffer.asUint8List().toString(), equals('[3, 2, 1]')); |
453 }, | 453 }, |
454 | 454 |
455 // Uint8List prefix. | 455 // Uint8List prefix. |
456 (Isolate isolate) async { | 456 (Isolate isolate) async { |
457 // Call eval to get a Dart list. | 457 // Call eval to get a Dart list. |
458 var evalResult = await eval(isolate, 'uint8List'); | 458 var evalResult = await eval(isolate, 'uint8List'); |
459 var params = { | 459 var params = { |
460 'objectId': evalResult['id'], | 460 'objectId': evalResult['id'], |
461 'count' : 2, | 461 'count' : 2, |
462 }; | 462 }; |
463 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 463 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
464 expect(result['type'], equals('Instance')); | 464 expect(result['type'], equals('Instance')); |
465 expect(result['kind'], equals('Uint8List')); | 465 expect(result['kind'], equals('Uint8List')); |
466 expect(result['_vmType'], equals('TypedData')); | 466 expect(result['_vmType'], equals('TypedData')); |
467 expect(result['id'], startsWith('objects/')); | 467 expect(result['id'], startsWith('objects/')); |
468 expect(result['valueAsString'], isNull); | 468 expect(result['valueAsString'], isNull); |
469 expect(result['class']['type'], equals('@Class')); | 469 expect(result['class']['type'], equals('@Class')); |
470 expect(result['class']['name'], equals('_Uint8Array')); | 470 expect(result['class']['name'], equals('Uint8List')); |
471 expect(result['size'], isPositive); | 471 expect(result['size'], isPositive); |
472 expect(result['fields'], isEmpty); | 472 expect(result['fields'], isEmpty); |
473 expect(result['length'], equals(3)); | 473 expect(result['length'], equals(3)); |
474 expect(result['offset'], isNull); | 474 expect(result['offset'], isNull); |
475 expect(result['count'], equals(2)); | 475 expect(result['count'], equals(2)); |
476 expect(result['bytes'], equals('AwI=')); | 476 expect(result['bytes'], equals('AwI=')); |
477 Uint8List bytes = BASE64.decode(result['bytes']); | 477 Uint8List bytes = BASE64.decode(result['bytes']); |
478 expect(bytes.buffer.asUint8List().toString(), equals('[3, 2]')); | 478 expect(bytes.buffer.asUint8List().toString(), equals('[3, 2]')); |
479 }, | 479 }, |
480 | 480 |
481 // Uint8List suffix. | 481 // Uint8List suffix. |
482 (Isolate isolate) async { | 482 (Isolate isolate) async { |
483 // Call eval to get a Dart list. | 483 // Call eval to get a Dart list. |
484 var evalResult = await eval(isolate, 'uint8List'); | 484 var evalResult = await eval(isolate, 'uint8List'); |
485 var params = { | 485 var params = { |
486 'objectId': evalResult['id'], | 486 'objectId': evalResult['id'], |
487 'offset' : 2, | 487 'offset' : 2, |
488 'count' : 2, | 488 'count' : 2, |
489 }; | 489 }; |
490 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 490 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
491 expect(result['type'], equals('Instance')); | 491 expect(result['type'], equals('Instance')); |
492 expect(result['kind'], equals('Uint8List')); | 492 expect(result['kind'], equals('Uint8List')); |
493 expect(result['_vmType'], equals('TypedData')); | 493 expect(result['_vmType'], equals('TypedData')); |
494 expect(result['id'], startsWith('objects/')); | 494 expect(result['id'], startsWith('objects/')); |
495 expect(result['valueAsString'], isNull); | 495 expect(result['valueAsString'], isNull); |
496 expect(result['class']['type'], equals('@Class')); | 496 expect(result['class']['type'], equals('@Class')); |
497 expect(result['class']['name'], equals('_Uint8Array')); | 497 expect(result['class']['name'], equals('Uint8List')); |
498 expect(result['size'], isPositive); | 498 expect(result['size'], isPositive); |
499 expect(result['fields'], isEmpty); | 499 expect(result['fields'], isEmpty); |
500 expect(result['length'], equals(3)); | 500 expect(result['length'], equals(3)); |
501 expect(result['offset'], equals(2)); | 501 expect(result['offset'], equals(2)); |
502 expect(result['count'], equals(1)); | 502 expect(result['count'], equals(1)); |
503 expect(result['bytes'], equals('AQ==')); | 503 expect(result['bytes'], equals('AQ==')); |
504 Uint8List bytes = BASE64.decode(result['bytes']); | 504 Uint8List bytes = BASE64.decode(result['bytes']); |
505 expect(bytes.buffer.asUint8List().toString(), equals('[1]')); | 505 expect(bytes.buffer.asUint8List().toString(), equals('[1]')); |
506 }, | 506 }, |
507 | 507 |
508 // Uint8List with wacky offset. | 508 // Uint8List with wacky offset. |
509 (Isolate isolate) async { | 509 (Isolate isolate) async { |
510 // Call eval to get a Dart list. | 510 // Call eval to get a Dart list. |
511 var evalResult = await eval(isolate, 'uint8List'); | 511 var evalResult = await eval(isolate, 'uint8List'); |
512 var params = { | 512 var params = { |
513 'objectId': evalResult['id'], | 513 'objectId': evalResult['id'], |
514 'offset' : 100, | 514 'offset' : 100, |
515 'count' : 2, | 515 'count' : 2, |
516 }; | 516 }; |
517 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 517 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
518 expect(result['type'], equals('Instance')); | 518 expect(result['type'], equals('Instance')); |
519 expect(result['kind'], equals('Uint8List')); | 519 expect(result['kind'], equals('Uint8List')); |
520 expect(result['_vmType'], equals('TypedData')); | 520 expect(result['_vmType'], equals('TypedData')); |
521 expect(result['id'], startsWith('objects/')); | 521 expect(result['id'], startsWith('objects/')); |
522 expect(result['valueAsString'], isNull); | 522 expect(result['valueAsString'], isNull); |
523 expect(result['class']['type'], equals('@Class')); | 523 expect(result['class']['type'], equals('@Class')); |
524 expect(result['class']['name'], equals('_Uint8Array')); | 524 expect(result['class']['name'], equals('Uint8List')); |
525 expect(result['size'], isPositive); | 525 expect(result['size'], isPositive); |
526 expect(result['fields'], isEmpty); | 526 expect(result['fields'], isEmpty); |
527 expect(result['length'], equals(3)); | 527 expect(result['length'], equals(3)); |
528 expect(result['offset'], equals(3)); | 528 expect(result['offset'], equals(3)); |
529 expect(result['count'], equals(0)); | 529 expect(result['count'], equals(0)); |
530 expect(result['bytes'], equals('')); | 530 expect(result['bytes'], equals('')); |
531 }, | 531 }, |
532 | 532 |
533 // Uint64List. | 533 // Uint64List. |
534 (Isolate isolate) async { | 534 (Isolate isolate) async { |
535 // Call eval to get a Dart list. | 535 // Call eval to get a Dart list. |
536 var evalResult = await eval(isolate, 'uint64List'); | 536 var evalResult = await eval(isolate, 'uint64List'); |
537 var params = { | 537 var params = { |
538 'objectId': evalResult['id'], | 538 'objectId': evalResult['id'], |
539 }; | 539 }; |
540 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 540 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
541 expect(result['type'], equals('Instance')); | 541 expect(result['type'], equals('Instance')); |
542 expect(result['kind'], equals('Uint64List')); | 542 expect(result['kind'], equals('Uint64List')); |
543 expect(result['_vmType'], equals('TypedData')); | 543 expect(result['_vmType'], equals('TypedData')); |
544 expect(result['id'], startsWith('objects/')); | 544 expect(result['id'], startsWith('objects/')); |
545 expect(result['valueAsString'], isNull); | 545 expect(result['valueAsString'], isNull); |
546 expect(result['class']['type'], equals('@Class')); | 546 expect(result['class']['type'], equals('@Class')); |
547 expect(result['class']['name'], equals('_Uint64Array')); | 547 expect(result['class']['name'], equals('Uint64List')); |
548 expect(result['size'], isPositive); | 548 expect(result['size'], isPositive); |
549 expect(result['fields'], isEmpty); | 549 expect(result['fields'], isEmpty); |
550 expect(result['length'], equals(3)); | 550 expect(result['length'], equals(3)); |
551 expect(result['offset'], isNull); | 551 expect(result['offset'], isNull); |
552 expect(result['count'], isNull); | 552 expect(result['count'], isNull); |
553 expect(result['bytes'], equals('AwAAAAAAAAACAAAAAAAAAAEAAAAAAAAA')); | 553 expect(result['bytes'], equals('AwAAAAAAAAACAAAAAAAAAAEAAAAAAAAA')); |
554 Uint8List bytes = BASE64.decode(result['bytes']); | 554 Uint8List bytes = BASE64.decode(result['bytes']); |
555 expect(bytes.buffer.asUint64List().toString(), equals('[3, 2, 1]')); | 555 expect(bytes.buffer.asUint64List().toString(), equals('[3, 2, 1]')); |
556 }, | 556 }, |
557 | 557 |
558 // Uint64List prefix. | 558 // Uint64List prefix. |
559 (Isolate isolate) async { | 559 (Isolate isolate) async { |
560 // Call eval to get a Dart list. | 560 // Call eval to get a Dart list. |
561 var evalResult = await eval(isolate, 'uint64List'); | 561 var evalResult = await eval(isolate, 'uint64List'); |
562 var params = { | 562 var params = { |
563 'objectId': evalResult['id'], | 563 'objectId': evalResult['id'], |
564 'count' : 2, | 564 'count' : 2, |
565 }; | 565 }; |
566 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 566 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
567 expect(result['type'], equals('Instance')); | 567 expect(result['type'], equals('Instance')); |
568 expect(result['kind'], equals('Uint64List')); | 568 expect(result['kind'], equals('Uint64List')); |
569 expect(result['_vmType'], equals('TypedData')); | 569 expect(result['_vmType'], equals('TypedData')); |
570 expect(result['id'], startsWith('objects/')); | 570 expect(result['id'], startsWith('objects/')); |
571 expect(result['valueAsString'], isNull); | 571 expect(result['valueAsString'], isNull); |
572 expect(result['class']['type'], equals('@Class')); | 572 expect(result['class']['type'], equals('@Class')); |
573 expect(result['class']['name'], equals('_Uint64Array')); | 573 expect(result['class']['name'], equals('Uint64List')); |
574 expect(result['size'], isPositive); | 574 expect(result['size'], isPositive); |
575 expect(result['fields'], isEmpty); | 575 expect(result['fields'], isEmpty); |
576 expect(result['length'], equals(3)); | 576 expect(result['length'], equals(3)); |
577 expect(result['offset'], isNull); | 577 expect(result['offset'], isNull); |
578 expect(result['count'], equals(2)); | 578 expect(result['count'], equals(2)); |
579 expect(result['bytes'], equals('AwAAAAAAAAACAAAAAAAAAA==')); | 579 expect(result['bytes'], equals('AwAAAAAAAAACAAAAAAAAAA==')); |
580 Uint8List bytes = BASE64.decode(result['bytes']); | 580 Uint8List bytes = BASE64.decode(result['bytes']); |
581 expect(bytes.buffer.asUint64List().toString(), equals('[3, 2]')); | 581 expect(bytes.buffer.asUint64List().toString(), equals('[3, 2]')); |
582 }, | 582 }, |
583 | 583 |
584 // Uint64List suffix. | 584 // Uint64List suffix. |
585 (Isolate isolate) async { | 585 (Isolate isolate) async { |
586 // Call eval to get a Dart list. | 586 // Call eval to get a Dart list. |
587 var evalResult = await eval(isolate, 'uint64List'); | 587 var evalResult = await eval(isolate, 'uint64List'); |
588 var params = { | 588 var params = { |
589 'objectId': evalResult['id'], | 589 'objectId': evalResult['id'], |
590 'offset' : 2, | 590 'offset' : 2, |
591 'count' : 2, | 591 'count' : 2, |
592 }; | 592 }; |
593 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 593 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
594 expect(result['type'], equals('Instance')); | 594 expect(result['type'], equals('Instance')); |
595 expect(result['kind'], equals('Uint64List')); | 595 expect(result['kind'], equals('Uint64List')); |
596 expect(result['_vmType'], equals('TypedData')); | 596 expect(result['_vmType'], equals('TypedData')); |
597 expect(result['id'], startsWith('objects/')); | 597 expect(result['id'], startsWith('objects/')); |
598 expect(result['valueAsString'], isNull); | 598 expect(result['valueAsString'], isNull); |
599 expect(result['class']['type'], equals('@Class')); | 599 expect(result['class']['type'], equals('@Class')); |
600 expect(result['class']['name'], equals('_Uint64Array')); | 600 expect(result['class']['name'], equals('Uint64List')); |
601 expect(result['size'], isPositive); | 601 expect(result['size'], isPositive); |
602 expect(result['fields'], isEmpty); | 602 expect(result['fields'], isEmpty); |
603 expect(result['length'], equals(3)); | 603 expect(result['length'], equals(3)); |
604 expect(result['offset'], equals(2)); | 604 expect(result['offset'], equals(2)); |
605 expect(result['count'], equals(1)); | 605 expect(result['count'], equals(1)); |
606 expect(result['bytes'], equals('AQAAAAAAAAA=')); | 606 expect(result['bytes'], equals('AQAAAAAAAAA=')); |
607 Uint8List bytes = BASE64.decode(result['bytes']); | 607 Uint8List bytes = BASE64.decode(result['bytes']); |
608 expect(bytes.buffer.asUint64List().toString(), equals('[1]')); | 608 expect(bytes.buffer.asUint64List().toString(), equals('[1]')); |
609 }, | 609 }, |
610 | 610 |
611 // Uint64List with wacky offset. | 611 // Uint64List with wacky offset. |
612 (Isolate isolate) async { | 612 (Isolate isolate) async { |
613 // Call eval to get a Dart list. | 613 // Call eval to get a Dart list. |
614 var evalResult = await eval(isolate, 'uint64List'); | 614 var evalResult = await eval(isolate, 'uint64List'); |
615 var params = { | 615 var params = { |
616 'objectId': evalResult['id'], | 616 'objectId': evalResult['id'], |
617 'offset' : 100, | 617 'offset' : 100, |
618 'count' : 2, | 618 'count' : 2, |
619 }; | 619 }; |
620 var result = await isolate.invokeRpcNoUpgrade('getObject', params); | 620 var result = await isolate.invokeRpcNoUpgrade('getObject', params); |
621 expect(result['type'], equals('Instance')); | 621 expect(result['type'], equals('Instance')); |
622 expect(result['kind'], equals('Uint64List')); | 622 expect(result['kind'], equals('Uint64List')); |
623 expect(result['_vmType'], equals('TypedData')); | 623 expect(result['_vmType'], equals('TypedData')); |
624 expect(result['id'], startsWith('objects/')); | 624 expect(result['id'], startsWith('objects/')); |
625 expect(result['valueAsString'], isNull); | 625 expect(result['valueAsString'], isNull); |
626 expect(result['class']['type'], equals('@Class')); | 626 expect(result['class']['type'], equals('@Class')); |
627 expect(result['class']['name'], equals('_Uint64Array')); | 627 expect(result['class']['name'], equals('Uint64List')); |
628 expect(result['size'], isPositive); | 628 expect(result['size'], isPositive); |
629 expect(result['fields'], isEmpty); | 629 expect(result['fields'], isEmpty); |
630 expect(result['length'], equals(3)); | 630 expect(result['length'], equals(3)); |
631 expect(result['offset'], equals(3)); | 631 expect(result['offset'], equals(3)); |
632 expect(result['count'], equals(0)); | 632 expect(result['count'], equals(0)); |
633 expect(result['bytes'], equals('')); | 633 expect(result['bytes'], equals('')); |
634 }, | 634 }, |
635 | 635 |
636 // An expired object. | 636 // An expired object. |
637 (Isolate isolate) async { | 637 (Isolate isolate) async { |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
947 caughtException = true; | 947 caughtException = true; |
948 expect(e.code, equals(ServerRpcException.kInvalidParams)); | 948 expect(e.code, equals(ServerRpcException.kInvalidParams)); |
949 expect(e.message, | 949 expect(e.message, |
950 "getObject: invalid 'objectId' parameter: code/0"); | 950 "getObject: invalid 'objectId' parameter: code/0"); |
951 } | 951 } |
952 expect(caughtException, isTrue); | 952 expect(caughtException, isTrue); |
953 }, | 953 }, |
954 ]; | 954 ]; |
955 | 955 |
956 main(args) async => runIsolateTests(args, tests, testeeBefore:warmup); | 956 main(args) async => runIsolateTests(args, tests, testeeBefore:warmup); |
OLD | NEW |