@@ -17,7 +17,7 @@ library;
17
17
18
18
import 'dart:async' ;
19
19
import 'dart:js_interop' ;
20
-
20
+ import 'dart:typed_data' ;
21
21
import 'package:async/async.dart' ;
22
22
import 'package:grpc/src/client/call.dart' ;
23
23
import 'package:grpc/src/client/transport/xhr_transport.dart' ;
@@ -53,9 +53,9 @@ class MockHttpRequest extends Mock implements IXMLHttpRequest {
53
53
@override
54
54
final int status;
55
55
56
- // Some test code expects to call this
57
- set readyState ( int state);
58
- set responseText ( String text );
56
+ @override
57
+ String get responseText =>
58
+ super . noSuchMethod ( Invocation . getter (#responseText), returnValue : '' );
59
59
60
60
@override
61
61
int get readyState =>
@@ -213,7 +213,7 @@ void main() {
213
213
await stream.terminate ();
214
214
215
215
final expectedData = frame (data);
216
- verify (connection.latestRequest.send (expectedData.toJSBox ));
216
+ verify (connection.latestRequest.send (Uint8List . fromList ( expectedData).toJS ));
217
217
});
218
218
219
219
test ('Stream handles headers properly' , () async {
@@ -229,16 +229,15 @@ void main() {
229
229
(error, _) => fail (error.toString ()));
230
230
231
231
when (transport.latestRequest.responseHeaders).thenReturn (responseHeaders);
232
- when (transport.latestRequest.response )
233
- .thenReturn (String .fromCharCodes (frame (< int > [])).toJS );
232
+ when (transport.latestRequest.responseText )
233
+ .thenReturn (String .fromCharCodes (frame (< int > [])));
234
234
235
235
// Set expectation for request readyState and generate two readyStateChange
236
236
// events, so that incomingMessages stream completes.
237
237
final readyStates = [XMLHttpRequest .HEADERS_RECEIVED , XMLHttpRequest .DONE ];
238
- transport.latestRequest.readyState = readyStates[ 0 ] ;
238
+ when ( transport.latestRequest.readyState). thenReturnInOrder ( readyStates) ;
239
239
transport.latestRequest.readyStateChangeController
240
240
.add (readyStateChangeEvent);
241
- transport.latestRequest.readyState = readyStates[1 ];
242
241
transport.latestRequest.readyStateChangeController
243
242
.add (readyStateChangeEvent);
244
243
@@ -271,15 +270,15 @@ void main() {
271
270
final encodedString = String .fromCharCodes (encodedTrailers);
272
271
273
272
when (connection.latestRequest.responseHeaders).thenReturn (requestHeaders);
274
- when (connection.latestRequest.response ).thenReturn (encodedString.toJS );
273
+ when (connection.latestRequest.responseText ).thenReturn (encodedString);
275
274
276
275
// Set expectation for request readyState and generate events so that
277
276
// incomingMessages stream completes.
278
- connection.latestRequest.readyState = XMLHttpRequest .HEADERS_RECEIVED ;
277
+ when (connection.latestRequest.readyState).thenReturnInOrder (
278
+ [XMLHttpRequest .HEADERS_RECEIVED , XMLHttpRequest .DONE ]);
279
279
connection.latestRequest.readyStateChangeController
280
280
.add (readyStateChangeEvent);
281
281
connection.latestRequest.progressController.add (progressEvent);
282
- connection.latestRequest.readyState = XMLHttpRequest .DONE ;
283
282
connection.latestRequest.readyStateChangeController
284
283
.add (readyStateChangeEvent);
285
284
@@ -306,14 +305,14 @@ void main() {
306
305
final encodedString = String .fromCharCodes (encoded);
307
306
308
307
when (connection.latestRequest.responseHeaders).thenReturn (requestHeaders);
309
- when (connection.latestRequest.response ).thenReturn (encodedString.toJS );
308
+ when (connection.latestRequest.responseText ).thenReturn (encodedString);
310
309
// Set expectation for request readyState and generate events so that
311
310
// incomingMessages stream completes.
312
- connection.latestRequest.readyState = XMLHttpRequest .HEADERS_RECEIVED ;
311
+ when (connection.latestRequest.readyState).thenReturnInOrder (
312
+ [XMLHttpRequest .HEADERS_RECEIVED , XMLHttpRequest .DONE ]);
313
313
connection.latestRequest.readyStateChangeController
314
314
.add (readyStateChangeEvent);
315
315
connection.latestRequest.progressController.add (progressEvent);
316
- connection.latestRequest.readyState = XMLHttpRequest .DONE ;
317
316
connection.latestRequest.readyStateChangeController
318
317
.add (readyStateChangeEvent);
319
318
@@ -338,16 +337,16 @@ void main() {
338
337
requestHeaders, (error, _) => fail (error.toString ()));
339
338
final data = List <int >.filled (10 , 224 );
340
339
when (connection.latestRequest.responseHeaders).thenReturn (requestHeaders);
341
- when (connection.latestRequest.response )
342
- .thenReturn (String .fromCharCodes (frame (data)).toJS );
340
+ when (connection.latestRequest.responseText )
341
+ .thenReturn (String .fromCharCodes (frame (data)));
343
342
344
343
// Set expectation for request readyState and generate events, so that
345
344
// incomingMessages stream completes.
346
- connection.latestRequest.readyState = XMLHttpRequest .HEADERS_RECEIVED ;
345
+ when (connection.latestRequest.readyState).thenReturnInOrder (
346
+ [XMLHttpRequest .HEADERS_RECEIVED , XMLHttpRequest .DONE ]);
347
347
connection.latestRequest.readyStateChangeController
348
348
.add (readyStateChangeEvent);
349
349
connection.latestRequest.progressController.add (progressEvent);
350
- connection.latestRequest.readyState = XMLHttpRequest .DONE ;
351
350
connection.latestRequest.readyStateChangeController
352
351
.add (readyStateChangeEvent);
353
352
@@ -369,8 +368,8 @@ void main() {
369
368
const errorDetails = 'error details' ;
370
369
when (connection.latestRequest.responseHeaders)
371
370
.thenReturn ({'content-type' : 'application/grpc+proto' });
372
- connection.latestRequest.readyState = XMLHttpRequest .DONE ;
373
- connection.latestRequest.responseText = errorDetails;
371
+ when ( connection.latestRequest.readyState). thenReturn ( XMLHttpRequest .DONE ) ;
372
+ when ( connection.latestRequest.responseText). thenReturn ( errorDetails) ;
374
373
connection.latestRequest.readyStateChangeController
375
374
.add (readyStateChangeEvent);
376
375
await errorReceived.future;
@@ -403,12 +402,12 @@ void main() {
403
402
// At first invocation the response should be the the first message, after
404
403
// that first + last messages.
405
404
var first = true ;
406
- when (connection.latestRequest.response ).thenAnswer ((_) {
405
+ when (connection.latestRequest.responseText ).thenAnswer ((_) {
407
406
if (first) {
408
407
first = false ;
409
- return encodedStrings[0 ].toJS ;
408
+ return encodedStrings[0 ];
410
409
}
411
- return ( encodedStrings[0 ] + encodedStrings[1 ]).toJS ;
410
+ return encodedStrings[0 ] + encodedStrings[1 ];
412
411
});
413
412
414
413
final readyStates = [XMLHttpRequest .HEADERS_RECEIVED , XMLHttpRequest .DONE ];
0 commit comments