|
1 | 1 | namespace AngleSharp.Scripting.JavaScript.Tests
|
2 | 2 | {
|
3 | 3 | using AngleSharp.Dom.Html;
|
| 4 | + using AngleSharp.Extensions; |
4 | 5 | using AngleSharp.Scripting.JavaScript.Tests.Mocks;
|
5 | 6 | using NUnit.Framework;
|
6 | 7 | using System;
|
@@ -103,20 +104,23 @@ public async Task PerformXmlHttpRequestSynchronousToDelayedResponseShouldWork()
|
103 | 104 | public async Task PerformXmlHttpRequestAsynchronousToDelayedResponseShouldWork()
|
104 | 105 | {
|
105 | 106 | var message = "Hi!";
|
106 |
| - var cfg = Configuration.Default.WithJavaScript().WithDefaultLoader(requesters: new [] { new DelayedRequester(10, message) }); |
| 107 | + var req = new DelayedRequester(10, message); |
| 108 | + var cfg = Configuration.Default.WithJavaScript().WithDefaultLoader(requesters: new [] { req }); |
107 | 109 | var script = @"
|
108 | 110 | var xhr = new XMLHttpRequest();
|
109 | 111 | xhr.open('GET', 'http://example.com/');
|
110 | 112 | xhr.addEventListener('load', function (ev) {
|
111 |
| - document.querySelector('#result').textContent = xhr.responseText; |
| 113 | + var res = document.querySelector('#result'); |
| 114 | + res.textContent = xhr.responseText; |
| 115 | + res.dispatchEvent(new CustomEvent('xhrdone')); |
112 | 116 | }, false);
|
113 |
| -xhr.send(); |
114 |
| -document.querySelector('#result').textContent = xhr.responseText;"; |
| 117 | +xhr.send();"; |
115 | 118 | var html = "<!doctype html><div id=result></div><script>" + script + "</script>";
|
116 | 119 | var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));
|
117 | 120 | var result = document.QuerySelector("#result");
|
118 | 121 | Assert.AreEqual("", result.TextContent);
|
119 |
| - await Task.Delay(150); |
| 122 | + Assert.IsTrue(req.IsStarted); |
| 123 | + await result.AwaitEvent("xhrdone").ConfigureAwait(false); |
120 | 124 | Assert.AreEqual(message, result.TextContent);
|
121 | 125 | }
|
122 | 126 |
|
|
0 commit comments