From bba640d9c189be19d66c6294873b6ab8ffa4efc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 20 Oct 2016 12:22:05 +0200 Subject: ActionGroupTest: split tests depending on they need the helper script or not And cleanup units --- tests/client/actiongrouptest.cpp | 101 +++++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 47 deletions(-) (limited to 'tests') diff --git a/tests/client/actiongrouptest.cpp b/tests/client/actiongrouptest.cpp index d187ea7..cc43245 100644 --- a/tests/client/actiongrouptest.cpp +++ b/tests/client/actiongrouptest.cpp @@ -27,26 +27,15 @@ #include #include -class ActionGroupTest : public QObject +class ActionGroupTestBase : public QObject { Q_OBJECT -private: - DBusMenuScript m_script; +protected: QDBusMenuModel m_model; QDBusActionGroup m_actionGroup; -private Q_SLOTS: - void initTestCase() - { - QVERIFY(m_script.connect()); - } - - void cleanupTestCase() - { - m_script.quit(); - } - - void init() +protected Q_SLOTS: + virtual void init() { m_model.stop(); m_model.setBusType(DBusEnums::SessionBus); @@ -59,11 +48,6 @@ private Q_SLOTS: m_actionGroup.setObjectPath(MENU_OBJECT_PATH); } - void cleanup() - { - m_script.unpublishMenu(); - } - /* * Test if the propety busType handle correct integer values */ @@ -88,27 +72,57 @@ private Q_SLOTS: */ void testServiceAppear() { - m_model.start(); - m_actionGroup.start(); QCOMPARE(m_actionGroup.status(), DBusEnums::Connecting); // Make menu available + DBusMenuScript m_script; + m_script.connect(); m_script.publishMenu(); QCOMPARE(m_actionGroup.status(), DBusEnums::Connected); } +}; - /* - * Test if QDBusActionGroup change to correct state after DBus - * service disappear - */ - void testServiceDisappear() +class ActionGroupTestWithScript : public ActionGroupTestBase +{ + Q_OBJECT +private: + DBusMenuScript m_script; + +private Q_SLOTS: + void initTestCase() + { + QVERIFY(m_script.connect()); + } + + void cleanupTestCase() { + m_script.quit(); + } + + void init() + { + ActionGroupTestBase::init(); + + // start model m_model.start(); m_actionGroup.start(); // Make menu available m_script.publishMenu(); + } + + void cleanup() + { + m_script.unpublishMenu(); + } + + /* + * Test if QDBusActionGroup change to correct state after DBus + * service disappear + */ + void testServiceDisappear() + { QCOMPARE(m_actionGroup.status(), DBusEnums::Connected); // Append menus @@ -127,12 +141,7 @@ private Q_SLOTS: */ void testActiveAction() { - // start model - m_model.start(); - m_actionGroup.start(); - - // Make menu available - m_script.publishMenu(); + // Append 2 menus m_script.walk(2); // Get Action @@ -158,12 +167,7 @@ private Q_SLOTS: */ void testRemoveAction() { - // start model - m_model.start(); - m_actionGroup.start(); - - // Make menu available and append 2 menus - m_script.publishMenu(); + // Append 2 menus m_script.walk(2); // Get Action @@ -183,13 +187,6 @@ private Q_SLOTS: */ void testActionIsValid() { - // start model - m_model.start(); - m_actionGroup.start(); - - // Make menu available and append 2 menus - m_script.publishMenu(); - // Get invalid Action QStateAction *act = m_actionGroup.action(QString("Menu1Act")); QVERIFY(act); @@ -204,6 +201,16 @@ private Q_SLOTS: } }; -QTEST_MAIN(ActionGroupTest) +int main(int argc, char *argv[]) +{ + ActionGroupTestBase baseTests; + ActionGroupTestWithScript scriptTests; + + QApplication a(argc, argv); + int baseTestsResults = QTest::qExec(&baseTests); + int scriptTestsResults = QTest::qExec(&scriptTests); + + return std::max(baseTestsResults, scriptTestsResults); +} #include "actiongrouptest.moc" -- cgit v1.2.3