@@ -33,12 +33,19 @@ void main() {
33
33
);
34
34
});
35
35
36
+ tearDownAll (() async {
37
+ await context.tearDown ();
38
+ });
39
+
36
40
test ('emits DEVTOOLS_LAUNCH event' , () async {
37
41
// The events stream is a broadcast stream so start listening before the
38
42
// action.
39
- expect (context.testServer.dwds.events,
40
- emits (predicate ((DwdsEvent event) => event.type == 'DEVTOOLS_LAUNCH' )));
43
+ var events = expectLater (
44
+ context.testServer.dwds.events,
45
+ emitsThrough (
46
+ predicate ((DwdsEvent event) => event.type == 'DEVTOOLS_LAUNCH' )));
41
47
await context.webDriver.driver.keyboard.sendChord ([Keyboard .alt, 'd' ]);
48
+ await events;
42
49
});
43
50
44
51
test ('events can be listened to multiple times' , () async {
@@ -62,9 +69,9 @@ void main() {
62
69
});
63
70
64
71
test ('can emit event through service extension' , () async {
65
- expect (
72
+ var events = expectLater (
66
73
context.testServer.dwds.events,
67
- emits (predicate ((DwdsEvent event) =>
74
+ emitsThrough (predicate ((DwdsEvent event) =>
68
75
event.type == 'foo-event' && event.payload['data' ] == 1234 )));
69
76
70
77
var response = await context.debugConnection.vmService
@@ -73,11 +80,12 @@ void main() {
73
80
'payload' : {'data' : 1234 },
74
81
});
75
82
expect (response.type, 'Success' );
83
+ await events;
76
84
});
77
85
78
86
test ('emits EVALUATE events on evaluation success' , () async {
79
87
var expression = "helloString('world')" ;
80
- expect (
88
+ var events = expectLater (
81
89
context.testServer.dwds.events,
82
90
emitsThrough (predicate ((DwdsEvent event) =>
83
91
event.type == 'EVALUATE' &&
@@ -90,11 +98,12 @@ void main() {
90
98
bootstrap.id,
91
99
expression,
92
100
);
101
+ await events;
93
102
});
94
103
95
104
test ('emits EVALUATE events on evaluation failure' , () async {
96
105
var expression = 'some-bad-expression' ;
97
- expect (
106
+ var events = expectLater (
98
107
context.testServer.dwds.events,
99
108
emitsThrough (predicate ((DwdsEvent event) =>
100
109
event.type == 'EVALUATE' &&
@@ -107,6 +116,7 @@ void main() {
107
116
bootstrap.id,
108
117
expression,
109
118
);
119
+ await events;
110
120
});
111
121
});
112
122
@@ -133,9 +143,9 @@ void main() {
133
143
});
134
144
135
145
test ('emits EVALUATE_IN_FRAME events on RPC error' , () async {
136
- expect (
146
+ var events = expectLater (
137
147
context.testServer.dwds.events,
138
- emits (predicate ((DwdsEvent event) =>
148
+ emitsThrough (predicate ((DwdsEvent event) =>
139
149
event.type == 'EVALUATE_IN_FRAME' &&
140
150
event.payload['success' ] == false &&
141
151
event.payload['error' ] == null &&
@@ -150,6 +160,7 @@ void main() {
150
160
'some-bad-expression' ,
151
161
);
152
162
} catch (_) {}
163
+ await events;
153
164
});
154
165
155
166
test ('emits EVALUATE_IN_FRAME events on evaluation error' , () async {
@@ -162,7 +173,7 @@ void main() {
162
173
163
174
// Evaluation succeeds and return ErrorRef containing compilation error,
164
175
// so event is marked as success.
165
- expect (
176
+ var events = expectLater (
166
177
context.testServer.dwds.events,
167
178
emitsThrough (predicate ((DwdsEvent event) =>
168
179
event.type == 'EVALUATE_IN_FRAME' &&
@@ -177,6 +188,7 @@ void main() {
177
188
);
178
189
} catch (_) {
179
190
} finally {
191
+ await events;
180
192
await service.removeBreakpoint (isolateId, bp.id);
181
193
await service.resume (isolateId);
182
194
}
@@ -192,7 +204,7 @@ void main() {
192
204
193
205
// Evaluation succeeds and return InstanceRef,
194
206
// so event is marked as success.
195
- expect (
207
+ var events = expectLater (
196
208
context.testServer.dwds.events,
197
209
emitsThrough (predicate ((DwdsEvent event) =>
198
210
event.type == 'EVALUATE_IN_FRAME' &&
@@ -207,6 +219,7 @@ void main() {
207
219
);
208
220
} catch (_) {
209
221
} finally {
222
+ await events;
210
223
await service.removeBreakpoint (isolateId, bp.id);
211
224
await service.resume (isolateId);
212
225
}
@@ -229,7 +242,7 @@ void main() {
229
242
});
230
243
231
244
test ('emits GET_SOURCE_REPORT events' , () async {
232
- expect (
245
+ var events = expectLater (
233
246
context.testServer.dwds.events,
234
247
emitsInOrder ([
235
248
predicate ((DwdsEvent event) => event.type == 'GET_SOURCE_REPORT' ),
@@ -240,31 +253,7 @@ void main() {
240
253
await service.getSourceReport (
241
254
isolateId, [SourceReportKind .kPossibleBreakpoints],
242
255
scriptId: mainScript.id);
243
- });
244
- });
245
-
246
- group ('getObject' , () {
247
- String isolateId;
248
- ScriptList scripts;
249
- ScriptRef mainScript;
250
-
251
- setUp (() async {
252
- setCurrentLogWriter ();
253
- var vm = await service.getVM ();
254
- isolateId = vm.isolates.first.id;
255
- scripts = await service.getScripts (isolateId);
256
-
257
- mainScript = scripts.scripts
258
- .firstWhere ((script) => script.uri.contains ('main.dart' ));
259
- });
260
-
261
- test ('emits GET_OBJECT events' , () async {
262
- expect (
263
- context.testServer.dwds.events,
264
- emits (predicate ((DwdsEvent event) =>
265
- event.type == 'GET_OBJECT' &&
266
- event.payload['type' ] == 'Script' )));
267
- await service.getObject (isolateId, mainScript.id);
256
+ await events;
268
257
});
269
258
});
270
259
@@ -278,9 +267,12 @@ void main() {
278
267
});
279
268
280
269
test ('emits GET_SCRIPTS events' , () async {
281
- expect (context.testServer.dwds.events,
282
- emits (predicate ((DwdsEvent event) => event.type == 'GET_SCRIPTS' )));
270
+ var events = expectLater (
271
+ context.testServer.dwds.events,
272
+ emitsThrough (
273
+ predicate ((DwdsEvent event) => event.type == 'GET_SCRIPTS' )));
283
274
await service.getScripts (isolateId);
275
+ await events;
284
276
});
285
277
});
286
278
@@ -294,9 +286,12 @@ void main() {
294
286
});
295
287
296
288
test ('emits GET_ISOLATE events' , () async {
297
- expect (context.testServer.dwds.events,
298
- emits (predicate ((DwdsEvent event) => event.type == 'GET_ISOLATE' )));
289
+ var events = expectLater (
290
+ context.testServer.dwds.events,
291
+ emitsThrough (
292
+ predicate ((DwdsEvent event) => event.type == 'GET_ISOLATE' )));
299
293
await service.getIsolate (isolateId);
294
+ await events;
300
295
});
301
296
});
302
297
@@ -306,9 +301,10 @@ void main() {
306
301
});
307
302
308
303
test ('emits GET_VM events' , () async {
309
- expect (context.testServer.dwds.events,
310
- emits (predicate ((DwdsEvent event) => event.type == 'GET_VM' )));
304
+ var events = expectLater (context.testServer.dwds.events,
305
+ emitsThrough (predicate ((DwdsEvent event) => event.type == 'GET_VM' )));
311
306
await service.getVM ();
307
+ await events;
312
308
});
313
309
});
314
310
@@ -342,9 +338,10 @@ void main() {
342
338
});
343
339
344
340
test ('emits RESUME events' , () async {
345
- expect (context.testServer.dwds.events,
346
- emits (predicate ((DwdsEvent event) => event.type == 'RESUME' )));
341
+ var events = expectLater (context.testServer.dwds.events,
342
+ emitsThrough (predicate ((DwdsEvent event) => event.type == 'RESUME' )));
347
343
await service.resume (isolateId, step: 'Into' );
344
+ await events;
348
345
});
349
346
});
350
347
}
0 commit comments