diff options
author | Rohan McGovern <rohan.mcgovern@nokia.com> | 2009-07-28 06:52:13 (GMT) |
---|---|---|
committer | Rohan McGovern <rohan.mcgovern@nokia.com> | 2009-07-28 22:45:05 (GMT) |
commit | 62d81d9955f39bac327affd703b9df006ee8f6f7 (patch) | |
tree | 102f5c8b22a96f17d64d2b3e687c0f9a29b8c203 /tests/auto/selftests/cmptest/tst_cmptest.cpp | |
parent | ca1060fbc3a949ec3e0f67017efe8ee6c0b7b86e (diff) | |
download | Qt-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/tst_cmptest.cpp')
-rw-r--r-- | tests/auto/selftests/cmptest/tst_cmptest.cpp | 46 |
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" |