From 28fc0fd57cef3c6a93e5914db583a6cad3eceb90 Mon Sep 17 00:00:00 2001 From: Martin Kampas Date: Wed, 10 Apr 2013 07:54:43 +0200 Subject: [PATCH] ut_repomanager: initial commit --- tests/tests.pro | 1 + tests/tests.xml | 5 + tests/ut_repomanager/main.cpp | 26 ++++++ tests/ut_repomanager/repomanagertest.cpp | 91 +++++++++++++++++++ tests/ut_repomanager/repomanagertest.h | 20 ++++ .../ut_repomanager/testdata/ssu-defaults.ini | 1 + tests/ut_repomanager/testdata/ssu.ini | 14 +++ tests/ut_repomanager/ut_repomanager.pro | 16 ++++ .../ut_repomanager_dependencies.pri | 1 + 9 files changed, 175 insertions(+) create mode 100644 tests/ut_repomanager/main.cpp create mode 100644 tests/ut_repomanager/repomanagertest.cpp create mode 100644 tests/ut_repomanager/repomanagertest.h create mode 100644 tests/ut_repomanager/testdata/ssu-defaults.ini create mode 100644 tests/ut_repomanager/testdata/ssu.ini create mode 100644 tests/ut_repomanager/ut_repomanager.pro create mode 100644 tests/ut_repomanager/ut_repomanager_dependencies.pri 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)