diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp | 3 | ||||
-rw-r--r-- | tests/auto/corelib/plugin/quuid/tst_quuid.cpp | 31 |
2 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp index 12a57447cd..3da48c756e 100644 --- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp +++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp @@ -446,6 +446,9 @@ template<> struct TestValueFactory<QMetaType::QPointF> { template<> struct TestValueFactory<QMetaType::QEasingCurve> { static QEasingCurve *create() { return new QEasingCurve(QEasingCurve::InOutElastic); } }; +template<> struct TestValueFactory<QMetaType::QUuid> { + static QUuid *create() { return new QUuid(); } +}; template<> struct TestValueFactory<QMetaType::QRegExp> { static QRegExp *create() { diff --git a/tests/auto/corelib/plugin/quuid/tst_quuid.cpp b/tests/auto/corelib/plugin/quuid/tst_quuid.cpp index 90a391039f..8ce7f17416 100644 --- a/tests/auto/corelib/plugin/quuid/tst_quuid.cpp +++ b/tests/auto/corelib/plugin/quuid/tst_quuid.cpp @@ -76,6 +76,9 @@ private slots: void hash(); + void qvariant(); + void qvariant_conversion(); + public: // Variables QUuid uuidA; @@ -327,7 +330,35 @@ void tst_QUuid::hash() QCOMPARE(qHash(QUuid(uuidA.toString())), h); } +void tst_QUuid::qvariant() +{ + QUuid uuid = QUuid::createUuid(); + QVariant v = QVariant::fromValue(uuid); + QVERIFY(!v.isNull()); + QCOMPARE(v.type(), QVariant::Uuid); + + QUuid uuid2 = v.value<QUuid>(); + QVERIFY(!uuid2.isNull()); + QCOMPARE(uuid, uuid2); +} +void tst_QUuid::qvariant_conversion() +{ + QUuid uuid = QUuid::createUuid(); + QVariant v = QVariant::fromValue(uuid); + + QVERIFY(v.canConvert<QString>()); + QCOMPARE(v.toString(), uuid.toString()); + QCOMPARE(v.value<QString>(), uuid.toString()); + QVERIFY(!v.canConvert<int>()); + QVERIFY(!v.canConvert<QStringList>()); + + // try reverse conversion QString -> QUuid + QVariant sv = QVariant::fromValue(uuid.toString()); + QCOMPARE(sv.type(), QVariant::String); + QVERIFY(sv.canConvert<QUuid>()); + QCOMPARE(sv.value<QUuid>(), uuid); +} QTEST_MAIN(tst_QUuid) #include "tst_quuid.moc" |