diff options
Diffstat (limited to 'tests/auto/qml/qqmlqt/tst_qqmlqt.cpp')
-rw-r--r-- | tests/auto/qml/qqmlqt/tst_qqmlqt.cpp | 100 |
1 files changed, 95 insertions, 5 deletions
diff --git a/tests/auto/qml/qqmlqt/tst_qqmlqt.cpp b/tests/auto/qml/qqmlqt/tst_qqmlqt.cpp index c81e6771b8..6fd6fc8822 100644 --- a/tests/auto/qml/qqmlqt/tst_qqmlqt.cpp +++ b/tests/auto/qml/qqmlqt/tst_qqmlqt.cpp @@ -48,12 +48,15 @@ #include <QQmlComponent> #include <QDesktopServices> #include <QDir> -#include <QVector3D> #include <QCryptographicHash> #include <QtQuick/QQuickItem> #include <QSignalSpy> +#include <QVector2D> #include <QVector3D> #include <QVector4D> +#include <QQuaternion> +#include <QMatrix4x4> +#include <QFont> #include "../../shared/util.h" class tst_qqmlqt : public QQmlDataTest @@ -69,8 +72,12 @@ private slots: void rect(); void point(); void size(); - void vector(); + void vector2d(); + void vector3d(); void vector4d(); + void quaternion(); + void matrix4x4(); + void font(); void lighter(); void darker(); void tint(); @@ -217,12 +224,32 @@ void tst_qqmlqt::size() delete object; } -void tst_qqmlqt::vector() +void tst_qqmlqt::vector2d() +{ + QQmlComponent component(&engine, testFileUrl("vector2.qml")); + + QString warning1 = component.url().toString() + ":6: Error: Qt.vector2d(): Invalid arguments"; + QString warning2 = component.url().toString() + ":7: Error: Qt.vector2d(): Invalid arguments"; + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1)); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2)); + + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(qvariant_cast<QVector2D>(object->property("test1")), QVector2D(1, 0.9)); + QCOMPARE(qvariant_cast<QVector2D>(object->property("test2")), QVector2D(102, -982.1)); + QCOMPARE(qvariant_cast<QVector2D>(object->property("test3")), QVector2D()); + QCOMPARE(qvariant_cast<QVector2D>(object->property("test4")), QVector2D()); + + delete object; +} + +void tst_qqmlqt::vector3d() { QQmlComponent component(&engine, testFileUrl("vector.qml")); - QString warning1 = component.url().toString() + ":6: Error: Qt.vector(): Invalid arguments"; - QString warning2 = component.url().toString() + ":7: Error: Qt.vector(): Invalid arguments"; + QString warning1 = component.url().toString() + ":6: Error: Qt.vector3d(): Invalid arguments"; + QString warning2 = component.url().toString() + ":7: Error: Qt.vector3d(): Invalid arguments"; QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1)); QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2)); @@ -257,6 +284,69 @@ void tst_qqmlqt::vector4d() delete object; } +void tst_qqmlqt::quaternion() +{ + QQmlComponent component(&engine, testFileUrl("quaternion.qml")); + + QString warning1 = component.url().toString() + ":6: Error: Qt.quaternion(): Invalid arguments"; + QString warning2 = component.url().toString() + ":7: Error: Qt.quaternion(): Invalid arguments"; + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1)); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2)); + + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(qvariant_cast<QQuaternion>(object->property("test1")), QQuaternion(2, 17, 0.9, 0.6)); + QCOMPARE(qvariant_cast<QQuaternion>(object->property("test2")), QQuaternion(102, -10, -982.1, 10)); + QCOMPARE(qvariant_cast<QQuaternion>(object->property("test3")), QQuaternion()); + QCOMPARE(qvariant_cast<QQuaternion>(object->property("test4")), QQuaternion()); + + delete object; +} + +void tst_qqmlqt::matrix4x4() +{ + QQmlComponent component(&engine, testFileUrl("matrix4x4.qml")); + + QString warning1 = component.url().toString() + ":6: Error: Qt.matrix4x4(): Invalid arguments"; + QString warning2 = component.url().toString() + ":7: Error: Qt.matrix4x4(): Invalid argument: not a valid matrix4x4 values array"; + QString warning3 = component.url().toString() + ":8: Error: Qt.matrix4x4(): Invalid argument: not a valid matrix4x4 values array"; + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1)); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2)); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning3)); + + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(qvariant_cast<QMatrix4x4>(object->property("test1")), QMatrix4x4(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)); + QCOMPARE(qvariant_cast<QMatrix4x4>(object->property("test2")), QMatrix4x4(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4)); + QCOMPARE(qvariant_cast<QMatrix4x4>(object->property("test3")), QMatrix4x4()); + QCOMPARE(qvariant_cast<QMatrix4x4>(object->property("test4")), QMatrix4x4()); + QCOMPARE(qvariant_cast<QMatrix4x4>(object->property("test5")), QMatrix4x4()); + + delete object; +} + +void tst_qqmlqt::font() +{ + QQmlComponent component(&engine, testFileUrl("font.qml")); + + QString warning1 = component.url().toString() + ":6: Error: Qt.font(): Invalid arguments"; + QString warning2 = component.url().toString() + ":7: Error: Qt.font(): Invalid argument: no valid font subproperties specified"; + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1)); + QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2)); + + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(qvariant_cast<QFont>(object->property("test1")), QFont("Arial", 22)); + QCOMPARE(qvariant_cast<QFont>(object->property("test2")), QFont("Arial", 20, QFont::DemiBold, true)); + QCOMPARE(qvariant_cast<QFont>(object->property("test3")), QFont()); + QCOMPARE(qvariant_cast<QFont>(object->property("test4")), QFont()); + + delete object; +} + void tst_qqmlqt::lighter() { QQmlComponent component(&engine, testFileUrl("lighter.qml")); |