aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp')
-rw-r--r--tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp b/tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp
index e8073bc69a..caff7fc065 100644
--- a/tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp
+++ b/tests/auto/declarative/qjsvalue/tst_qjsvalue.cpp
@@ -1843,6 +1843,50 @@ void tst_QJSValue::hasProperty_changePrototype()
QVERIFY(obj.hasOwnProperty("foo"));
}
+void tst_QJSValue::deleteProperty_basic()
+{
+ QJSEngine eng;
+ QJSValue obj = eng.newObject();
+ // deleteProperty() behavior matches JS delete operator
+ QVERIFY(obj.deleteProperty("foo"));
+
+ obj.setProperty("foo", 123);
+ QVERIFY(obj.deleteProperty("foo"));
+ QVERIFY(!obj.hasOwnProperty("foo"));
+}
+
+void tst_QJSValue::deleteProperty_globalObject()
+{
+ QJSEngine eng;
+ QJSValue global = eng.globalObject();
+ // deleteProperty() behavior matches JS delete operator
+ QVERIFY(global.deleteProperty("foo"));
+
+ global.setProperty("foo", 123);
+ QVERIFY(global.deleteProperty("foo"));
+ QVERIFY(!global.hasProperty("foo"));
+
+ QVERIFY(global.deleteProperty("Math"));
+ QVERIFY(!global.hasProperty("Math"));
+
+ QVERIFY(!global.deleteProperty("NaN")); // read-only
+ QVERIFY(global.hasProperty("NaN"));
+}
+
+void tst_QJSValue::deleteProperty_inPrototype()
+{
+ QJSEngine eng;
+ QJSValue obj = eng.newObject();
+ QJSValue proto = eng.newObject();
+ obj.setPrototype(proto);
+
+ proto.setProperty("foo", 123);
+ QVERIFY(obj.hasProperty("foo"));
+ // deleteProperty() behavior matches JS delete operator
+ QVERIFY(obj.deleteProperty("foo"));
+ QVERIFY(obj.hasProperty("foo"));
+}
+
void tst_QJSValue::getSetProperty_HooliganTask162051()
{
QJSEngine eng;