Index: sky/tests/services/network.sky |
diff --git a/sky/tests/services/network.sky b/sky/tests/services/network.sky |
index 55ab5acbd8ddd64b46799b00c13e99d9497169e6..58a6ab94d37d71f25b0e6935cae440bac3411406 100644 |
--- a/sky/tests/services/network.sky |
+++ b/sky/tests/services/network.sky |
@@ -1,62 +1,46 @@ |
-<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" /> |
+#!mojo mojo:sky_viewer |
+<sky> |
<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.takeShellProxyHandle(); |
- 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(); |
- }); |
- }); |
-}); |
+import '/sky/framework/embedder.dart'; |
+import 'dart:async'; |
+import 'dart:mojo_bindings'; |
+import 'dart:mojo_core'; |
+import 'dart:typed_data'; |
+import "dart:sky.internals" as internals; |
+ |
+import 'package:mojo/services/network/public/interfaces/network_service.mojom.dart'; |
+import 'package:mojo/services/network/public/interfaces/url_loader.mojom.dart'; |
+ |
+Future<String> run(url) async { |
+ var networkService = new NetworkServiceProxy.unbound(); |
+ embedder.connectToService("mojo:network_service", networkService); |
+ |
+ var urlLoaderProxy = new UrlLoaderProxy.unbound(); |
+ networkService.createUrlLoader(urlLoaderProxy); |
+ |
+ var urlRequest = new UrlRequest() |
+ ..url = url |
+ ..autoFollowRedirects = true; |
+ var urlResponse = await urlLoaderProxy.start(urlRequest); |
+ |
+ urlLoaderProxy.close(); |
+ networkService.close(); |
+ |
+ print("url => ${urlResponse.response.url}"); |
+ print("status_line => ${urlResponse.response.statusLine}"); |
+ print("mime_type => ${urlResponse.response.mimeType}"); |
+ |
+ ByteData bodyData = |
+ await DataPipeDrainer.drainHandle(urlResponse.response.body); |
+ print("read ${bodyData.lengthInBytes} bytes"); |
+ |
+ return new String.fromCharCodes(new Uint8List.view(bodyData.buffer)); |
+} |
+ |
+main() async { |
+ var url = "http://127.0.0.1:8000/sky/tests/services/resources/pass.txt"; |
+ var result = await run(url); |
+ internals.notifyTestComplete(result); |
+} |
</script> |
-</html> |
+</sky> |