Index: mojo/public/js/bindings/struct_unittests.js |
diff --git a/mojo/public/js/bindings/struct_unittests.js b/mojo/public/js/bindings/struct_unittests.js |
index d4a568ccf41f8bde7995025345535ed3d791a2fa..b9948a93d6e41b065d1f1e5c41976f82109c4b6b 100644 |
--- a/mojo/public/js/bindings/struct_unittests.js |
+++ b/mojo/public/js/bindings/struct_unittests.js |
@@ -26,8 +26,7 @@ define([ |
expect(new testStructs.RectPair({second: r}).first).toBeNull(); |
var nr = new testStructs.NamedRegion(); |
- // TODO(hansmuller): nr.name should be null, see crbug.com/417039. |
- expect(nr.name).toBe(""); |
+ expect(nr.name).toBeNull(); |
expect(nr.rects).toBeNull(); |
expect(nr).toEqual(new testStructs.NamedRegion({})); |
@@ -42,6 +41,39 @@ define([ |
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"; |
}); |