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

Side by Side Diff: third_party/WebKit/LayoutTests/mojo/connection.html

Issue 2891193002: Mojo JS bindings: switch all mojo/ layout tests to use the new mode. (Closed)
Patch Set: . Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script> 2 <script src="../resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script> 3 <script src="../resources/testharnessreport.js"></script>
4 <script src="../resources/mojo-helpers.js"></script> 4 <script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></scr ipt>
5 <script src="file:///gen/mojo/public/interfaces/bindings/tests/sample_interfaces .mojom.js"></script>
6 <script src="file:///gen/mojo/public/interfaces/bindings/tests/sample_service.mo jom.js"></script>
5 <script> 7 <script>
6 'use strict'; 8 'use strict';
7 9
8 setup({ explicit_done: true }); 10 promise_test(async () => {
11 function ServiceImpl() {
12 }
9 13
10 define([ 14 ServiceImpl.prototype.frobinate = function(foo, baz, port) {
11 'mojo/public/js/bindings', 15 assert_equals(foo.name, "Example name");
12 'mojo/public/js/core', 16 assert_equals(baz, sample.Service.BazOptions.REGULAR);
13 'mojo/public/interfaces/bindings/tests/sample_interfaces.mojom', 17 assert_true(port.ptr.isBound());
14 'mojo/public/interfaces/bindings/tests/sample_service.mojom', 18 port.ptr.reset();
15 ], function(bindings, core, sample_interfaces, sample_service) {
16 19
17 promise_test(async () => { 20 return Promise.resolve({result: 42});
18 function ServiceImpl() { 21 };
19 }
20 22
21 ServiceImpl.prototype.frobinate = function(foo, baz, port) { 23 var service = new sample.ServicePtr();
22 assert_equals(foo.name, "Example name"); 24 var serviceBinding = new mojo.Binding(
23 assert_equals(baz, sample_service.Service.BazOptions.REGULAR); 25 sample.Service, new ServiceImpl(), mojo.makeRequest(service));
24 assert_true(port.ptr.isBound()); 26 var sourcePipe = Mojo.createMessagePipe();
25 port.ptr.reset(); 27 var port = new sample.PortPtr();
28 var portRequest = mojo.makeRequest(port);
26 29
27 return Promise.resolve({result: 42}); 30 var foo = new sample.Foo();
28 }; 31 foo.bar = new sample.Bar();
32 foo.name = "Example name";
33 foo.source = sourcePipe.handle0;
29 34
30 var service = new sample_service.ServicePtr(); 35 assert_equals((await service.frobinate(
31 var serviceBinding = new bindings.Binding(sample_service.Service, 36 foo, sample.Service.BazOptions.REGULAR, port)).result, 42);
32 new ServiceImpl(),
33 bindings.makeRequest(service));
34 var sourcePipe = core.createMessagePipe();
35 var port = new sample_service.PortPtr();
36 var portRequest = bindings.makeRequest(port);
37 37
38 var foo = new sample_service.Foo(); 38 service.ptr.reset();
39 foo.bar = new sample_service.Bar(); 39 serviceBinding.close();
40 foo.name = "Example name";
41 foo.source = sourcePipe.handle0;
42 40
43 assert_equals((await service.frobinate( 41 // sourcePipe.handle1 hasn't been closed yet.
44 foo, sample_service.Service.BazOptions.REGULAR, port)).result, 42); 42 sourcePipe.handle1.close();
45 43
46 service.ptr.reset(); 44 // portRequest.handle hasn't been closed yet.
47 serviceBinding.close(); 45 portRequest.handle.close();
46 }, 'client server');
48 47
49 // sourcePipe.handle1 hasn't been closed yet. 48 promise_test(async () => {
50 assert_equals(core.close(sourcePipe.handle1), core.RESULT_OK); 49 var service = new sample.ServicePtr();
50 // Discard the interface request.
51 var interfaceRequest = mojo.makeRequest(service);
52 interfaceRequest.close();
51 53
52 // portRequest.handle hasn't been closed yet. 54 try {
53 assert_equals(core.close(portRequest.handle), core.RESULT_OK); 55 await service.frobinate(null, sample.Service.BazOptions.REGULAR, null);
54 }, 'client server'); 56 assert_unreached();
57 } catch (e) {
58 assert_not_equals(e, null);
59 }
60 }, 'write to closed pipe');
55 61
56 promise_test(async () => { 62 promise_test(async () => {
57 var service = new sample_service.ServicePtr(); 63 function ProviderImpl() {
58 // Discard the interface request. 64 }
59 var interfaceRequest = bindings.makeRequest(service);
60 interfaceRequest.close();
61 65
62 try { 66 ProviderImpl.prototype.echoString = function(a) {
63 await service.frobinate( 67 return Promise.resolve({a: a});
64 null, sample_service.Service.BazOptions.REGULAR, null); 68 };
65 assert_unreached();
66 } catch (e) {
67 assert_not_equals(e, null);
68 }
69 }, 'write to closed pipe');
70 69
71 promise_test(async () => { 70 ProviderImpl.prototype.echoStrings = function(a, b) {
72 function ProviderImpl() { 71 return Promise.resolve({a: a, b: b});
73 } 72 };
74 73
75 ProviderImpl.prototype.echoString = function(a) { 74 var provider = new sample.ProviderPtr();
76 return Promise.resolve({a: a}); 75 var providerBinding = new mojo.Binding(
77 }; 76 sample.Provider, new ProviderImpl(), mojo.makeRequest(provider));
77 assert_equals((await provider.echoString("hello")).a, "hello");
78 var response = await provider.echoStrings("hello", "world");
79 assert_equals(response.a, "hello");
80 assert_equals(response.b, "world");
81 }, 'request response');
78 82
79 ProviderImpl.prototype.echoStrings = function(a, b) {
80 return Promise.resolve({a: a, b: b});
81 };
82
83 var provider = new sample_interfaces.ProviderPtr();
84 var providerBinding = new bindings.Binding(sample_interfaces.Provider,
85 new ProviderImpl(),
86 bindings.makeRequest(provider));
87 assert_equals((await provider.echoString("hello")).a, "hello");
88 var response = await provider.echoStrings("hello", "world");
89 assert_equals(response.a, "hello");
90 assert_equals(response.b, "world");
91 }, 'request response');
92
93 done();
94 });
95 </script> 83 </script>
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/mojo/codec.html ('k') | third_party/WebKit/LayoutTests/mojo/interface_ptr.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698