| 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 Future<String> run(url) async { |
| 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 |