[Telepathy-commits] [telepathy-qt4/master] Added automated test for manager-file.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Mon Jan 5 11:13:35 PST 2009


---
 tests/Makefile.am                                  |   25 ++++++-
 tests/manager-file.cpp                             |   75 ++++++++++++++++++++
 .../managers/test-manager-file-invalid.manager     |    4 +
 tests/telepathy/managers/test-manager-file.manager |   21 ++++++
 4 files changed, 122 insertions(+), 3 deletions(-)
 create mode 100644 tests/manager-file.cpp
 create mode 100644 tests/telepathy/managers/test-manager-file-invalid.manager
 create mode 100644 tests/telepathy/managers/test-manager-file.manager

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6d47fac..b069d6e 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -4,22 +4,30 @@ SUBDIRS = \
     prototype
 
 TESTS = \
-    test-key-file
+    test-key-file \
+    test-manager-file
 
 noinst_PROGRAMS = $(TESTS)
 
-test_key_file_SOURCES = key-file.cpp
+test_key_file_SOURCES = \
+    key-file.cpp
+
+test_manager_file_SOURCES = \
+    manager-file.cpp
 
 BUILT_SOURCES = \
-    key-file.moc.hpp
+    key-file.moc.hpp \
+    manager-file.moc.hpp
 
 LDADD = \
     $(QTCORE_LIBS) \
+    $(QTDBUS_LIBS) \
     $(QTTEST_LIBS) \
     ${top_builddir}/TelepathyQt4/libtelepathy-qt4.la
 
 LIB_CFLAGS = \
     $(QTCORE_CFLAGS) \
+    $(QTDBUS_CFLAGS) \
     $(QTTEST_CFLAGS) \
     -I${top_srcdir}
 
@@ -27,6 +35,15 @@ AM_CXXFLAGS = \
     $(ERROR_CXXFLAGS) \
     $(LIB_CFLAGS)
 
+TESTS_ENV = \
+    abs_top_builddir=@abs_top_builddir@ \
+    abs_top_srcdir=@abs_top_srcdir@ \
+    XDG_DATA_HOME=@abs_top_builddir@/tests \
+    XDG_DATA_DIRS=@abs_top_srcdir@/tests
+
+TESTS_ENVIRONMENT = \
+    $(TESTS_ENV)
+
 CLEANFILES = \
     $(BUILT_SOURCES)
 
@@ -34,6 +51,8 @@ EXTRA_DIST = \
     README \
     dbus-1/services/spurious.service \
     telepathy/managers/spurious.manager \
+    telepathy/managers/test-manager-file.manager \
+    telepathy/managers/test-manager-file-invalid.manager \
     test-key-file.ini \
     test-key-file-format-error.ini
 
diff --git a/tests/manager-file.cpp b/tests/manager-file.cpp
new file mode 100644
index 0000000..93efef7
--- /dev/null
+++ b/tests/manager-file.cpp
@@ -0,0 +1,75 @@
+#include <QtTest/QtTest>
+
+#include <TelepathyQt4/Constants>
+#include <TelepathyQt4/ManagerFile>
+
+using namespace Telepathy;
+
+bool containsParam(const ParamSpecList &params, const char *name);
+const ParamSpec *getParam(const ParamSpecList &params, const QString &name);
+
+class TestManagerFile : public QObject
+{
+    Q_OBJECT
+
+private Q_SLOTS:
+    void testManagerFile();
+};
+
+void TestManagerFile::testManagerFile()
+{
+    ManagerFile notFoundManagerFile("test-manager-file-not-found");
+    QCOMPARE(notFoundManagerFile.isValid(), false);
+
+    ManagerFile invalidManagerFile("test-manager-file-invalid");
+    QCOMPARE(invalidManagerFile.isValid(), false);
+
+    ManagerFile managerFile("test-manager-file");
+    QCOMPARE(managerFile.isValid(), true);
+
+    QCOMPARE(managerFile.protocols(),
+             QStringList() << "foo" << "bar");
+
+    ParamSpecList params = managerFile.parameters("foo");
+    QCOMPARE(containsParam(params, "account"), true);
+    QCOMPARE(containsParam(params, "encryption-key"), true);
+    QCOMPARE(containsParam(params, "password"), true);
+    QCOMPARE(containsParam(params, "port"), true);
+    QCOMPARE(containsParam(params, "register"), true);
+    QCOMPARE(containsParam(params, "server-list"), true);
+    QCOMPARE(containsParam(params, "non-existant"), false);
+
+    const ParamSpec *param;
+    param = getParam(params, "account");
+    QCOMPARE(param->flags, (uint) ConnMgrParamFlagRequired | ConnMgrParamFlagHasDefault);
+    QCOMPARE(param->signature, QString("s"));
+    param = getParam(params, "password");
+    QCOMPARE(param->flags, (uint) ConnMgrParamFlagRequired | ConnMgrParamFlagSecret);
+    QCOMPARE(param->signature, QString("s"));
+    param = getParam(params, "encryption-key");
+    QCOMPARE(param->flags, (uint) ConnMgrParamFlagSecret);
+    QCOMPARE(param->signature, QString("s"));
+}
+
+bool containsParam(const ParamSpecList &params, const char *name)
+{
+    Q_FOREACH (const ParamSpec &param, params) {
+        if (param.name == name) {
+            return true;
+        }
+    }
+    return false;
+}
+
+const ParamSpec *getParam(const ParamSpecList &params, const QString &name)
+{
+    Q_FOREACH (const ParamSpec &param, params) {
+        if (param.name == name) {
+            return &param;
+        }
+    }
+    return NULL;
+}
+
+QTEST_MAIN(TestManagerFile)
+#include "manager-file.moc.hpp"
diff --git a/tests/telepathy/managers/test-manager-file-invalid.manager b/tests/telepathy/managers/test-manager-file-invalid.manager
new file mode 100644
index 0000000..6195fc8
--- /dev/null
+++ b/tests/telepathy/managers/test-manager-file-invalid.manager
@@ -0,0 +1,4 @@
+[Protocol foo
+
+[Protocol bar
+param-account = s required = =
diff --git a/tests/telepathy/managers/test-manager-file.manager b/tests/telepathy/managers/test-manager-file.manager
new file mode 100644
index 0000000..9029e95
--- /dev/null
+++ b/tests/telepathy/managers/test-manager-file.manager
@@ -0,0 +1,21 @@
+[Protocol foo]
+param-account = s required
+param-password = s required
+param-encryption-key = s secret
+param-port = q
+param-register = b
+param-server-list = as
+default-account = foo at default
+default-port = 1234
+default-server-list = foo;bar;
+
+[Protocol bar]
+param-account = s required
+param-encryption-key = s required secret
+param-password = s required
+param-port = q
+param-register = b
+param-server-list = as
+default-account = bar at default
+default-port = 4321
+default-server-list = bar;foo;
-- 
1.5.6.5




More information about the Telepathy-commits mailing list