diff --git a/sources/test/CMakeLists.txt b/sources/test/CMakeLists.txt index 60aadd3..abe1114 100644 --- a/sources/test/CMakeLists.txt +++ b/sources/test/CMakeLists.txt @@ -16,7 +16,7 @@ file (GLOB SOURCES *.cpp) file (GLOB HEADERS *.h) # include_path -include_directories (${CMAKE_CURRENT_SOURCE_DIR}/../../${PROJECT_LIBRARY}/include/ +include_directories (${CMAKE_CURRENT_SOURCE_DIR}/../${PROJECT_LIBRARY}/include/ ${CMAKE_CURRENT_BINARY_DIR}/../ ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} diff --git a/sources/test/testnetctl.cpp b/sources/test/testnetctl.cpp index 0eee10c..10dfc74 100644 --- a/sources/test/testnetctl.cpp +++ b/sources/test/testnetctl.cpp @@ -23,31 +23,51 @@ #include -void TestNetctl::createTestProfile() +Netctl *TestNetctl::createNetctlObj() +{ + QMap settings = Netctl::getRecommendedConfiguration(); + settings[QString("FORCE_SUDO")] = QString("true"); + Netctl *netctl = new Netctl(false, settings); + + return netctl; +} + + +NetctlProfile *TestNetctl::createNetctlProfileObj() { QMap settings = NetctlProfile::getRecommendedConfiguration(); settings[QString("FORCE_SUDO")] = QString("true"); NetctlProfile *netctl = new NetctlProfile(false, settings); + return netctl; +} + + +void TestNetctl::createTestProfile() +{ + NetctlProfile *netctl = createNetctlProfileObj(); QMap profileSettings; profileSettings["Connection"] = QString("dummy"); - profileSettings["Description"] = QString("Simple test profile"); + profileSettings["Description"] = QString("\"Simple test profile\""); profileSettings["IP"] = QString("no"); profileSettings["IP6"] = QString("no"); - profileSettings["Interface"] = QString("test"); - - netctl->copyProfile(netctl->createProfile(QString("aaatest"), settings)); + profileSettings["Interface"] = QString("ngtest"); + netctl->copyProfile(netctl->createProfile(QString("netctlgui-test-dummy"), profileSettings)); + profileSettings["Connection"] = QString("dummy"); + profileSettings["Description"] = QString("\"Second simple test profile\""); + profileSettings["IP"] = QString("no"); + profileSettings["IP6"] = QString("no"); + profileSettings["Interface"] = QString("ngtest"); + netctl->copyProfile(netctl->createProfile(QString("netctlgui-test-dummy-snd"), profileSettings)); delete netctl; } void TestNetctl::removeTestProfile() { - QMap settings = NetctlProfile::getRecommendedConfiguration(); - settings[QString("FORCE_SUDO")] = QString("true"); - NetctlProfile *netctl = new NetctlProfile(false, settings); - - netctl->removeProfile(QString("aaatest")); + NetctlProfile *netctl = createNetctlProfileObj(); + netctl->removeProfile(QString("netctlgui-test-dummy")); + netctl->removeProfile(QString("netctlgui-test-dummy-snd")); delete netctl; } @@ -75,21 +95,31 @@ void TestNetctl::test_getRecommendedConfiguration() for (int i=0; i settings = Netctl::getRecommendedConfiguration(); - settings[QString("FORCE_SUDO")] = QString("true"); - Netctl *netctl = new Netctl(false, settings); - + Netctl *netctl = createNetctlObj(); createTestProfile(); - netctl->startProfile(QString("aaatest")); - QString original = QString("aaatest"); - QString result = netctl->getActiveProfile(); - netctl->startProfile(QString("aaatest")); + netctl->startProfile(QString("netctlgui-test-dummy")); + QStringList result = netctl->getActiveProfile(); + netctl->startProfile(QString("netctlgui-test-dummy")); + removeTestProfile(); + delete netctl; + + QVERIFY(result.contains(QString("netctlgui-test-dummy"))); +} + + +void TestNetctl::test_getProfileDescription() +{ + Netctl *netctl = createNetctlObj(); + createTestProfile(); + QString original = QString("Simple test profile"); + QString result = netctl->getProfileDescription(QString("netctlgui-test-dummy")); removeTestProfile(); delete netctl; @@ -97,4 +127,93 @@ void TestNetctl::test_getActiveProfile() } -QTEST_MAIN(TestNetctl) +void TestNetctl::test_getProfileStatus() +{ + Netctl *netctl = createNetctlObj(); + createTestProfile(); + QStringList original; + original.append(QString("inactive (static)")); + original.append(QString("active (static)")); + original.append(QString("active (enabled)")); + original.append(QString("inactive (enabled)")); + original.append(QString("inactive (static)")); + QStringList result; + result.append(netctl->getProfileStatus(QString("netctlgui-test-dummy"))); + netctl->startProfile(QString("netctlgui-test-dummy")); + result.append(netctl->getProfileStatus(QString("netctlgui-test-dummy"))); + netctl->enableProfile(QString("netctlgui-test-dummy")); + result.append(netctl->getProfileStatus(QString("netctlgui-test-dummy"))); + netctl->startProfile(QString("netctlgui-test-dummy")); + result.append(netctl->getProfileStatus(QString("netctlgui-test-dummy"))); + netctl->enableProfile(QString("netctlgui-test-dummy")); + result.append(netctl->getProfileStatus(QString("netctlgui-test-dummy"))); + removeTestProfile(); + delete netctl; + + QCOMPARE(result, original); +} + + +void TestNetctl::test_isProfileActive() +{ + Netctl *netctl = createNetctlObj(); + createTestProfile(); + QVERIFY(!netctl->isProfileActive(QString("netctlgui-test-dummy"))); + netctl->startProfile(QString("netctlgui-test-dummy")); + QVERIFY(netctl->isProfileActive(QString("netctlgui-test-dummy"))); + netctl->startProfile(QString("netctlgui-test-dummy")); + + removeTestProfile(); + delete netctl; +} + + +void TestNetctl::test_isProfileEnabled() +{ + Netctl *netctl = createNetctlObj(); + createTestProfile(); + QVERIFY(!netctl->isProfileEnabled(QString("netctlgui-test-dummy"))); + netctl->enableProfile(QString("netctlgui-test-dummy")); + QVERIFY(netctl->isProfileEnabled(QString("netctlgui-test-dummy"))); + netctl->enableProfile(QString("netctlgui-test-dummy")); + + removeTestProfile(); + delete netctl; +} + + +void TestNetctl::test_reenableProfile() +{ + Netctl *netctl = createNetctlObj(); + createTestProfile(); + QVERIFY(!netctl->isProfileEnabled(QString("netctlgui-test-dummy"))); + netctl->enableProfile(QString("netctlgui-test-dummy")); + QVERIFY(netctl->isProfileEnabled(QString("netctlgui-test-dummy"))); + QVERIFY(netctl->reenableProfile(QString("netctlgui-test-dummy"))); + QVERIFY(netctl->isProfileEnabled(QString("netctlgui-test-dummy"))); + netctl->enableProfile(QString("netctlgui-test-dummy")); + + removeTestProfile(); + delete netctl; +} + + +void TestNetctl::test_restartProfile() +{ + Netctl *netctl = createNetctlObj(); + createTestProfile(); + QVERIFY(!netctl->isProfileActive(QString("netctlgui-test-dummy"))); + netctl->startProfile(QString("netctlgui-test-dummy")); + QVERIFY(netctl->isProfileActive(QString("netctlgui-test-dummy"))); + QVERIFY(netctl->restartProfile(QString("netctlgui-test-dummy"))); + QVERIFY(netctl->isProfileActive(QString("netctlgui-test-dummy"))); + netctl->startProfile(QString("netctlgui-test-dummy")); + + removeTestProfile(); + delete netctl; +} + + +// TODO: unfortunately, some functions which is required to work +// with the working profile isn't tested here +QTEST_MAIN(TestNetctl); diff --git a/sources/test/testnetctl.h b/sources/test/testnetctl.h index 18851a3..d6ed4eb 100644 --- a/sources/test/testnetctl.h +++ b/sources/test/testnetctl.h @@ -21,6 +21,9 @@ #include +class Netctl; +class NetctlProfile; + class TestNetctl : public QObject { Q_OBJECT @@ -28,8 +31,16 @@ class TestNetctl : public QObject private slots: void test_getRecommendedConfiguration(); void test_getActiveProfile(); + void test_getProfileDescription(); + void test_getProfileStatus(); + void test_isProfileActive(); + void test_isProfileEnabled(); + void test_reenableProfile(); + void test_restartProfile(); private: + Netctl *createNetctlObj(); + NetctlProfile *createNetctlProfileObj(); void createTestProfile(); void removeTestProfile(); };