blob: 5b0d407c85e63a58c6ef72a00856183619eeb40b [file] [log] [blame]
<html>
<import src="../resources/chai.sky" />
<import src="../resources/mocha.sky" />
<import src="/gen/mojo/public/interfaces/application/shell.mojom.sky" as="shellMojom" />
<import src="/gen/mojo/public/sky/connection.sky" as="connection" />
<import src="/gen/mojo/public/sky/core.sky" as="core" />
<import src="/gen/mojo/services/network/public/interfaces/network_service.mojom.sky" as="net" />
<import src="/gen/mojo/services/network/public/interfaces/url_loader.mojom.sky" as="loader" />
<import src="/gen/mojo/services/public/sky/shell.sky" as="shell" />
<script>
const Shell = shell.Shell;
describe('Mojo network_service', function() {
this.enableTimeouts(false);
it('should be able to fetch text files', function(done) {
var shellHandle = internals.passShellProxyHandle();
var shellProxy = connection.bindHandleToProxy(shellHandle, shellMojom.Shell);
var shell = new Shell(shellProxy);
var netService = shell.connectToService(
"mojo:network_service", net.NetworkService);
var urlLoader;
netService.createURLLoader(function(urlLoaderProxy) {
urlLoader = urlLoaderProxy;
});
var urlRequest = new loader.URLRequest();
urlRequest.url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.txt";
urlRequest.method = "GET";
urlRequest.auto_follow_redirects = true;
var urlRequestPromise = urlLoader.start(urlRequest);
urlRequestPromise.then(function(result) {
if (result.response.error) {
assert.ok(false, "network request failed " + result.response.error.code + " "
+ result.response.error.description);
done();
}
console.log("url => " + result.response["url"]);
console.log("status_line => " + result.response["status_line"]);
console.log("mime_type => " + result.response["mime_type"]);
var start = Date.now();
while (Date.now() - start < 3) {}
var drainDataPromise = core.drainData(result.response.body);
drainDataPromise.then(function(result) {
console.log("read " + result.buffer.byteLength + " bytes");
done();
}).catch(function() {
assert.ok(false, "core.drainData failed");
done();
});
}).catch(function() {
assert.ok(false, "start failed");
done();
});
});
});
</script>
</html>