[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 ¶ms, const char *name);
+const ParamSpec *getParam(const ParamSpecList ¶ms, 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 ¶ms, const char *name)
+{
+ Q_FOREACH (const ParamSpec ¶m, params) {
+ if (param.name == name) {
+ return true;
+ }
+ }
+ return false;
+}
+
+const ParamSpec *getParam(const ParamSpecList ¶ms, const QString &name)
+{
+ Q_FOREACH (const ParamSpec ¶m, params) {
+ if (param.name == name) {
+ return ¶m;
+ }
+ }
+ 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