diff --git a/tests/tests.pro b/tests/tests.pro
index ab195f5..a4c143b 100644
--- a/tests/tests.pro
+++ b/tests/tests.pro
@@ -5,6 +5,7 @@ SUBDIRS = \
testutils/sandboxhook.pro \
ut_coreconfig \
ut_deviceinfo \
+ ut_repomanager \
ut_rndssucli \
ut_sandbox \
ut_settings \
diff --git a/tests/tests.xml b/tests/tests.xml
index 131cd0c..3905174 100644
--- a/tests/tests.xml
+++ b/tests/tests.xml
@@ -13,6 +13,11 @@
/opt/tests/ssu/runtest.sh ut_deviceinfo
+
+
+ /opt/tests/ssu/runtest.sh ut_repomanager
+
+
/opt/tests/ssu/runtest.sh ut_rndssucli
diff --git a/tests/ut_repomanager/main.cpp b/tests/ut_repomanager/main.cpp
new file mode 100644
index 0000000..bf999f6
--- /dev/null
+++ b/tests/ut_repomanager/main.cpp
@@ -0,0 +1,26 @@
+/**
+ * @file main.cpp
+ * @copyright 2012 Jolla Ltd.
+ * @author Martin Kampas
+ * @date 2012
+ */
+
+#include
+
+#include "libssu/sandbox_p.h"
+#include "repomanagertest.h"
+
+int main(int argc, char **argv){
+ Sandbox sandbox(QString("%1/configroot").arg(TESTS_DATA_PATH),
+ Sandbox::UseAsSkeleton, Sandbox::ThisProcess);
+ if (!sandbox.activate()){
+ qFatal("Failed to activate sandbox");
+ }
+
+ RepoManagerTest repomanagerTest;
+
+ if (QTest::qExec(&repomanagerTest, argc, argv))
+ return 1;
+
+ return 0;
+}
diff --git a/tests/ut_repomanager/repomanagertest.cpp b/tests/ut_repomanager/repomanagertest.cpp
new file mode 100644
index 0000000..3160a30
--- /dev/null
+++ b/tests/ut_repomanager/repomanagertest.cpp
@@ -0,0 +1,91 @@
+/**
+ * @file repomanagertest.cpp
+ * @copyright 2013 Jolla Ltd.
+ * @author Martin Kampas
+ * @date 2013
+ */
+
+#include "repomanagertest.h"
+
+#include
+
+#include "libssu/ssucoreconfig.h"
+#include "libssu/ssurepomanager.h"
+
+void RepoManagerTest::testSettings(){
+ SsuCoreConfig *const coreConfig = SsuCoreConfig::instance();
+ SsuRepoManager repoManager;
+
+ repoManager.add("repo1", "http://repo1");
+ QCOMPARE(coreConfig->value("repository-urls/repo1").toString(), QString("http://repo1"));
+ QVERIFY(!coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+
+ repoManager.enable("repo1");
+ QCOMPARE(coreConfig->value("repository-urls/repo1").toString(), QString("http://repo1"));
+ QVERIFY(!coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+
+ repoManager.add("repo1");
+ QCOMPARE(coreConfig->value("repository-urls/repo1").toString(), QString("http://repo1"));
+ QVERIFY(coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+
+ repoManager.disable("repo1");
+ QCOMPARE(coreConfig->value("repository-urls/repo1").toString(), QString("http://repo1"));
+ QVERIFY(coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+
+ repoManager.enable("repo1");
+ QCOMPARE(coreConfig->value("repository-urls/repo1").toString(), QString("http://repo1"));
+ QVERIFY(coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+
+ repoManager.add("repo2", "http://repo2");
+ QCOMPARE(coreConfig->value("repository-urls/repo1").toString(), QString("http://repo1"));
+ QVERIFY(coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+ QCOMPARE(coreConfig->value("repository-urls/repo2").toString(), QString("http://repo2"));
+ QVERIFY(!coreConfig->value("enabled-repos").toStringList().contains("repo2"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo2"));
+
+ repoManager.disable("repo2");
+ QCOMPARE(coreConfig->value("repository-urls/repo1").toString(), QString("http://repo1"));
+ QVERIFY(coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+ QCOMPARE(coreConfig->value("repository-urls/repo2").toString(), QString("http://repo2"));
+ QVERIFY(!coreConfig->value("enabled-repos").toStringList().contains("repo2"));
+ QVERIFY(coreConfig->value("disabled-repos").toStringList().contains("repo2"));
+
+ repoManager.enable("repo2");
+ QCOMPARE(coreConfig->value("repository-urls/repo1").toString(), QString("http://repo1"));
+ QVERIFY(coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+ QCOMPARE(coreConfig->value("repository-urls/repo2").toString(), QString("http://repo2"));
+ QVERIFY(!coreConfig->value("enabled-repos").toStringList().contains("repo2"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo2"));
+
+ repoManager.add("repo2");
+ QCOMPARE(coreConfig->value("repository-urls/repo1").toString(), QString("http://repo1"));
+ QVERIFY(coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+ QCOMPARE(coreConfig->value("repository-urls/repo2").toString(), QString("http://repo2"));
+ QVERIFY(coreConfig->value("enabled-repos").toStringList().contains("repo2"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo2"));
+
+ repoManager.remove("repo1");
+ QVERIFY(!coreConfig->contains("repository-urls/repo1"));
+ QVERIFY(!coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+ QCOMPARE(coreConfig->value("repository-urls/repo2").toString(), QString("http://repo2"));
+ QVERIFY(coreConfig->value("enabled-repos").toStringList().contains("repo2"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo2"));
+
+ repoManager.remove("repo2");
+ QVERIFY(!coreConfig->contains("repository-urls/repo1"));
+ QVERIFY(!coreConfig->value("enabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo1"));
+ QVERIFY(!coreConfig->contains("repository-urls/repo2"));
+ QVERIFY(!coreConfig->value("enabled-repos").toStringList().contains("repo2"));
+ QVERIFY(!coreConfig->value("disabled-repos").toStringList().contains("repo2"));
+}
diff --git a/tests/ut_repomanager/repomanagertest.h b/tests/ut_repomanager/repomanagertest.h
new file mode 100644
index 0000000..3ff0d9a
--- /dev/null
+++ b/tests/ut_repomanager/repomanagertest.h
@@ -0,0 +1,20 @@
+/**
+ * @file repomanagertest.h
+ * @copyright 2013 Jolla Ltd.
+ * @author Martin Kampas
+ * @date 2013
+ */
+
+#ifndef _REPOMANAGERTEST_H
+#define _REPOMANAGERTEST_H
+
+#include
+
+class RepoManagerTest: public QObject {
+ Q_OBJECT
+
+ private slots:
+ void testSettings();
+};
+
+#endif
diff --git a/tests/ut_repomanager/testdata/ssu-defaults.ini b/tests/ut_repomanager/testdata/ssu-defaults.ini
new file mode 100644
index 0000000..1bb8bf6
--- /dev/null
+++ b/tests/ut_repomanager/testdata/ssu-defaults.ini
@@ -0,0 +1 @@
+# empty
diff --git a/tests/ut_repomanager/testdata/ssu.ini b/tests/ut_repomanager/testdata/ssu.ini
new file mode 100644
index 0000000..82346d1
--- /dev/null
+++ b/tests/ut_repomanager/testdata/ssu.ini
@@ -0,0 +1,14 @@
+[General]
+initialized=true
+flavour=testing
+registered=false
+rndRelease=next
+release=latest
+adaptation=
+ca-certificate=
+credentials-scope=example
+credentials-url-example = http://creden.tia.ls/
+
+[repository-urls]
+
+[repository-url-variables]
diff --git a/tests/ut_repomanager/ut_repomanager.pro b/tests/ut_repomanager/ut_repomanager.pro
new file mode 100644
index 0000000..30b9bef
--- /dev/null
+++ b/tests/ut_repomanager/ut_repomanager.pro
@@ -0,0 +1,16 @@
+TARGET = ut_repomanager
+include(../testapplication.pri)
+include(ut_repomanager_dependencies.pri)
+
+HEADERS = \
+ repomanagertest.h \
+
+SOURCES = \
+ main.cpp \
+ repomanagertest.cpp \
+
+test_data_etc.files = \
+ testdata/ssu.ini \
+
+test_data_usr_share.files = \
+ testdata/ssu-defaults.ini \
diff --git a/tests/ut_repomanager/ut_repomanager_dependencies.pri b/tests/ut_repomanager/ut_repomanager_dependencies.pri
new file mode 100644
index 0000000..37c741f
--- /dev/null
+++ b/tests/ut_repomanager/ut_repomanager_dependencies.pri
@@ -0,0 +1 @@
+include(../../libssu/libssu.pri)