summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp3
-rw-r--r--tests/auto/corelib/plugin/quuid/tst_quuid.cpp31
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"