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
3 // found in the LICENSE file.
7 "mojo/public/interfaces/bindings/tests/rect.mojom",
8 "mojo/public/interfaces/bindings/tests/test_structs.mojom"
13 function testConstructors() {
14 var r = new rect.Rect();
15 expect(r).toEqual(new rect.Rect({x:0, y:0, width:0, height:0}));
16 expect(r).toEqual(new rect.Rect({foo:100, bar:200}));
22 var rp = new testStructs.RectPair({first: r, second: r});
23 expect(rp.first).toEqual(r);
24 expect(rp.second).toEqual(r);
26 expect(new testStructs.RectPair({second: r}).first).toBeNull();
28 var nr = new testStructs.NamedRegion();
29 expect(nr.name).toBeNull();
30 expect(nr.rects).toBeNull();
31 expect(nr).toEqual(new testStructs.NamedRegion({}));
35 expect(nr).toEqual(new testStructs.NamedRegion({
40 var e = new testStructs.EmptyStruct();
41 expect(e).toEqual(new testStructs.EmptyStruct({foo:123}));
44 function testNoDefaultFieldValues() {
45 var s = new testStructs.NoDefaultFieldValues();
46 expect(s.f0).toEqual(false);
48 // f1 - f10, number type fields
49 for (var i = 1; i <= 10; i++)
50 expect(s["f" + i]).toEqual(0);
52 // f11,12 strings, f13-22 handles, f23-f26 arrays, f27,28 structs
53 for (var i = 11; i <= 28; i++)
54 expect(s["f" + i]).toBeNull();
57 function testDefaultFieldValues() {
58 var s = new testStructs.DefaultFieldValues();
59 expect(s.f0).toEqual(true);
61 // f1 - f12, number type fields
62 for (var i = 1; i <= 12; i++)
63 expect(s["f" + i]).toEqual(100);
66 for (var i = 13; i <= 14; i++)
67 expect(s["f" + i]).toEqual("foo");
69 // f15,16 a default instance of Rect
70 var r = new rect.Rect();
71 expect(s.f15).toEqual(r);
72 expect(s.f16).toEqual(r);
76 testNoDefaultFieldValues();
77 testDefaultFieldValues();