summaryrefslogtreecommitdiffstats
path: root/tests/auto/selftests/cmptest
diff options
context:
space:
mode:
authorRohan McGovern <rohan.mcgovern@nokia.com>2009-07-28 06:52:13 (GMT)
committerRohan McGovern <rohan.mcgovern@nokia.com>2009-07-28 22:45:05 (GMT)
commit62d81d9955f39bac327affd703b9df006ee8f6f7 (patch)
tree102f5c8b22a96f17d64d2b3e687c0f9a29b8c203 /tests/auto/selftests/cmptest
parentca1060fbc3a949ec3e0f67017efe8ee6c0b7b86e (diff)
downloadQt-62d81d9955f39bac327affd703b9df006ee8f6f7.zip
Qt-62d81d9955f39bac327affd703b9df006ee8f6f7.tar.gz
Qt-62d81d9955f39bac327affd703b9df006ee8f6f7.tar.bz2
Added a QVariant testlib toString specialization.
If comparing two variants fails, the failure message will now output the type and value of the variants (rather than "Compared values are not the same"). Reviewed-by: Thiago
Diffstat (limited to 'tests/auto/selftests/cmptest')
-rw-r--r--tests/auto/selftests/cmptest/tst_cmptest.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/auto/selftests/cmptest/tst_cmptest.cpp b/tests/auto/selftests/cmptest/tst_cmptest.cpp
index 59dd678..7395210 100644
--- a/tests/auto/selftests/cmptest/tst_cmptest.cpp
+++ b/tests/auto/selftests/cmptest/tst_cmptest.cpp
@@ -50,6 +50,8 @@ class tst_Cmptest: public QObject
private slots:
void compare_boolfuncs();
void compare_pointerfuncs();
+ void compare_tostring();
+ void compare_tostring_data();
};
static bool boolfunc() { return true; }
@@ -76,6 +78,50 @@ void tst_Cmptest::compare_pointerfuncs()
QCOMPARE(&i, intptr());
}
+Q_DECLARE_METATYPE(QVariant)
+
+class PhonyClass
+{};
+
+void tst_Cmptest::compare_tostring_data()
+{
+ QTest::addColumn<QVariant>("actual");
+ QTest::addColumn<QVariant>("expected");
+
+ QTest::newRow("int, string")
+ << QVariant::fromValue(123)
+ << QVariant::fromValue(QString("hi"))
+ ;
+
+ QTest::newRow("both invalid")
+ << QVariant()
+ << QVariant()
+ ;
+
+ QTest::newRow("null hash, invalid")
+ << QVariant(QVariant::Hash)
+ << QVariant()
+ ;
+
+ QTest::newRow("string, null user type")
+ << QVariant::fromValue(QString::fromLatin1("A simple string"))
+ << QVariant(QVariant::Type(qRegisterMetaType<PhonyClass>("PhonyClass")))
+ ;
+
+ QTest::newRow("both non-null user type")
+ << QVariant(qRegisterMetaType<PhonyClass>("PhonyClass"), (const void*)0)
+ << QVariant(qRegisterMetaType<PhonyClass>("PhonyClass"), (const void*)0)
+ ;
+}
+
+void tst_Cmptest::compare_tostring()
+{
+ QFETCH(QVariant, actual);
+ QFETCH(QVariant, expected);
+
+ QCOMPARE(actual, expected);
+}
+
QTEST_MAIN(tst_Cmptest)
#include "tst_cmptest.moc"