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

Side by Side Diff: mojo/edk/js/tests/sample_service_tests.js

Issue 814543006: Move //mojo/{public, edk} underneath //third_party (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 11 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
« no previous file with comments | « mojo/edk/js/tests/js_to_cpp_tests.js ('k') | mojo/edk/js/threading.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 define([
6 "console",
7 "mojo/edk/js/test/hexdump",
8 "gin/test/expect",
9 "mojo/public/interfaces/bindings/tests/sample_service.mojom",
10 "mojo/public/interfaces/bindings/tests/sample_import.mojom",
11 "mojo/public/interfaces/bindings/tests/sample_import2.mojom",
12 "mojo/public/js/core",
13 ], function(console, hexdump, expect, sample, imported, imported2, core) {
14
15 var global = this;
16
17 // Set this variable to true to print the binary message in hex.
18 var dumpMessageAsHex = false;
19
20 function makeFoo() {
21 var bar = new sample.Bar();
22 bar.alpha = 20;
23 bar.beta = 40;
24 bar.gamma = 60;
25 bar.type = sample.Bar.Type.VERTICAL;
26
27 var extra_bars = new Array(3);
28 for (var i = 0; i < extra_bars.length; ++i) {
29 var base = i * 100;
30 var type = i % 2 ?
31 sample.Bar.Type.VERTICAL : sample.Bar.Type.HORIZONTAL;
32 extra_bars[i] = new sample.Bar();
33 extra_bars[i].alpha = base;
34 extra_bars[i].beta = base + 20;
35 extra_bars[i].gamma = base + 40;
36 extra_bars[i].type = type;
37 }
38
39 var data = new Array(10);
40 for (var i = 0; i < data.length; ++i) {
41 data[i] = data.length - i;
42 }
43
44 var source = 0xFFFF; // Invent a dummy handle.
45
46 var foo = new sample.Foo();
47 foo.name = "foopy";
48 foo.x = 1;
49 foo.y = 2;
50 foo.a = false;
51 foo.b = true;
52 foo.c = false;
53 foo.bar = bar;
54 foo.extra_bars = extra_bars;
55 foo.data = data;
56 foo.source = source;
57 return foo;
58 }
59
60 // Check that the given |Foo| is identical to the one made by |MakeFoo()|.
61 function checkFoo(foo) {
62 expect(foo.name).toBe("foopy");
63 expect(foo.x).toBe(1);
64 expect(foo.y).toBe(2);
65 expect(foo.a).toBeFalsy();
66 expect(foo.b).toBeTruthy();
67 expect(foo.c).toBeFalsy();
68 expect(foo.bar.alpha).toBe(20);
69 expect(foo.bar.beta).toBe(40);
70 expect(foo.bar.gamma).toBe(60);
71 expect(foo.bar.type).toBe(sample.Bar.Type.VERTICAL);
72
73 expect(foo.extra_bars.length).toBe(3);
74 for (var i = 0; i < foo.extra_bars.length; ++i) {
75 var base = i * 100;
76 var type = i % 2 ?
77 sample.Bar.Type.VERTICAL : sample.Bar.Type.HORIZONTAL;
78 expect(foo.extra_bars[i].alpha).toBe(base);
79 expect(foo.extra_bars[i].beta).toBe(base + 20);
80 expect(foo.extra_bars[i].gamma).toBe(base + 40);
81 expect(foo.extra_bars[i].type).toBe(type);
82 }
83
84 expect(foo.data.length).toBe(10);
85 for (var i = 0; i < foo.data.length; ++i)
86 expect(foo.data[i]).toBe(foo.data.length - i);
87
88 expect(foo.source).toBe(0xFFFF);
89 }
90
91 // Check that values are set to the defaults if we don't override them.
92 function checkDefaultValues() {
93 var bar = new sample.Bar();
94 expect(bar.alpha).toBe(255);
95 expect(bar.type).toBe(sample.Bar.Type.VERTICAL);
96
97 var foo = new sample.Foo();
98 expect(foo.name).toBe("Fooby");
99 expect(foo.a).toBeTruthy();
100 expect(foo.data).toBeNull();
101
102 var defaults = new sample.DefaultsTest();
103 expect(defaults.a0).toBe(-12);
104 expect(defaults.a1).toBe(sample.kTwelve);
105 expect(defaults.a2).toBe(1234);
106 expect(defaults.a3).toBe(34567);
107 expect(defaults.a4).toBe(123456);
108 expect(defaults.a5).toBe(3456789012);
109 expect(defaults.a6).toBe(-111111111111);
110 // JS doesn't have a 64 bit integer type so this is just checking that the
111 // expected and actual values have the same closest double value.
112 expect(defaults.a7).toBe(9999999999999999999);
113 expect(defaults.a8).toBe(0x12345);
114 expect(defaults.a9).toBe(-0x12345);
115 expect(defaults.a10).toBe(1234);
116 expect(defaults.a11).toBe(true);
117 expect(defaults.a12).toBe(false);
118 expect(defaults.a13).toBe(123.25);
119 expect(defaults.a14).toBe(1234567890.123);
120 expect(defaults.a15).toBe(1E10);
121 expect(defaults.a16).toBe(-1.2E+20);
122 expect(defaults.a17).toBe(1.23E-20);
123 expect(defaults.a20).toBe(sample.Bar.Type.BOTH);
124 expect(defaults.a21).toBeNull();
125 expect(defaults.a22).toBeTruthy();
126 expect(defaults.a22.shape).toBe(imported.Shape.RECTANGLE);
127 expect(defaults.a22.color).toBe(imported2.Color.BLACK);
128 expect(defaults.a21).toBeNull();
129 expect(defaults.a23).toBe(0xFFFFFFFFFFFFFFFF);
130 expect(defaults.a24).toBe(0x123456789);
131 expect(defaults.a25).toBe(-0x123456789);
132 }
133
134 function ServiceImpl() {
135 }
136
137 ServiceImpl.prototype = Object.create(sample.Service.stubClass.prototype);
138
139 ServiceImpl.prototype.frobinate = function(foo, baz, port) {
140 checkFoo(foo);
141 expect(baz).toBe(sample.Service.BazOptions.EXTRA);
142 expect(core.isHandle(port)).toBeTruthy();
143 global.result = "PASS";
144 };
145
146 function SimpleMessageReceiver() {
147 }
148
149 SimpleMessageReceiver.prototype.accept = function(message) {
150 if (dumpMessageAsHex) {
151 var uint8Array = new Uint8Array(message.buffer.arrayBuffer);
152 console.log(hexdump.dumpArray(uint8Array));
153 }
154 // Imagine some IPC happened here.
155 var serviceImpl = new ServiceImpl();
156 serviceImpl.accept(message);
157 };
158
159 var serviceProxy = new sample.Service.proxyClass;
160 serviceProxy.receiver_ = new SimpleMessageReceiver;
161
162 checkDefaultValues();
163
164 var foo = makeFoo();
165 checkFoo(foo);
166
167 var pipe = core.createMessagePipe();
168 serviceProxy.frobinate(foo, sample.Service.BazOptions.EXTRA, pipe.handle0);
169 expect(core.close(pipe.handle0)).toBe(core.RESULT_OK);
170 expect(core.close(pipe.handle1)).toBe(core.RESULT_OK);
171 });
OLDNEW
« no previous file with comments | « mojo/edk/js/tests/js_to_cpp_tests.js ('k') | mojo/edk/js/threading.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698