From 38be0d13830efd2d98281c645c3a60afe05ffece Mon Sep 17 00:00:00 2001 From: Qt by Nokia Date: Wed, 27 Apr 2011 12:05:43 +0200 Subject: Initial import from the monolithic Qt. This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12 --- src/3rdparty/libgq/gconf/test-gconf.cpp | 299 ++++++++++++++++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 src/3rdparty/libgq/gconf/test-gconf.cpp (limited to 'src/3rdparty/libgq/gconf/test-gconf.cpp') diff --git a/src/3rdparty/libgq/gconf/test-gconf.cpp b/src/3rdparty/libgq/gconf/test-gconf.cpp new file mode 100644 index 0000000000..52eb28171a --- /dev/null +++ b/src/3rdparty/libgq/gconf/test-gconf.cpp @@ -0,0 +1,299 @@ +#include "test-gconf.h" + +#define MYLOGLEVEL 2 +void myMessageOutput(QtMsgType type, const char *msg) +{ + switch (type) { + case QtDebugMsg: + if (MYLOGLEVEL <= 0) + fprintf(stderr, "Debug: %s\n", msg); + break; + case QtWarningMsg: + if (MYLOGLEVEL <= 1) + fprintf(stderr, "Warning: %s\n", msg); + break; + case QtCriticalMsg: + if (MYLOGLEVEL <= 2) + fprintf(stderr, "Critical: %s\n", msg); + break; + case QtFatalMsg: + if (MYLOGLEVEL <= 3) + fprintf(stderr, "Fatal: %s\n", msg); + abort(); + } +} + +// +// Definition of testcases: Normal tests +// + +void GConfItemTests::timeout() +{ + timed_out = true; + timer.stop(); +} + +// Before all tests +void GConfItemTests::initTestCase() +{ + connect(&timer, SIGNAL(timeout()), + this, SLOT(timeout())); +} + +// After all tests +void GConfItemTests::cleanupTestCase() +{ +} + +// Before each test +void GConfItemTests::init() +{ + boolItem = new GConfItem("/Test/Bool"); + intItem = new GConfItem("/Test/Int"); + stringItem = new GConfItem("/Test/String"); + doubleItem = new GConfItem("/Test/Double"); + stringListItem = new GConfItem("/Test/StringList"); + intListItem = new GConfItem("/Test/IntList"); + doubleListItem = new GConfItem("/Test/DoubleList"); + boolListItem = new GConfItem("/Test/BoolList"); + unsetBeforeItem = new GConfItem("/Test/UnsetBefore"); + unsetAfterItem = new GConfItem("/Test/UnsetAfter"); + signalSpy = new SignalListener(); + QObject::connect(boolItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::connect(intItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::connect(stringItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::connect(doubleItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::connect(stringListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::connect(intListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::connect(doubleListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::connect(boolListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); +} + +// After each test +void GConfItemTests::cleanup() +{ + QObject::disconnect(boolItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::disconnect(intItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::disconnect(stringItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::disconnect(doubleItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::disconnect(stringListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::disconnect(intListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::disconnect(doubleListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + QObject::disconnect(boolListItem, SIGNAL(valueChanged()), signalSpy, SLOT(valueChanged())); + delete signalSpy; + delete boolItem; + delete intItem; + delete stringItem; + delete doubleItem; + delete stringListItem; + delete intListItem; + delete doubleListItem; + delete boolListItem; + delete unsetBeforeItem; + delete unsetAfterItem; + + timer.stop(); +} + +void GConfItemTests::path() +{ + QCOMPARE(boolItem->key(), QString("/Test/Bool")); + QCOMPARE(intItem->key(), QString("/Test/Int")); + QCOMPARE(stringItem->key(), QString("/Test/String")); + QCOMPARE(doubleItem->key(), QString("/Test/Double")); + QCOMPARE(stringListItem->key(), QString("/Test/StringList")); + QCOMPARE(intListItem->key(), QString("/Test/IntList")); + QCOMPARE(doubleListItem->key(), QString("/Test/DoubleList")); + QCOMPARE(boolListItem->key(), QString("/Test/BoolList")); + QCOMPARE(unsetBeforeItem->key(), QString("/Test/UnsetBefore")); + QCOMPARE(unsetAfterItem->key(), QString("/Test/UnsetAfter")); +} + +void GConfItemTests::external_values() +{ + // These values are set before this program starts. + QCOMPARE(boolItem->value().toBool(), true); + QCOMPARE(intItem->value().toInt(), 123); + QCOMPARE(stringItem->value().toString(), QString("Hello GConf")); + QCOMPARE(doubleItem->value().toDouble(), 3.5); + QCOMPARE(stringListItem->value().toStringList(), QStringList() << "Hello" << "GConf" << QString::fromUtf8("ÄÖÜ")); + QCOMPARE(intListItem->value().toList(), QList() << 1 << 2 << 3 << 4); + QCOMPARE(doubleListItem->value().toList(), QList() << 3.5 << 3.5 << 3.5); + QCOMPARE(boolListItem->value().toList(), QList() << false << true << true << false); + QCOMPARE(unsetBeforeItem->value().isValid(), false); + QCOMPARE(unsetAfterItem->value().isValid(), true); +} + +void GConfItemTests::set_bool() +{ + signalSpy->numberOfCalls = 0; + + boolItem->set(false); + QCOMPARE(boolItem->value().toBool(), false); + boolItem->set(true); + QCOMPARE(boolItem->value().toBool(), true); + + QCOMPARE(signalSpy->numberOfCalls, 2); +} + +void GConfItemTests::set_int() +{ + signalSpy->numberOfCalls = 0; + + intItem->set(12); + QCOMPARE(intItem->value().toInt(), 12); + intItem->set(-5); + QCOMPARE(intItem->value().toInt(), -5); + + QCOMPARE(signalSpy->numberOfCalls, 2); +} + +void GConfItemTests::set_string() +{ + signalSpy->numberOfCalls = 0; + + stringItem->set("Hi"); + QCOMPARE(stringItem->value().toString(), QString("Hi")); + + QCOMPARE(signalSpy->numberOfCalls, 1); +} + +void GConfItemTests::set_unicode_string() +{ + signalSpy->numberOfCalls = 0; + + stringItem->set(QString::fromUtf8("Höäü")); + QCOMPARE(stringItem->value().toString(), QString::fromUtf8("Höäü")); + + QCOMPARE(signalSpy->numberOfCalls, 1); +} + +void GConfItemTests::set_double() +{ + signalSpy->numberOfCalls = 0; + + doubleItem->set(1.2345); + QCOMPARE(doubleItem->value().toDouble(), 1.2345); + + QCOMPARE(signalSpy->numberOfCalls, 1); +} + +void GConfItemTests::set_string_list() +{ + signalSpy->numberOfCalls = 0; + + stringListItem->set(QStringList() << "one" << "two" << "three"); + QCOMPARE(stringListItem->value().toStringList(), QStringList() << "one" << "two" << "three"); + + QCOMPARE(signalSpy->numberOfCalls, 1); +} + +void GConfItemTests::set_int_list() +{ + signalSpy->numberOfCalls = 0; + + intListItem->set(QList() << 10 << 11 << 12); + QCOMPARE(intListItem->value().toList(), QList() << 10 << 11 << 12); + + QCOMPARE(signalSpy->numberOfCalls, 1); +} + +void GConfItemTests::set_double_list() +{ + signalSpy->numberOfCalls = 0; + + doubleListItem->set(QList() << 1.1 << 2.2 << 3.3); + QCOMPARE(doubleListItem->value().toList(), QList() << 1.1 << 2.2 << 3.3); + + QCOMPARE(signalSpy->numberOfCalls, 1); +} + +void GConfItemTests::set_bool_list() +{ + signalSpy->numberOfCalls = 0; + + boolListItem->set(QList() << true << true << false); + QCOMPARE(boolListItem->value().toList(), QList() << true << true << false); + + QCOMPARE(signalSpy->numberOfCalls, 1); +} + +void GConfItemTests::unset () +{ + signalSpy->numberOfCalls = 0; + + boolItem->unset(); + QCOMPARE(boolItem->value().isValid(), false); + + QCOMPARE(signalSpy->numberOfCalls, 1); +} + +void GConfItemTests::list_dirs () +{ + GConfItem test("/Test"); + QStringList dirs = test.listDirs(); + + QVERIFY (!dirs.contains("/Test/Bool")); + QVERIFY (!dirs.contains("/Test/Int")); + QVERIFY (!dirs.contains("/Test/String")); + QVERIFY (!dirs.contains("/Test/Double")); + QVERIFY (!dirs.contains("/Test/StringList")); + QVERIFY (!dirs.contains("/Test/IntList")); + QVERIFY (!dirs.contains("/Test/DoubleList")); + QVERIFY (!dirs.contains("/Test/BoolList")); + QVERIFY (!dirs.contains("/Test/UnsetBefore")); + QVERIFY (!dirs.contains("/Test/UnsetAfter")); + QVERIFY (dirs.contains("/Test/Dir")); +} + +void GConfItemTests::list_entries () +{ + GConfItem test("/Test"); + QStringList entries = test.listEntries(); + + QVERIFY (!entries.contains("/Test/Bool")); // has been unset above + QVERIFY (entries.contains("/Test/Int")); + QVERIFY (entries.contains("/Test/String")); + QVERIFY (entries.contains("/Test/Double")); + QVERIFY (entries.contains("/Test/StringList")); + QVERIFY (entries.contains("/Test/IntList")); + QVERIFY (entries.contains("/Test/DoubleList")); + QVERIFY (entries.contains("/Test/BoolList")); + QVERIFY (!entries.contains("/Test/UnsetBefore")); + QVERIFY (entries.contains("/Test/UnsetAfter")); + QVERIFY (!entries.contains("/Test/Dir")); +} + +void GConfItemTests::get_default () +{ + intItem->unset(); + QCOMPARE(intItem->value(123).toInt(), 123); + intItem->set(234); + QCOMPARE(intItem->value(123).toInt(), 234); +} + +void GConfItemTests::propagate () +{ + GConfItem secondIntItem("/Test/Int"); + secondIntItem.set(3000); + QVERIFY_TIMEOUT(2000, intItem->value() == secondIntItem.value()); + QCOMPARE(signalSpy->numberOfCalls, 2); +} + +void GConfItemTests::set_external() +{ + // This must be the last test case. The values that are set here + // are checked after this program exits. + + boolItem->set(false); + intItem->set(54321); + stringItem->set("Good bye GConf"); + doubleItem->set(-2.5); + stringListItem->set(QStringList() << "Good" << "bye" << "GConf" << QString::fromUtf8("äöü")); + intListItem->set(QList() << 5 << 4 << 3 << 2 << 1); + doubleListItem->set(QList() << -2.5 << -2.5); + boolListItem->set(QList() << false << false << true << true); + unsetAfterItem->set(QVariant()); +} + +QTEST_MAIN(GConfItemTests); -- cgit v1.2.3