aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-11-12 11:01:06 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-15 13:07:11 +0100
commitd8fe3dfde9c6f73c49c8e69b41d77710f8dc463a (patch)
tree3fe77c80da6c254eebb5ba0718239ae10eaf4ba7 /tests
parenta82f89da2ad59c6ae5f83cbf35ecfaa6a56de2a4 (diff)
Don't crash when trying to assign to null.prop
Fixes a regression introduced during the exception handling refactoring. Task-number: QTBUG-34544 Change-Id: Ib751274d759030db3e5d3b1380b30dc07ec85f83 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qqmlecmascript/data/setPropertyOnNull.qml5
-rw-r--r--tests/auto/qml/qqmlecmascript/data/setPropertyOnUndefined.qml5
-rw-r--r--tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp22
3 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/setPropertyOnNull.qml b/tests/auto/qml/qqmlecmascript/data/setPropertyOnNull.qml
new file mode 100644
index 0000000000..a3288f47d7
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/setPropertyOnNull.qml
@@ -0,0 +1,5 @@
+import QtQuick 2.2
+
+QtObject {
+ Component.onCompleted: null.bug = 0
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/setPropertyOnUndefined.qml b/tests/auto/qml/qqmlecmascript/data/setPropertyOnUndefined.qml
new file mode 100644
index 0000000000..6655c47e5f
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/setPropertyOnUndefined.qml
@@ -0,0 +1,5 @@
+import QtQuick 2.2
+
+QtObject {
+ Component.onCompleted: undefined.bug = 0
+}
diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
index 609fb1d7a3..36ccbe0558 100644
--- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
+++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
@@ -311,6 +311,7 @@ private slots:
void qtbug_33754();
void qtbug_34493();
void singletonFromQMLToCpp();
+ void setPropertyOnInvalid();
private:
// static void propertyVarWeakRefCallback(v8::Persistent<v8::Value> object, void* parameter);
@@ -7361,6 +7362,27 @@ void tst_qqmlecmascript::singletonFromQMLToCpp()
QCOMPARE(obj->property("myInheritedQmlObjectTest"), QVariant(true));
}
+void tst_qqmlecmascript::setPropertyOnInvalid()
+{
+ {
+ QQmlComponent component(&engine, testFileUrl("setPropertyOnNull.qml"));
+ QString warning = component.url().toString() + ":4: TypeError: Type error";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
+ QObject *object = component.create();
+ QVERIFY(object);
+ delete object;
+ }
+
+ {
+ QQmlComponent component(&engine, testFileUrl("setPropertyOnUndefined.qml"));
+ QString warning = component.url().toString() + ":4: TypeError: Type error";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
+ QObject *object = component.create();
+ QVERIFY(object);
+ delete object;
+ }
+}
+
QTEST_MAIN(tst_qqmlecmascript)
#include "tst_qqmlecmascript.moc"