@@ -15,10 +15,9 @@ public async Task InvokeFunctionOnLoadEventShouldFireDelayed()
15
15
var service = new JsScriptingService ( ) ;
16
16
var cfg = Configuration . Default . With ( service ) ;
17
17
var html = "<!doctype html><div id=result></div><script>document.addEventListener('load', function () { document.querySelector('#result').textContent = 'done'; }, false);</script>" ;
18
- var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) ) ;
18
+ var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) )
19
+ . WhenStable ( ) ;
19
20
var div = document . QuerySelector ( "#result" ) ;
20
- Assert . AreEqual ( "" , div . TextContent ) ;
21
- await Task . Delay ( 20 ) ;
22
21
Assert . AreEqual ( "done" , div . TextContent ) ;
23
22
}
24
23
@@ -164,8 +163,9 @@ public async Task BodyOnloadWorksWhenSetAsAttributeInitially()
164
163
window.foo = 1.0;
165
164
</script>
166
165
</body>" ;
167
- var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) ) ;
168
- await Task . Delay ( 30 ) ;
166
+ var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) )
167
+ . WhenStable ( ) ;
168
+
169
169
var value = document . ExecuteScript ( "window.foo" ) ;
170
170
Assert . AreEqual ( 5.0 , value ) ;
171
171
}
@@ -182,8 +182,8 @@ public async Task BodyOnloadWorksWhenSetAsAttributeLater()
182
182
document.body.setAttribute('onload', 'window.foo = 2+3');
183
183
</script>
184
184
</body>" ;
185
- var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) ) ;
186
- await Task . Delay ( 30 ) ;
185
+ var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) )
186
+ . WhenStable ( ) ;
187
187
var value = document . ExecuteScript ( "window.foo" ) ;
188
188
Assert . AreEqual ( 5.0 , value ) ;
189
189
}
@@ -203,8 +203,8 @@ public async Task SetTimeoutWithNormalFunction()
203
203
}, 0);
204
204
</script>
205
205
</body>" ;
206
- var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) ) ;
207
- await Task . Delay ( 100 ) ;
206
+ var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) )
207
+ . WhenStable ( ) ;
208
208
var result = service . GetOrCreateJint ( document ) . GetValue ( "completed" ) . AsBoolean ( ) ;
209
209
Assert . IsTrue ( result ) ;
210
210
}
@@ -226,12 +226,11 @@ public async Task DomContentLoadedEventIsFired_Issue50()
226
226
});
227
227
</script>
228
228
</body>" ;
229
- await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) )
230
- . Then ( document =>
231
- {
232
- var div = document . QuerySelector ( "div" ) ;
233
- Assert . AreEqual ( "Success!" , div ? . TextContent ) ;
234
- } ) ;
229
+ var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) )
230
+ . WhenStable ( ) ;
231
+
232
+ var div = document . QuerySelector ( "div" ) ;
233
+ Assert . AreEqual ( "Success!" , div ? . TextContent ) ;
235
234
}
236
235
237
236
[ Test ]
@@ -250,12 +249,11 @@ public async Task DocumentLoadEventIsFired_Issue42()
250
249
</script>
251
250
</body>" ;
252
251
var context = BrowsingContext . New ( cfg ) ;
253
- await context . OpenAsync ( m => m . Content ( html ) )
254
- . Then ( document =>
255
- {
256
- var div = document . QuerySelector ( "div" ) ;
257
- Assert . AreEqual ( "Success!" , div ? . TextContent ) ;
258
- } ) ;
252
+ var document = await context . OpenAsync ( m => m . Content ( html ) )
253
+ . WhenStable ( ) ;
254
+
255
+ var div = document . QuerySelector ( "div" ) ;
256
+ Assert . AreEqual ( "Success!" , div ? . TextContent ) ;
259
257
}
260
258
261
259
[ Test ]
@@ -271,8 +269,9 @@ public async Task SetTimeoutWithStringAsFunction()
271
269
setTimeout('completed = true;', 0);
272
270
</script>
273
271
</body>" ;
274
- var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) ) ;
275
- await Task . Delay ( 100 ) ;
272
+ var document = await BrowsingContext . New ( cfg ) . OpenAsync ( m => m . Content ( html ) )
273
+ . WhenStable ( ) ;
274
+
276
275
var result = service . GetOrCreateJint ( document ) . GetValue ( "completed" ) . AsBoolean ( ) ;
277
276
Assert . IsTrue ( result ) ;
278
277
}
0 commit comments