Module: wine Branch: master Commit: 98cf6a6ac79dd0da64450b48c638eba0c7f4d57c URL: https://source.winehq.org/git/wine.git/?a=commit;h=98cf6a6ac79dd0da64450b48c...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Aug 21 12:31:44 2019 +0200
mshtml/tests: Add Object.defineProperties tests.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/mshtml/tests/es5.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+)
diff --git a/dlls/mshtml/tests/es5.js b/dlls/mshtml/tests/es5.js index 85a6899..11b68e5 100644 --- a/dlls/mshtml/tests/es5.js +++ b/dlls/mshtml/tests/es5.js @@ -507,6 +507,48 @@ function test_defineProperty() { next_test(); }
+function test_defineProperties() { + var o, defined, descs; + + descs = { + acc_prop: { get: function() { return 1; } }, + prop: { value: 2 }, + e: { enumerable: true } + }; + + o = new Object(); + defined = Object.defineProperties(o, descs); + ok(defined === o, "defined != o"); + ok(o.acc_prop === 1, "o.acc_prop = " + o.acc_prop); + ok(o.prop === 2, "o.prop = " + o.prop); + ok(o.e === undefined, "o.e = " + o.e); + ok("e" in o, "e is not in o"); + test_own_data_prop_desc(o, "prop", false, false, false); + test_own_data_prop_desc(o, "e", false, true, false); + for(var p in o) ok(p === "e", "p = " + p); + + o = new Object(); + Object.defineProperties(o, 1); + for(var p in o) ok(false, "o has property " + p); + + o = Object.create(null, descs); + ok(o.acc_prop === 1, "o.acc_prop = " + o.acc_prop); + ok(o.prop === 2, "o.prop = " + o.prop); + ok(o.e === undefined, "o.e = " + o.e); + ok("e" in o, "e is not in o"); + test_own_data_prop_desc(o, "prop", false, false, false); + test_own_data_prop_desc(o, "e", false, true, false); + for(var p in o) ok(p === "e", "p = " + p); + + var desc_proto = new Object(); + desc_proto.proto_prop = { value: true, enumerable: true }; + descs = Object.create(desc_proto); + o = Object.create(null, descs); + ok(!("proto_prop" in o), "proto_prop is in o"); + + next_test(); +} + function test_property_definitions() { var obj, val, i, arr;
@@ -811,6 +853,7 @@ var tests = [ test_identifier_keywords, test_getOwnPropertyDescriptor, test_defineProperty, + test_defineProperties, test_property_definitions, test_string_trim, test_global_properties,