diff options
author | Mailson Menezes <mailson.menezes@openbossa.org> | 2012-03-09 19:29:13 -0300 |
---|---|---|
committer | Anselmo L. S. Melo <anselmo.melo@openbossa.org> | 2012-03-15 14:23:32 +0100 |
commit | 3826e025ddf7177bcdc2da93b3b10f4e47cc217e (patch) | |
tree | f53f232a0f35293b8ed915dfa288708a69749e80 | |
parent | 3c99e49b2307d34c92538c1414a28a982f34a0c3 (diff) |
UiActionGroup tests
Change-Id: Ifa13440662abebba1e3f163b07bc8884c78eceb6
Reviewed-by: Anselmo L. S. Melo <anselmo.melo@openbossa.org>
-rw-r--r-- | tests/auto/utils/uiactiongroup/.gitignore | 1 | ||||
-rw-r--r-- | tests/auto/utils/uiactiongroup/tst_uiactiongroup.cpp | 251 | ||||
-rw-r--r-- | tests/auto/utils/uiactiongroup/uiactiongroup.pro | 4 | ||||
-rw-r--r-- | tests/auto/utils/utils.pro | 3 |
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 |