| 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 |