| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| define([ |
| "gin/test/expect", |
| "mojo/public/interfaces/bindings/tests/rect.mojom", |
| "mojo/public/interfaces/bindings/tests/test_structs.mojom" |
| ], function(expect, |
| rect, |
| testStructs) { |
| |
| function testConstructors() { |
| var r = new rect.Rect(); |
| expect(r).toEqual(new rect.Rect({x:0, y:0, width:0, height:0})); |
| expect(r).toEqual(new rect.Rect({foo:100, bar:200})); |
| |
| r.x = 10; |
| r.y = 20; |
| r.width = 30; |
| r.height = 40; |
| var rp = new testStructs.RectPair({first: r, second: r}); |
| expect(rp.first).toEqual(r); |
| expect(rp.second).toEqual(r); |
| |
| expect(new testStructs.RectPair({second: r}).first).toBeNull(); |
| |
| var nr = new testStructs.NamedRegion(); |
| expect(nr.name).toBeNull(); |
| expect(nr.rects).toBeNull(); |
| expect(nr).toEqual(new testStructs.NamedRegion({})); |
| |
| nr.name = "foo"; |
| nr.rects = [r, r, r]; |
| expect(nr).toEqual(new testStructs.NamedRegion({ |
| name: "foo", |
| rects: [r, r, r], |
| })); |
| |
| var e = new testStructs.EmptyStruct(); |
| expect(e).toEqual(new testStructs.EmptyStruct({foo:123})); |
| } |
| |
| function testNoDefaultFieldValues() { |
| var s = new testStructs.NoDefaultFieldValues(); |
| expect(s.f0).toEqual(false); |
| |
| // f1 - f10, number type fields |
| for (var i = 1; i <= 10; i++) |
| expect(s["f" + i]).toEqual(0); |
| |
| // f11,12 strings, f13-22 handles, f23-f26 arrays, f27,28 structs |
| for (var i = 11; i <= 28; i++) |
| expect(s["f" + i]).toBeNull(); |
| } |
| |
| function testDefaultFieldValues() { |
| var s = new testStructs.DefaultFieldValues(); |
| expect(s.f0).toEqual(true); |
| |
| // f1 - f12, number type fields |
| for (var i = 1; i <= 12; i++) |
| expect(s["f" + i]).toEqual(100); |
| |
| // f13,14 "foo" |
| for (var i = 13; i <= 14; i++) |
| expect(s["f" + i]).toEqual("foo"); |
| |
| // f15,16 a default instance of Rect |
| var r = new rect.Rect(); |
| expect(s.f15).toEqual(r); |
| expect(s.f16).toEqual(r); |
| } |
| |
| testConstructors(); |
| testNoDefaultFieldValues(); |
| testDefaultFieldValues(); |
| this.result = "PASS"; |
| }); |