OLD | NEW |
---|---|
1 <html> | 1 #!mojo mojo:sky_viewer |
2 <import src="../resources/chai.sky" /> | 2 <sky> |
3 <import src="../resources/mocha.sky" /> | |
4 <import src="/gen/mojo/public/interfaces/application/shell.mojom.sky" as="shellM ojom" /> | |
5 <import src="/gen/mojo/public/sky/connection.sky" as="connection" /> | |
6 <import src="/gen/mojo/public/sky/core.sky" as="core" /> | |
7 <import src="/gen/mojo/services/network/public/interfaces/network_service.mojom. sky" as="net" /> | |
8 <import src="/gen/mojo/services/network/public/interfaces/url_loader.mojom.sky" as="loader" /> | |
9 <import src="/gen/mojo/services/public/sky/shell.sky" as="shell" /> | |
10 <script> | 3 <script> |
11 const Shell = shell.Shell; | 4 import '/sky/framework/embedder.dart'; |
5 import 'dart:async'; | |
6 import 'dart:mojo_bindings'; | |
7 import 'dart:mojo_core'; | |
8 import 'dart:typed_data'; | |
9 import "dart:sky.internals" as internals; | |
12 | 10 |
13 describe('Mojo network_service', function() { | 11 import 'package:mojo/services/network/public/interfaces/network_service.mojom.da rt'; |
14 this.enableTimeouts(false); | 12 import 'package:mojo/services/network/public/interfaces/url_loader.mojom.dart'; |
15 | 13 |
16 it('should be able to fetch text files', function(done) { | 14 run(url) async { |
abarth-chromium
2015/02/20 22:51:38
Type pls
hansmuller1
2015/02/20 22:58:54
Done.
| |
17 var shellHandle = internals.takeShellProxyHandle(); | 15 var networkService = new NetworkServiceProxy.unbound(); |
18 var shellProxy = connection.bindHandleToProxy(shellHandle, shellMojom.Shell) ; | 16 embedder.connectToService("mojo:network_service", networkService); |
19 var shell = new Shell(shellProxy); | |
20 var netService = shell.connectToService( | |
21 "mojo:network_service", net.NetworkService); | |
22 | 17 |
23 var urlLoader; | 18 var urlLoaderProxy = new UrlLoaderProxy.unbound(); |
24 netService.createURLLoader(function(urlLoaderProxy) { | 19 networkService.createUrlLoader(urlLoaderProxy); |
25 urlLoader = urlLoaderProxy; | |
26 }); | |
27 | 20 |
28 var urlRequest = new loader.URLRequest(); | 21 var urlRequest = new UrlRequest() |
29 urlRequest.url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.tx t"; | 22 ..url = url |
30 urlRequest.method = "GET"; | 23 ..autoFollowRedirects = true; |
31 urlRequest.auto_follow_redirects = true; | 24 var urlResponse = await urlLoaderProxy.start(urlRequest); |
32 | 25 |
33 var urlRequestPromise = urlLoader.start(urlRequest); | 26 urlLoaderProxy.close(); |
34 urlRequestPromise.then(function(result) { | 27 networkService.close(); |
35 if (result.response.error) { | |
36 assert.ok(false, "network request failed " + result.response.error.code + " " | |
37 + result.response.error.description); | |
38 done(); | |
39 } | |
40 console.log("url => " + result.response["url"]); | |
41 console.log("status_line => " + result.response["status_line"]); | |
42 console.log("mime_type => " + result.response["mime_type"]); | |
43 | 28 |
44 var start = Date.now(); | 29 print("url => ${urlResponse.response.url}"); |
45 while (Date.now() - start < 3) {} | 30 print("status_line => ${urlResponse.response.statusLine}"); |
31 print("mime_type => ${urlResponse.response.mimeType}"); | |
46 | 32 |
47 var drainDataPromise = core.drainData(result.response.body); | 33 ByteData bodyData = |
48 drainDataPromise.then(function(result) { | 34 await DataPipeDrainer.drainHandle(urlResponse.response.body); |
49 console.log("read " + result.buffer.byteLength + " bytes"); | 35 print("read ${bodyData.lengthInBytes} bytes"); |
50 done(); | 36 |
51 }).catch(function() { | 37 return new String.fromCharCodes(new Uint8List.view(bodyData.buffer)); |
52 assert.ok(false, "core.drainData failed"); | 38 } |
53 done(); | 39 |
54 }); | 40 main() async { |
55 }).catch(function() { | 41 var url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.txt"; |
56 assert.ok(false, "start failed"); | 42 var result = await run(url); |
57 done(); | 43 internals.notifyTestComplete(result); |
58 }); | 44 } |
59 }); | |
60 }); | |
61 </script> | 45 </script> |
62 </html> | 46 </sky> |
OLD | NEW |