diff options
Diffstat (limited to 'tests')
6 files changed, 64 insertions, 5 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/realTypePrecision.qml b/tests/auto/qml/qqmlecmascript/data/realTypePrecision.qml new file mode 100644 index 0000000000..524478887e --- /dev/null +++ b/tests/auto/qml/qqmlecmascript/data/realTypePrecision.qml @@ -0,0 +1,22 @@ +import Qt.test 1.0 +import QtQuick 2.0 + +QtObject { + property real test: 1234567890 + property real test2 + property real test3 + property real test4: test3 + property real test5: func() + property real test6: test2 + test3 + + signal sig(real arg) + + Component.onCompleted: { + test2 = 1234567890; + sig(1234567890) + } + + onSig: { test3 = arg; } + + function func() { return 1234567890; } +} diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index 676557a81c..0dc0e5aca8 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -236,6 +236,7 @@ private slots: void revisionErrors(); void revision(); void invokableWithQObjectDerived(); + void realTypePrecision(); void automaticSemicolon(); void unaryExpression(); @@ -6092,6 +6093,20 @@ void tst_qqmlecmascript::invokableWithQObjectDerived() } } +void tst_qqmlecmascript::realTypePrecision() +{ + // Properties and signal parameters of type real should have double precision. + QQmlComponent component(&engine, testFileUrl("realTypePrecision.qml")); + QScopedPointer<QObject> object(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->property("test").toDouble(), 1234567890.); + QCOMPARE(object->property("test2").toDouble(), 1234567890.); + QCOMPARE(object->property("test3").toDouble(), 1234567890.); + QCOMPARE(object->property("test4").toDouble(), 1234567890.); + QCOMPARE(object->property("test5").toDouble(), 1234567890.); + QCOMPARE(object->property("test6").toDouble(), 1234567890.*2); +} + QTEST_MAIN(tst_qqmlecmascript) #include "tst_qqmlecmascript.moc" diff --git a/tests/auto/qml/qqmlmetaobject/data/property.double.qml b/tests/auto/qml/qqmlmetaobject/data/property.double.qml new file mode 100644 index 0000000000..65da1889e4 --- /dev/null +++ b/tests/auto/qml/qqmlmetaobject/data/property.double.qml @@ -0,0 +1,5 @@ +import QtQuick 2.0 + +QtObject { + property double test: 1234567890 +} diff --git a/tests/auto/qml/qqmlmetaobject/data/property.real.qml b/tests/auto/qml/qqmlmetaobject/data/property.real.qml index de2baf5be2..2268aac8c2 100644 --- a/tests/auto/qml/qqmlmetaobject/data/property.real.qml +++ b/tests/auto/qml/qqmlmetaobject/data/property.real.qml @@ -1,5 +1,5 @@ import QtQuick 2.0 QtObject { - property real test: 21 + property real test: 1234567890 } diff --git a/tests/auto/qml/qqmlmetaobject/data/signal.6.qml b/tests/auto/qml/qqmlmetaobject/data/signal.6.qml new file mode 100644 index 0000000000..a4ec6c0eaa --- /dev/null +++ b/tests/auto/qml/qqmlmetaobject/data/signal.6.qml @@ -0,0 +1,5 @@ +import QtQuick 2.0 + +QtObject { + signal testSignal(double foo) +} diff --git a/tests/auto/qml/qqmlmetaobject/tst_qqmlmetaobject.cpp b/tests/auto/qml/qqmlmetaobject/tst_qqmlmetaobject.cpp index 6cadc3524b..f2c50ddbef 100644 --- a/tests/auto/qml/qqmlmetaobject/tst_qqmlmetaobject.cpp +++ b/tests/auto/qml/qqmlmetaobject/tst_qqmlmetaobject.cpp @@ -92,12 +92,18 @@ void tst_QQmlMetaObject::property_data() << QByteArray("bool") << int(QMetaType::Bool) << true // default << QVariant(true) << true << QVariant(false); + QTest::newRow("double") << "property.double.qml" + << QByteArray("double") << int(QMetaType::Double) + << false // default + << QVariant(double(1234567890.)) + << true // writable + << QVariant(double(1.23456789)); QTest::newRow("real") << "property.real.qml" << QByteArray("double") << int(QMetaType::Double) << false // default - << QVariant(double(21)) + << QVariant(double(1234567890.)) << true // writable - << QVariant(double(37)); + << QVariant(double(1.23456789)); QTest::newRow("string") << "property.string.qml" << QByteArray("QString") << int(QMetaType::QString) << true // default @@ -306,10 +312,10 @@ void tst_QQmlMetaObject::method_data() << (QList<QByteArray>() << "QString") << (QList<QByteArray>() << "foo"); QTest::newRow("testSignal(int foo, bool bar, real baz)") << "signal.3.qml" - << "testSignal(int,bool,qreal)" + << "testSignal(int,bool,double)" << QMetaMethod::Signal << "" - << (QList<QByteArray>() << "int" << "bool" << "qreal") + << (QList<QByteArray>() << "int" << "bool" << "double") << (QList<QByteArray>() << "foo" << "bar" << "baz"); QTest::newRow("testSignal(variant foo, var bar)") << "signal.4.qml" << "testSignal(QVariant,QVariant)" @@ -323,6 +329,12 @@ void tst_QQmlMetaObject::method_data() << "" << (QList<QByteArray>() << "QColor" << "QDateTime" << "QUrl") << (QList<QByteArray>() << "foo" << "bar" << "baz"); + QTest::newRow("testSignal(double foo)") << "signal.6.qml" + << "testSignal(double)" + << QMetaMethod::Signal + << "" + << (QList<QByteArray>() << "double") + << (QList<QByteArray>() << "foo"); } void tst_QQmlMetaObject::method() |