Jacek Caban : mshtml/tests: Add Object.defineProperties tests.

Alexandre Julliard julliard at winehq.org
Wed Aug 21 14:39:33 CDT 2019


Module: wine
Branch: master
Commit: 98cf6a6ac79dd0da64450b48c638eba0c7f4d57c
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=98cf6a6ac79dd0da64450b48c638eba0c7f4d57c

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Aug 21 12:31:44 2019 +0200

mshtml/tests: Add Object.defineProperties tests.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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,




More information about the wine-cvs mailing list