Beispiel #1
0
        public async Task PerformXmlHttpRequestAsynchronousToDelayedResponseShouldWork()
        {
            var message  = "Hi!";
            var req      = new DelayedRequester(10, message);
            var cfg      = Configuration.Default.WithJs().With(req).WithDefaultLoader();
            var script   = @"
var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'http://example.com/');
xhr.addEventListener('load', function (ev) { 
    var res = document.querySelector('#result');
    res.textContent = xhr.responseText;
    res.dispatchEvent(new CustomEvent('xhrdone'));
}, false);
xhr.send();";
            var html     = "<!doctype html><div id=result></div><script>" + script + "</script>";
            var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));

            var result = document.QuerySelector("#result");

            Assert.AreEqual("", result.TextContent);
            Assert.IsTrue(req.IsStarted);
            await result.AwaitEventAsync("xhrdone").ConfigureAwait(false);

            Assert.AreEqual(message, result.TextContent);
        }
Beispiel #2
0
        public async Task JqueryWithAjaxToDelayedResponse()
        {
            var message  = "Hi!";
            var req      = new DelayedRequester(10, message);
            var cfg      = Configuration.Default.WithJs().With(req).WithDefaultLoader();
            var sources  = new [] { Constants.Jquery2_1_4, @"
$.ajax('http://example.com/', {
    success: function (data, status, xhr) { 
        var res = document.querySelector('#result');
        res.textContent = xhr.responseText;
        res.dispatchEvent(new CustomEvent('xhrdone'));
    }
});" };
            var scripts  = String.Join("</script><script>", sources);
            var html     = "<!doctype html><div id=result></div><script>" + scripts + "</script>";
            var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));

            var result = document.QuerySelector("#result");

            Assert.AreEqual("", result.TextContent);
            Assert.IsTrue(req.IsStarted);
            await result.AwaitEventAsync("xhrdone").ConfigureAwait(false);

            Assert.AreEqual(message, result.TextContent);
        }
Beispiel #3
0
        public async Task PerformXmlHttpRequestSynchronousToDelayedResponseShouldWork()
        {
            var message  = "Hi!";
            var req      = new DelayedRequester(10, message);
            var cfg      = Configuration.Default.WithJs().With(req).WithDefaultLoader();
            var script   = @"
var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'http://example.com/', false);
xhr.send();
document.querySelector('#result').textContent = xhr.responseText;";
            var html     = "<!doctype html><div id=result></div><script>" + script + "</script>";
            var document = await BrowsingContext.New(cfg).OpenAsync(m => m.Content(html));

            var result = document.QuerySelector("#result");

            Assert.AreEqual(message, result.TextContent);
        }