OLD | NEW |
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_service.mo
jom.js"></script> |
5 <script> | 6 <script> |
6 'use strict'; | 7 'use strict'; |
7 | 8 |
8 setup({ explicit_done: true }); | 9 // Checks that values are set to the defaults if we don't override them. |
| 10 test(() => { |
| 11 var bar = new sample.Bar(); |
| 12 assert_equals(bar.alpha, 255); |
| 13 assert_equals(bar.type, sample.Bar.Type.VERTICAL); |
9 | 14 |
10 define([ | 15 var foo = new sample.Foo(); |
11 'mojo/public/interfaces/bindings/tests/sample_service.mojom', | 16 assert_equals(foo.name, "Fooby"); |
12 'mojo/public/interfaces/bindings/tests/sample_import.mojom', | 17 assert_true(foo.a); |
13 'mojo/public/interfaces/bindings/tests/sample_import2.mojom', | 18 assert_equals(foo.data, null); |
14 'mojo/public/js/bindings', | |
15 'mojo/public/js/core', | |
16 ], function(sample, imported, imported2, bindings, core) { | |
17 | 19 |
18 // Checks that values are set to the defaults if we don't override them. | 20 var defaults = new sample.DefaultsTest(); |
19 test(() => { | 21 assert_equals(defaults.a0, -12); |
20 var bar = new sample.Bar(); | 22 assert_equals(defaults.a1, sample.kTwelve); |
21 assert_equals(bar.alpha, 255); | 23 assert_equals(defaults.a2, 1234); |
22 assert_equals(bar.type, sample.Bar.Type.VERTICAL); | 24 assert_equals(defaults.a3, 34567); |
| 25 assert_equals(defaults.a4, 123456); |
| 26 assert_equals(defaults.a5, 3456789012); |
| 27 assert_equals(defaults.a6, -111111111111); |
| 28 // JS doesn't have a 64 bit integer type so this is just checking that the |
| 29 // expected and actual values have the same closest double value. |
| 30 assert_equals(defaults.a7, 9999999999999999999); |
| 31 assert_equals(defaults.a8, 0x12345); |
| 32 assert_equals(defaults.a9, -0x12345); |
| 33 assert_equals(defaults.a10, 1234); |
| 34 assert_true(defaults.a11); |
| 35 assert_false(defaults.a12); |
| 36 assert_equals(defaults.a13, 123.25); |
| 37 assert_equals(defaults.a14, 1234567890.123); |
| 38 assert_equals(defaults.a15, 1E10); |
| 39 assert_equals(defaults.a16, -1.2E+20); |
| 40 assert_equals(defaults.a17, 1.23E-20); |
| 41 assert_equals(defaults.a20, sample.Bar.Type.BOTH); |
| 42 assert_equals(defaults.a21, null); |
| 43 assert_true(!!defaults.a22); |
| 44 assert_equals(defaults.a22.shape, imported.Shape.RECTANGLE); |
| 45 assert_equals(defaults.a22.color, imported.Color.BLACK); |
| 46 assert_equals(defaults.a23, 0xFFFFFFFFFFFFFFFF); |
| 47 assert_equals(defaults.a24, 0x123456789); |
| 48 assert_equals(defaults.a25, -0x123456789); |
| 49 }, 'default values'); |
23 | 50 |
24 var foo = new sample.Foo(); | 51 promise_test(async () => { |
25 assert_equals(foo.name, "Fooby"); | 52 function ServiceImpl() { |
26 assert_true(foo.a); | |
27 assert_equals(foo.data, null); | |
28 | |
29 var defaults = new sample.DefaultsTest(); | |
30 assert_equals(defaults.a0, -12); | |
31 assert_equals(defaults.a1, sample.kTwelve); | |
32 assert_equals(defaults.a2, 1234); | |
33 assert_equals(defaults.a3, 34567); | |
34 assert_equals(defaults.a4, 123456); | |
35 assert_equals(defaults.a5, 3456789012); | |
36 assert_equals(defaults.a6, -111111111111); | |
37 // JS doesn't have a 64 bit integer type so this is just checking that the | |
38 // expected and actual values have the same closest double value. | |
39 assert_equals(defaults.a7, 9999999999999999999); | |
40 assert_equals(defaults.a8, 0x12345); | |
41 assert_equals(defaults.a9, -0x12345); | |
42 assert_equals(defaults.a10, 1234); | |
43 assert_true(defaults.a11); | |
44 assert_false(defaults.a12); | |
45 assert_equals(defaults.a13, 123.25); | |
46 assert_equals(defaults.a14, 1234567890.123); | |
47 assert_equals(defaults.a15, 1E10); | |
48 assert_equals(defaults.a16, -1.2E+20); | |
49 assert_equals(defaults.a17, 1.23E-20); | |
50 assert_equals(defaults.a20, sample.Bar.Type.BOTH); | |
51 assert_equals(defaults.a21, null); | |
52 assert_true(!!defaults.a22); | |
53 assert_equals(defaults.a22.shape, imported.Shape.RECTANGLE); | |
54 assert_equals(defaults.a22.color, imported2.Color.BLACK); | |
55 assert_equals(defaults.a23, 0xFFFFFFFFFFFFFFFF); | |
56 assert_equals(defaults.a24, 0x123456789); | |
57 assert_equals(defaults.a25, -0x123456789); | |
58 }, 'default values'); | |
59 | |
60 promise_test(async () => { | |
61 function ServiceImpl() { | |
62 } | |
63 | |
64 ServiceImpl.prototype.frobinate = function(foo, baz, port) { | |
65 checkFoo(foo); | |
66 assert_equals(baz, sample.Service.BazOptions.EXTRA); | |
67 assert_true(port.ptr.isBound()); | |
68 return Promise.resolve({result: 1234}); | |
69 }; | |
70 | |
71 var foo = makeFoo(); | |
72 checkFoo(foo); | |
73 | |
74 var service = new sample.ServicePtr(); | |
75 var request = bindings.makeRequest(service); | |
76 var serviceBinding = new bindings.Binding( | |
77 sample.Service, new ServiceImpl(), request); | |
78 | |
79 var port = new sample.PortPtr(); | |
80 bindings.makeRequest(port); | |
81 assert_equals((await service.frobinate(foo, | |
82 sample.Service.BazOptions.EXTRA, port)).result, 1234); | |
83 | |
84 }, 'sample service'); | |
85 | |
86 done(); | |
87 | |
88 function makeFoo() { | |
89 var bar = new sample.Bar(); | |
90 bar.alpha = 20; | |
91 bar.beta = 40; | |
92 bar.gamma = 60; | |
93 bar.type = sample.Bar.Type.VERTICAL; | |
94 | |
95 var extra_bars = new Array(3); | |
96 for (var i = 0; i < extra_bars.length; ++i) { | |
97 var base = i * 100; | |
98 var type = i % 2 ? | |
99 sample.Bar.Type.VERTICAL : sample.Bar.Type.HORIZONTAL; | |
100 extra_bars[i] = new sample.Bar(); | |
101 extra_bars[i].alpha = base; | |
102 extra_bars[i].beta = base + 20; | |
103 extra_bars[i].gamma = base + 40; | |
104 extra_bars[i].type = type; | |
105 } | |
106 | |
107 var data = new Array(10); | |
108 for (var i = 0; i < data.length; ++i) { | |
109 data[i] = data.length - i; | |
110 } | |
111 | |
112 var foo = new sample.Foo(); | |
113 foo.name = "foopy"; | |
114 foo.x = 1; | |
115 foo.y = 2; | |
116 foo.a = false; | |
117 foo.b = true; | |
118 foo.c = false; | |
119 foo.bar = bar; | |
120 foo.extra_bars = extra_bars; | |
121 foo.data = data; | |
122 | |
123 foo.source = core.createMessagePipe().handle0; | |
124 | |
125 return foo; | |
126 } | 53 } |
127 | 54 |
128 // Checks that the given |Foo| is identical to the one made by |makeFoo()|. | 55 ServiceImpl.prototype.frobinate = function(foo, baz, port) { |
129 function checkFoo(foo) { | 56 checkFoo(foo); |
130 assert_equals(foo.name, "foopy"); | 57 assert_equals(baz, sample.Service.BazOptions.EXTRA); |
131 assert_equals(foo.x, 1); | 58 assert_true(port.ptr.isBound()); |
132 assert_equals(foo.y, 2); | 59 return Promise.resolve({result: 1234}); |
133 assert_false(foo.a); | 60 }; |
134 assert_true(foo.b); | |
135 assert_false(foo.c); | |
136 assert_equals(foo.bar.alpha, 20); | |
137 assert_equals(foo.bar.beta, 40); | |
138 assert_equals(foo.bar.gamma, 60); | |
139 assert_equals(foo.bar.type, sample.Bar.Type.VERTICAL); | |
140 | 61 |
141 assert_equals(foo.extra_bars.length, 3); | 62 var foo = makeFoo(); |
142 for (var i = 0; i < foo.extra_bars.length; ++i) { | 63 checkFoo(foo); |
143 var base = i * 100; | |
144 var type = i % 2 ? | |
145 sample.Bar.Type.VERTICAL : sample.Bar.Type.HORIZONTAL; | |
146 assert_equals(foo.extra_bars[i].alpha, base); | |
147 assert_equals(foo.extra_bars[i].beta, base + 20); | |
148 assert_equals(foo.extra_bars[i].gamma, base + 40); | |
149 assert_equals(foo.extra_bars[i].type, type); | |
150 } | |
151 | 64 |
152 assert_equals(foo.data.length, 10); | 65 var service = new sample.ServicePtr(); |
153 for (var i = 0; i < foo.data.length; ++i) | 66 var request = mojo.makeRequest(service); |
154 assert_equals(foo.data[i], foo.data.length -i); | 67 var serviceBinding = new mojo.Binding( |
| 68 sample.Service, new ServiceImpl(), request); |
155 | 69 |
156 assert_true(core.isHandle(foo.source)); | 70 var port = new sample.PortPtr(); |
| 71 mojo.makeRequest(port); |
| 72 assert_equals((await service.frobinate(foo, sample.Service.BazOptions.EXTRA, |
| 73 port)).result, 1234); |
| 74 |
| 75 }, 'sample service'); |
| 76 |
| 77 done(); |
| 78 |
| 79 function makeFoo() { |
| 80 var bar = new sample.Bar(); |
| 81 bar.alpha = 20; |
| 82 bar.beta = 40; |
| 83 bar.gamma = 60; |
| 84 bar.type = sample.Bar.Type.VERTICAL; |
| 85 |
| 86 var extraBars = new Array(3); |
| 87 for (var i = 0; i < extraBars.length; ++i) { |
| 88 var base = i * 100; |
| 89 var type = i % 2 ? sample.Bar.Type.VERTICAL : sample.Bar.Type.HORIZONTAL; |
| 90 extraBars[i] = new sample.Bar(); |
| 91 extraBars[i].alpha = base; |
| 92 extraBars[i].beta = base + 20; |
| 93 extraBars[i].gamma = base + 40; |
| 94 extraBars[i].type = type; |
157 } | 95 } |
158 }); | 96 |
| 97 var data = new Array(10); |
| 98 for (var i = 0; i < data.length; ++i) { |
| 99 data[i] = data.length - i; |
| 100 } |
| 101 |
| 102 var foo = new sample.Foo(); |
| 103 foo.name = "foopy"; |
| 104 foo.x = 1; |
| 105 foo.y = 2; |
| 106 foo.a = false; |
| 107 foo.b = true; |
| 108 foo.c = false; |
| 109 foo.bar = bar; |
| 110 foo.extraBars = extraBars; |
| 111 foo.data = data; |
| 112 |
| 113 foo.source = Mojo.createMessagePipe().handle0; |
| 114 |
| 115 return foo; |
| 116 } |
| 117 |
| 118 // Checks that the given |Foo| is identical to the one made by |makeFoo()|. |
| 119 function checkFoo(foo) { |
| 120 assert_equals(foo.name, "foopy"); |
| 121 assert_equals(foo.x, 1); |
| 122 assert_equals(foo.y, 2); |
| 123 assert_false(foo.a); |
| 124 assert_true(foo.b); |
| 125 assert_false(foo.c); |
| 126 assert_equals(foo.bar.alpha, 20); |
| 127 assert_equals(foo.bar.beta, 40); |
| 128 assert_equals(foo.bar.gamma, 60); |
| 129 assert_equals(foo.bar.type, sample.Bar.Type.VERTICAL); |
| 130 |
| 131 assert_equals(foo.extraBars.length, 3); |
| 132 for (var i = 0; i < foo.extraBars.length; ++i) { |
| 133 var base = i * 100; |
| 134 var type = i % 2 ? sample.Bar.Type.VERTICAL : sample.Bar.Type.HORIZONTAL; |
| 135 assert_equals(foo.extraBars[i].alpha, base); |
| 136 assert_equals(foo.extraBars[i].beta, base + 20); |
| 137 assert_equals(foo.extraBars[i].gamma, base + 40); |
| 138 assert_equals(foo.extraBars[i].type, type); |
| 139 } |
| 140 |
| 141 assert_equals(foo.data.length, 10); |
| 142 for (var i = 0; i < foo.data.length; ++i) |
| 143 assert_equals(foo.data[i], foo.data.length -i); |
| 144 |
| 145 assert_true(foo.source instanceof MojoHandle); |
| 146 } |
159 </script> | 147 </script> |
OLD | NEW |