Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(406)

Unified Diff: sky/tests/services/network.sky

Issue 948463003: Added Sky Mojo embedder singleton, restored network test (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Added return types, removed ApplicationConnection list Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698