blob: d195dabd4b0a7e70a3bdcccfa4902b33b129857f [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult(`Tests EventSource resource type and content.\n`);
await TestRunner.loadModule('network_test_runner');
await TestRunner.showPanel('network');
await TestRunner.evaluateInPagePromise(`
function output(message) {
if (!self._output)
self._output = [];
self._output.push('[page] ' + message);
}
function receiveEvent()
{
var callback;
var promise = new Promise((fulfill) => callback = fulfill);
var es = new EventSource("resources/event-stream.asis");
es.onmessage = onMessage;
es.onerror = onError;
return promise;
function onMessage(data)
{
output("got event: " + event.data);
}
function onError()
{
es.close();
callback();
}
}
`);
NetworkTestRunner.recordNetwork();
TestRunner.callFunctionInPageAsync('receiveEvent').then(step2);
async function step2() {
const output = await TestRunner.evaluateInPageAsync('JSON.stringify(self._output)');
TestRunner.addResults(JSON.parse(output));
var request1 = NetworkTestRunner.networkRequests().pop();
TestRunner.addResult(request1.url());
TestRunner.addResult('resource.type: ' + request1.resourceType());
TestRunner.assertTrue(!request1.failed, 'Resource loading failed.');
var { content, error, isEncoded } = await request1.requestContent();
TestRunner.addResult('resource.content after requesting content: ' + content);
TestRunner.completeTest();
}
})();