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

Side by Side Diff: mojo/public/js/bindings/codec_unittests.js

Issue 486203003: Mojo JS bindings generator doesn't generate import-qualified struct references (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: resync Created 6 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 define([ 5 define([
6 "gin/test/expect", 6 "gin/test/expect",
7 "mojo/public/js/bindings/codec", 7 "mojo/public/js/bindings/codec",
8 "mojo/public/interfaces/bindings/tests/rect.mojom",
8 "mojo/public/interfaces/bindings/tests/sample_service.mojom", 9 "mojo/public/interfaces/bindings/tests/sample_service.mojom",
9 ], function(expect, codec, sample) { 10 "mojo/public/interfaces/bindings/tests/test_structs.mojom",
11 ], function(expect, codec, rect, sample, structs) {
10 testBar(); 12 testBar();
11 testFoo(); 13 testFoo();
14 testNamedRegion();
12 testTypes(); 15 testTypes();
13 testAlign(); 16 testAlign();
14 testUtf8(); 17 testUtf8();
15 this.result = "PASS"; 18 this.result = "PASS";
16 19
17 function testBar() { 20 function testBar() {
18 var bar = new sample.Bar(); 21 var bar = new sample.Bar();
19 bar.alpha = 1; 22 bar.alpha = 1;
20 bar.beta = 2; 23 bar.beta = 2;
21 bar.gamma = 3; 24 bar.gamma = 3;
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 expect(foo2.bar).toEqual(foo.bar); 139 expect(foo2.bar).toEqual(foo.bar);
137 expect(foo2.data).toEqual(foo.data); 140 expect(foo2.data).toEqual(foo.data);
138 141
139 expect(foo2.extra_bars).toEqual(foo.extra_bars); 142 expect(foo2.extra_bars).toEqual(foo.extra_bars);
140 expect(foo2.name).toBe(foo.name); 143 expect(foo2.name).toBe(foo.name);
141 expect(foo2.source).toEqual(foo.source); 144 expect(foo2.source).toEqual(foo.source);
142 145
143 expect(foo2.array_of_bools).toEqual(foo.array_of_bools); 146 expect(foo2.array_of_bools).toEqual(foo.array_of_bools);
144 } 147 }
145 148
149 function createRect(x, y, width, height) {
150 var r = new rect.Rect();
151 r.x = x;
152 r.y = y;
153 r.width = width;
154 r.height = height;
155 return r;
156 }
157
158 // Verify that the references to the imported Rect type in test_structs.mojom
159 // are generated correctly.
160 function testNamedRegion() {
161 var r = new structs.NamedRegion();
162 r.name = "rectangle";
163 r.rects = new Array(createRect(1, 2, 3, 4), createRect(10, 20, 30, 40));
164
165 var builder = new codec.MessageBuilder(1, structs.NamedRegion.encodedSize);
166 builder.encodeStruct(structs.NamedRegion, r);
167 var reader = new codec.MessageReader(builder.finish());
168 var result = reader.decodeStruct(structs.NamedRegion);
169
170 expect(result.name).toEqual("rectangle");
171 expect(result.rects[0]).toEqual(createRect(1, 2, 3, 4));
172 expect(result.rects[1]).toEqual(createRect(10, 20, 30, 40));
173 }
174
146 function testTypes() { 175 function testTypes() {
147 function encodeDecode(cls, input, expectedResult, encodedSize) { 176 function encodeDecode(cls, input, expectedResult, encodedSize) {
148 var messageName = 42; 177 var messageName = 42;
149 var payloadSize = encodedSize || cls.encodedSize; 178 var payloadSize = encodedSize || cls.encodedSize;
150 179
151 var builder = new codec.MessageBuilder(messageName, payloadSize); 180 var builder = new codec.MessageBuilder(messageName, payloadSize);
152 builder.encodeStruct(cls, input) 181 builder.encodeStruct(cls, input)
153 var message = builder.finish(); 182 var message = builder.finish();
154 183
155 var reader = new codec.MessageReader(message); 184 var reader = new codec.MessageReader(message);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 expect(actualMemory.length).toEqual(expectedMemory.length); 248 expect(actualMemory.length).toEqual(expectedMemory.length);
220 expect(actualMemory).toEqual(expectedMemory); 249 expect(actualMemory).toEqual(expectedMemory);
221 250
222 var reader = new codec.MessageReader(message); 251 var reader = new codec.MessageReader(message);
223 expect(reader.payloadSize).toBe(payloadSize); 252 expect(reader.payloadSize).toBe(payloadSize);
224 expect(reader.messageName).toBe(messageName); 253 expect(reader.messageName).toBe(messageName);
225 var str2 = reader.decoder.decodeStringPointer(); 254 var str2 = reader.decoder.decodeStringPointer();
226 expect(str2).toEqual(str); 255 expect(str2).toEqual(str);
227 } 256 }
228 }); 257 });
OLDNEW
« no previous file with comments | « mojo/public/interfaces/bindings/tests/test_structs.mojom ('k') | mojo/public/tools/bindings/generators/mojom_js_generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698