summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMailson Menezes <mailson.menezes@openbossa.org>2012-03-09 19:29:13 -0300
committerAnselmo L. S. Melo <anselmo.melo@openbossa.org>2012-03-15 14:23:32 +0100
commit3826e025ddf7177bcdc2da93b3b10f4e47cc217e (patch)
treef53f232a0f35293b8ed915dfa288708a69749e80
parent3c99e49b2307d34c92538c1414a28a982f34a0c3 (diff)
UiActionGroup tests
Change-Id: Ifa13440662abebba1e3f163b07bc8884c78eceb6 Reviewed-by: Anselmo L. S. Melo <anselmo.melo@openbossa.org>
-rw-r--r--tests/auto/utils/uiactiongroup/.gitignore1
-rw-r--r--tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp251
-rw-r--r--tests/auto/utils/uiactiongroup/uiactiongroup.pro4
-rw-r--r--tests/auto/utils/utils.pro3
4 files changed, 258 insertions, 1 deletions
diff --git a/tests/auto/utils/uiactiongroup/.gitignore b/tests/auto/utils/uiactiongroup/.gitignore
new file mode 100644
index 0000000..6540288
--- /dev/null
+++ b/tests/auto/utils/uiactiongroup/.gitignore
@@ -0,0 +1 @@
+tst_uiactiongroup
diff --git a/tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp b/tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp
new file mode 100644
index 0000000..d000c93
--- /dev/null
+++ b/tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp
@@ -0,0 +1,251 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+#include <UiHelpers/UiAction>
+#include <UiHelpers/UiActionGroup>
+
+QT_USE_NAMESPACE_UIHELPERS
+
+// #include <qmainwindow.h>
+// #include <qmenu.h>
+// #include <qaction.h>
+
+class tst_UiActionGroup : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void enabledPropagation();
+ // void visiblePropagation();
+ void exclusive();
+ // void separators();
+ void testActionInTwoUiActionGroup();
+ void unCheckCurrentAction();
+};
+
+void tst_UiActionGroup::enabledPropagation()
+{
+ UiActionGroup testActionGroup( 0 );
+
+ UiAction* childAction = new UiAction( &testActionGroup );
+ UiAction* anotherChildAction = new UiAction( &testActionGroup );
+ UiAction* freeAction = new UiAction(0);
+
+ QVERIFY( testActionGroup.isEnabled() );
+ QVERIFY( childAction->isEnabled() );
+
+ testActionGroup.setEnabled( false );
+ QVERIFY( !testActionGroup.isEnabled() );
+ QVERIFY( !childAction->isEnabled() );
+ QVERIFY( !anotherChildAction->isEnabled() );
+
+ childAction->setEnabled(true);
+ QVERIFY( !childAction->isEnabled());
+
+ anotherChildAction->setEnabled( false );
+
+ testActionGroup.setEnabled( true );
+ QVERIFY( testActionGroup.isEnabled() );
+ QVERIFY( childAction->isEnabled() );
+ QVERIFY( !anotherChildAction->isEnabled() );
+
+ testActionGroup.setEnabled( false );
+ UiAction *lastChildAction = new UiAction(&testActionGroup);
+
+ QVERIFY(!lastChildAction->isEnabled());
+ testActionGroup.setEnabled( true );
+ QVERIFY(lastChildAction->isEnabled());
+
+ freeAction->setEnabled(false);
+ testActionGroup.addAction(freeAction);
+ QVERIFY(!freeAction->isEnabled());
+ delete freeAction;
+}
+
+// void tst_QActionGroup::visiblePropagation()
+// {
+// QActionGroup testActionGroup( 0 );
+//
+// QAction* childAction = new QAction( &testActionGroup );
+// QAction* anotherChildAction = new QAction( &testActionGroup );
+// QAction* freeAction = new QAction(0);
+//
+// QVERIFY( testActionGroup.isVisible() );
+// QVERIFY( childAction->isVisible() );
+//
+// testActionGroup.setVisible( false );
+// QVERIFY( !testActionGroup.isVisible() );
+// QVERIFY( !childAction->isVisible() );
+// QVERIFY( !anotherChildAction->isVisible() );
+//
+// anotherChildAction->setVisible(false);
+//
+// testActionGroup.setVisible( true );
+// QVERIFY( testActionGroup.isVisible() );
+// QVERIFY( childAction->isVisible() );
+//
+// QVERIFY( !anotherChildAction->isVisible() );
+//
+// testActionGroup.setVisible( false );
+// QAction *lastChildAction = new QAction(&testActionGroup);
+//
+// QVERIFY(!lastChildAction->isVisible());
+// testActionGroup.setVisible( true );
+// QVERIFY(lastChildAction->isVisible());
+//
+// freeAction->setVisible(false);
+// testActionGroup.addAction(freeAction);
+// QVERIFY(!freeAction->isVisible());
+// delete freeAction;
+// }
+
+void tst_UiActionGroup::exclusive()
+{
+ UiActionGroup group(0);
+ group.setExclusive(false);
+ QVERIFY( !group.isExclusive() );
+
+ UiAction* actOne = new UiAction( &group );
+ actOne->setCheckable( true );
+ UiAction* actTwo = new UiAction( &group );
+ actTwo->setCheckable( true );
+ UiAction* actThree = new UiAction( &group );
+ actThree->setCheckable( true );
+
+ group.setExclusive( true );
+ QVERIFY( !actOne->isChecked() );
+ QVERIFY( !actTwo->isChecked() );
+ QVERIFY( !actThree->isChecked() );
+
+ actOne->setChecked( true );
+ QVERIFY( actOne->isChecked() );
+ QVERIFY( !actTwo->isChecked() );
+ QVERIFY( !actThree->isChecked() );
+
+ actTwo->setChecked( true );
+ QVERIFY( !actOne->isChecked() );
+ QVERIFY( actTwo->isChecked() );
+ QVERIFY( !actThree->isChecked() );
+}
+
+// void tst_QActionGroup::separators()
+// {
+// QMainWindow mw;
+// QMenu menu(&mw);
+// QActionGroup actGroup(&mw);
+//
+// mw.show();
+//
+// #ifdef QT_SOFTKEYS_ENABLED
+// // Softkeys add extra "Select" and "Back" actions to menu by default.
+// // Two first actions will be Select and Back when softkeys are enabled
+// int numSoftkeyActions = 2;
+// #else
+// int numSoftkeyActions = 0;
+// #endif
+//
+// QAction *action = new QAction(&actGroup);
+// action->setText("test one");
+//
+// QAction *separator = new QAction(&actGroup);
+// separator->setSeparator(true);
+// actGroup.addAction(separator);
+//
+// QListIterator<QAction*> it(actGroup.actions());
+// while (it.hasNext())
+// menu.addAction(it.next());
+//
+// QCOMPARE((int)menu.actions().size(), 2 + numSoftkeyActions);
+//
+// it = QListIterator<QAction*>(actGroup.actions());
+// while (it.hasNext())
+// menu.removeAction(it.next());
+//
+// QCOMPARE((int)menu.actions().size(), 0 + numSoftkeyActions);
+//
+// action = new QAction(&actGroup);
+// action->setText("test two");
+//
+// it = QListIterator<QAction*>(actGroup.actions());
+// while (it.hasNext())
+// menu.addAction(it.next());
+//
+// QCOMPARE((int)menu.actions().size(), 3 + numSoftkeyActions);
+// }
+
+void tst_UiActionGroup::testActionInTwoUiActionGroup()
+{
+ UiAction action1("Action 1", this);
+
+ UiActionGroup group1(this);
+ UiActionGroup group2(this);
+
+ group1.addAction(&action1);
+ group2.addAction(&action1);
+
+ QCOMPARE(action1.actionGroup(), &group2);
+ QCOMPARE(group2.actions().first(), &action1);
+ QCOMPARE(group1.actions().isEmpty(), true);
+}
+
+void tst_UiActionGroup::unCheckCurrentAction()
+{
+ UiActionGroup group(0);
+ UiAction action1(&group) ,action2(&group);
+ action1.setCheckable(true);
+ action2.setCheckable(true);
+ QVERIFY(!action1.isChecked());
+ QVERIFY(!action2.isChecked());
+ action1.setChecked(true);
+ QVERIFY(action1.isChecked());
+ QVERIFY(!action2.isChecked());
+ UiAction *current = group.checkedAction();
+ QCOMPARE(current, &action1);
+ current->setChecked(false);
+ QVERIFY(!action1.isChecked());
+ QVERIFY(!action2.isChecked());
+ QVERIFY(group.checkedAction() == 0);
+}
+
+
+QTEST_MAIN(tst_UiActionGroup)
+#include "tst_uiactiongroup.moc"
diff --git a/tests/auto/utils/uiactiongroup/uiactiongroup.pro b/tests/auto/utils/uiactiongroup/uiactiongroup.pro
new file mode 100644
index 0000000..96a8885
--- /dev/null
+++ b/tests/auto/utils/uiactiongroup/uiactiongroup.pro
@@ -0,0 +1,4 @@
+CONFIG += testcase
+TARGET = tst_uiactiongroup
+QT += testlib uihelpers
+SOURCES += tst_uiactiongroup.cpp
diff --git a/tests/auto/utils/utils.pro b/tests/auto/utils/utils.pro
index 81a95e8..ff8478d 100644
--- a/tests/auto/utils/utils.pro
+++ b/tests/auto/utils/utils.pro
@@ -2,4 +2,5 @@ TEMPLATE=subdirs
SUBDIRS=\
uiundogroup \
uiundostack \
- uiaction
+ uiaction \
+ uiactiongroup