diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-09-08 14:06:22 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2014-09-11 09:56:48 +0200 |
commit | 91d6a63ab317817990c3b2306860adbd8916cca4 (patch) | |
tree | 44962e20ce14c594d1f77c7ac4d54d53bd1b158e /tests/auto/qml/qqmlecmascript/data | |
parent | 8fab54a5495226b8c06d7708357a23e83444abc0 (diff) |
Fix roundtrip conversion between JS var and QVariant
Always convert null to a QVariant(VoidStar) as documented in
QJSValue. Make sure the reverse conversion will lead back to
a null JS value.
Adjusted two test cases that expected an invalid QVariant when
setting the property to null, and added test cases for the
correct conversion.
Task-number: QTBUG-40880
Change-Id: I6eb01f0067f2c89779c53fd2cd0a1193047ed2cc
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'tests/auto/qml/qqmlecmascript/data')
3 files changed, 57 insertions, 2 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/scarceResourceFunction.var.qml b/tests/auto/qml/qqmlecmascript/data/scarceResourceFunction.var.qml index 23e4c8d15e..bb6ddc7876 100644 --- a/tests/auto/qml/qqmlecmascript/data/scarceResourceFunction.var.qml +++ b/tests/auto/qml/qqmlecmascript/data/scarceResourceFunction.var.qml @@ -17,7 +17,7 @@ QtObject { } function releaseScarceResource() { - root.scarceResourceCopy = null; + root.scarceResourceCopy = undefined; } } diff --git a/tests/auto/qml/qqmlecmascript/data/scarceResourceFunction.variant.qml b/tests/auto/qml/qqmlecmascript/data/scarceResourceFunction.variant.qml index fe3707b5d3..e147188230 100644 --- a/tests/auto/qml/qqmlecmascript/data/scarceResourceFunction.variant.qml +++ b/tests/auto/qml/qqmlecmascript/data/scarceResourceFunction.variant.qml @@ -17,7 +17,7 @@ QtObject { } function releaseScarceResource() { - root.scarceResourceCopy = null; + root.scarceResourceCopy = undefined; } } diff --git a/tests/auto/qml/qqmlecmascript/data/variants.qml b/tests/auto/qml/qqmlecmascript/data/variants.qml new file mode 100644 index 0000000000..d38c5a1b49 --- /dev/null +++ b/tests/auto/qml/qqmlecmascript/data/variants.qml @@ -0,0 +1,55 @@ +import QtQuick 2.2 + +ListView +{ + property variant undefinedVariant: undefined + property variant nullVariant: null + property variant intVariant: 1 + property variant doubleVariant: 1.2 + + property var testVar + property variant testVariant + + function checkNull() { + var result = [{'test': null}]; + model = result; + if (model[0].test !== null) + return false; + testVar = null; + testVariant = testVar; + if (testVariant !== null) + return false; + testVar = testVariant; + if (testVar !== null) + return false; + return true; + } + function checkUndefined() { + var result = [{'test': undefined}]; + model = result; + if (model[0].test !== undefined) + return false; + testVar = undefined; + testVariant = testVar; + if (testVariant !== undefined) + return false; + testVar = testVariant; + if (testVar !== undefined) + return false; + return true; + } + function checkNumber() { + var result = [{'test': 1}]; + model = result; + if (model[0].test !== 1) + return false; + testVar = 1; + testVariant = testVar; + if (testVariant !== 1) + return false; + testVar = testVariant; + if (testVar !== 1) + return false; + return true; + } +} |