diff options
Diffstat (limited to 'qt4/tests/key-file.cpp')
-rw-r--r-- | qt4/tests/key-file.cpp | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/qt4/tests/key-file.cpp b/qt4/tests/key-file.cpp new file mode 100644 index 000000000..077e1a091 --- /dev/null +++ b/qt4/tests/key-file.cpp @@ -0,0 +1,111 @@ +#include <QtTest/QtTest> + +#include <TelepathyQt4/KeyFile> + +using namespace Tp; + +class TestKeyFile : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void testKeyFile(); +}; + +void TestKeyFile::testKeyFile() +{ + QString top_srcdir = QString::fromLocal8Bit(::getenv("abs_top_srcdir")); + if (!top_srcdir.isEmpty()) { + QDir::setCurrent(top_srcdir + QLatin1String("/tests")); + } + + KeyFile defaultKeyFile; + QCOMPARE(defaultKeyFile.status(), KeyFile::None); + + KeyFile notFoundkeyFile(QLatin1String("test-key-file-not-found.ini")); + QCOMPARE(notFoundkeyFile.status(), KeyFile::NotFoundError); + + KeyFile formatErrorkeyFile(QLatin1String("test-key-file-format-error.ini")); + QCOMPARE(formatErrorkeyFile.status(), KeyFile::FormatError); + + KeyFile keyFile(QLatin1String("test-key-file.ini")); + QCOMPARE(keyFile.status(), KeyFile::NoError); + + QCOMPARE(keyFile.allGroups(), + QStringList() << QString() << + QLatin1String("test group 1") << + QLatin1String("test group 2")); + + QStringList allKeys = keyFile.allKeys(); + allKeys.sort(); + QCOMPARE(allKeys, + QStringList() << + QLatin1String("a") << + QLatin1String("b") << + QLatin1String("c") << + QLatin1String("d") << + QLatin1String("e")); + + keyFile.setGroup(QLatin1String("test group 1")); + QCOMPARE(keyFile.contains(QLatin1String("f")), false); + QCOMPARE(keyFile.value(QLatin1String("c")).length(), 5); + + keyFile.setGroup(QLatin1String("test group 2")); + QCOMPARE(keyFile.contains(QLatin1String("e")), true); + QCOMPARE(keyFile.value(QLatin1String("e")), QString(QLatin1String("space"))); + + keyFile.setFileName(QLatin1String("telepathy/managers/test-manager-file.manager")); + QCOMPARE(keyFile.status(), KeyFile::NoError); + + keyFile.setGroup(QLatin1String("Protocol somewhat-pathological")); + QCOMPARE(keyFile.value(QLatin1String("param-foo")), QString(QLatin1String("s required"))); + QCOMPARE(keyFile.value(QLatin1String("default-foo")), QString(QLatin1String("hello world"))); + + QCOMPARE(keyFile.value(QLatin1String("param-semicolons")), QString(QLatin1String("s secret"))); + QCOMPARE(keyFile.value(QLatin1String("default-semicolons")), QString(QLatin1String("list;of;misc;"))); + + QCOMPARE(keyFile.value(QLatin1String("param-list")), QString(QLatin1String("as"))); + QCOMPARE(keyFile.value(QLatin1String("default-list")), QString(QLatin1String("list;of;misc;"))); + QCOMPARE(keyFile.valueAsStringList(QLatin1String("default-list")), + QStringList() << QLatin1String("list") << QLatin1String("of") << QLatin1String("misc")); + + QCOMPARE(keyFile.value(QLatin1String("param-unterminated-list")), QString(QLatin1String("as"))); + QCOMPARE(keyFile.value(QLatin1String("default-unterminated-list")), QString(QLatin1String("list;of;misc"))); + QCOMPARE(keyFile.valueAsStringList(QLatin1String("default-unterminated-list")), + QStringList() << QLatin1String("list") << QLatin1String("of") << QLatin1String("misc")); + + QCOMPARE(keyFile.value(QLatin1String("param-spaces-in-list")), QString(QLatin1String("as"))); + QCOMPARE(keyFile.value(QLatin1String("default-spaces-in-list")), QString(QLatin1String("list; of; misc ;"))); + QCOMPARE(keyFile.valueAsStringList(QLatin1String("default-spaces-in-list")), + QStringList() << QLatin1String("list") << QLatin1String(" of") << QLatin1String(" misc ")); + + QCOMPARE(keyFile.value(QLatin1String("param-escaped-semicolon-in-list")), QString(QLatin1String("as"))); + QCOMPARE(keyFile.value(QLatin1String("default-escaped-semicolon-in-list")), QString(QLatin1String("list;of;misc;"))); + QCOMPARE(keyFile.valueAsStringList(QLatin1String("default-escaped-semicolon-in-list")), + QStringList() << QLatin1String("list;of") << QLatin1String("misc")); + + QCOMPARE(keyFile.value(QLatin1String("param-doubly-escaped-semicolon-in-list")), QString(QLatin1String("as"))); + QCOMPARE(keyFile.value(QLatin1String("default-doubly-escaped-semicolon-in-list")), QString(QLatin1String("list\\;of;misc;"))); + QCOMPARE(keyFile.valueAsStringList(QLatin1String("default-doubly-escaped-semicolon-in-list")), + QStringList() << QLatin1String("list\\") << QLatin1String("of") << QLatin1String("misc")); + + QCOMPARE(keyFile.value(QLatin1String("param-triply-escaped-semicolon-in-list")), QString(QLatin1String("as"))); + QCOMPARE(keyFile.value(QLatin1String("default-triply-escaped-semicolon-in-list")), QString(QLatin1String("list\\;of;misc;"))); + QCOMPARE(keyFile.valueAsStringList(QLatin1String("default-triply-escaped-semicolon-in-list")), + QStringList() << QLatin1String("list\\;of") << QLatin1String("misc")); + + QCOMPARE(keyFile.value(QLatin1String("param-empty-list")), QString(QLatin1String("as"))); + QCOMPARE(keyFile.value(QLatin1String("default-empty-list")), QString(QLatin1String(""))); + QCOMPARE(keyFile.valueAsStringList(QLatin1String("default-empty-list")), QStringList()); + + QCOMPARE(keyFile.value(QLatin1String("param-list-of-empty-string")), QString(QLatin1String("as"))); + QCOMPARE(keyFile.value(QLatin1String("default-list-of-empty-string")), QString(QLatin1String(";"))); + QCOMPARE(keyFile.valueAsStringList(QLatin1String("default-list-of-empty-string")), QStringList() << QString()); + + QCOMPARE(keyFile.value(QLatin1String("param-escaped-semicolon")), QString(QLatin1String("s"))); + QCOMPARE(keyFile.value(QLatin1String("default-escaped-semicolon")), QString(QLatin1String("foo;bar"))); +} + +QTEST_MAIN(TestKeyFile) + +#include "_gen/key-file.cpp.moc.hpp" |