summaryrefslogtreecommitdiffstats
path: root/tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp')
-rw-r--r--tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp305
1 files changed, 0 insertions, 305 deletions
diff --git a/tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp b/tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp
deleted file mode 100644
index 278ca858b2..0000000000
--- a/tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp
+++ /dev/null
@@ -1,305 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** 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 "qevent.h"
-#include "qdialog.h"
-#include "qpushbutton.h"
-#include "qdialogbuttonbox.h"
-#include "private/qsoftkeymanager_p.h"
-
-#ifdef Q_OS_SYMBIAN
-#include "qsymbianevent.h"
-#endif
-
-#ifdef Q_WS_S60
-static const int s60CommandStart = 6000;
-#endif
-
-
-class tst_QSoftKeyManager : public QObject
-{
-Q_OBJECT
-
-public:
- tst_QSoftKeyManager();
- virtual ~tst_QSoftKeyManager();
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
- void init();
- void cleanup();
-private slots:
- void updateSoftKeysCompressed();
- void handleCommand();
- void checkSoftkeyEnableStates();
- void noMergingOverWindowBoundary();
-
-private: // utils
- inline void simulateSymbianCommand(int command)
- {
- QSymbianEvent event1(QSymbianEvent::CommandEvent, command);
- qApp->symbianProcessEvent(&event1);
- };
-};
-
-class EventListener : public QObject
-{
-public:
- EventListener(QObject *listenTo)
- {
- resetCounts();
- if (listenTo)
- listenTo->installEventFilter(this);
- }
-
- void resetCounts()
- {
- numUpdateSoftKeys = 0;
- }
-
- int numUpdateSoftKeys;
-
-protected:
- bool eventFilter(QObject * /*object*/, QEvent *event)
- {
- if (event->type() == QEvent::UpdateSoftKeys)
- numUpdateSoftKeys++;
- return false;
- }
-};
-
-tst_QSoftKeyManager::tst_QSoftKeyManager() : QObject()
-{
-}
-
-tst_QSoftKeyManager::~tst_QSoftKeyManager()
-{
-}
-
-void tst_QSoftKeyManager::initTestCase()
-{
-}
-
-void tst_QSoftKeyManager::cleanupTestCase()
-{
-}
-
-void tst_QSoftKeyManager::init()
-{
-}
-
-void tst_QSoftKeyManager::cleanup()
-{
-}
-
-/*
- This tests that we only get one UpdateSoftKeys event even though
- multiple events that trigger soft keys occur.
-*/
-void tst_QSoftKeyManager::updateSoftKeysCompressed()
-{
- QWidget w;
- EventListener listener(qApp);
-
- QList<QAction *> softKeys;
- for (int i = 0; i < 10; ++i) {
- QAction *action = new QAction("foo", &w);
- action->setSoftKeyRole(QAction::PositiveSoftKey);
- softKeys << action;
- }
- w.addActions(softKeys);
-
- QApplication::processEvents();
-
- QVERIFY(listener.numUpdateSoftKeys == 1);
-}
-
-/*
- This tests that when the S60 environment sends us a command
- that it actually gets mapped to the correct action.
-*/
-void tst_QSoftKeyManager::handleCommand()
-{
- QDialog w;
- QDialogButtonBox *buttons = new QDialogButtonBox(
- QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
- Qt::Horizontal,
- &w);
-
- w.show();
- QApplication::processEvents();
-
- QCOMPARE(w.actions().count(), 2);
-
- QSignalSpy spy0(w.actions()[0], SIGNAL(triggered()));
- QSignalSpy spy1(w.actions()[1], SIGNAL(triggered()));
-
- // These should work eventually, but do not yet
-// QTest::keyPress(&w, Qt::Key_Context1);
-// QTest::keyPress(&w, Qt::Key_Context2);
-
- simulateSymbianCommand(s60CommandStart); //0 = LSK position
- simulateSymbianCommand(s60CommandStart + 2); //2 = RSK position
-
- QApplication::processEvents();
-
- QCOMPARE(spy0.count(), 1);
- QCOMPARE(spy1.count(), 1);
-}
-
-/*
- This tests that the state of a widget that owns softkey action is respected when handling the softkey
- command.
-*/
-void tst_QSoftKeyManager::checkSoftkeyEnableStates()
-{
- QDialog w;
- QDialogButtonBox *buttons = new QDialogButtonBox(
- QDialogButtonBox::RestoreDefaults | QDialogButtonBox::Help,
- Qt::Horizontal,
- &w);
- QPushButton *pBDefaults = buttons->button(QDialogButtonBox::RestoreDefaults);
- QPushButton *pBHelp = buttons->button(QDialogButtonBox::Help);
- pBHelp->setEnabled(false);
- w.show();
- QApplication::processEvents();
-
- //According to StandardButton enum in QDialogButtonBox the Help action
- //is inserted before RestoreDefaults and thus help action is in index 0
- QSignalSpy spy0(w.actions()[0], SIGNAL(triggered())); //disabled help action
- QSignalSpy spy1(w.actions()[1], SIGNAL(triggered())); //restore defaults action
-
- //Verify that enabled button gets all the action trigger signals and
- //disabled button gets none.
- for (int i = 0; i < 10; i++) {
- //simulate "help" softkey press
- simulateSymbianCommand(s60CommandStart);
- //simulate "Restore Defaults" softkey press
- simulateSymbianCommand(s60CommandStart + 2);
- }
- QApplication::processEvents();
- //Restore defaults button is enabled and its signals are recorded to spy1
- QCOMPARE(spy0.count(), 0);
- QCOMPARE(spy1.count(), 10);
-
- spy0.clear();
- spy1.clear();
-
- for (int i = 0; i < 10; i++) {
- //simulate "help" softkey press
- simulateSymbianCommand(s60CommandStart);
- //simulate "Restore Defaults" softkey press
- simulateSymbianCommand(s60CommandStart + 2);
- //switch enabled button to disabled and vice versa
- pBHelp->setEnabled(!pBHelp->isEnabled());
- pBDefaults->setEnabled(!pBDefaults->isEnabled());
- }
- QApplication::processEvents();
- QCOMPARE(spy0.count(), 5);
- QCOMPARE(spy1.count(), 5);
-}
-
-/*
- This tests that the softkeys are not merged over window boundaries. I.e. dialogs
- don't get softkeys of base widget by default - QTBUG-6163.
-*/
-void tst_QSoftKeyManager::noMergingOverWindowBoundary()
-{
- // Create base window against which the dialog softkeys will ve verified
- QWidget base;
-
- QAction* baseLeft = new QAction(tr("BaseLeft"), &base);
- baseLeft->setSoftKeyRole(QAction::PositiveSoftKey);
- base.addAction(baseLeft);
-
- QAction* baseRight = new QAction(tr("BaseRight"), &base);
- baseRight->setSoftKeyRole(QAction::NegativeSoftKey);
- base.addAction(baseRight);
-
- base.showMaximized();
- QApplication::processEvents();
-
- QSignalSpy baseLeftSpy(baseLeft, SIGNAL(triggered()));
- QSignalSpy baseRightSpy(baseRight, SIGNAL(triggered()));
-
- //Verify that both base softkeys emit triggered signals
- simulateSymbianCommand(s60CommandStart);
- simulateSymbianCommand(s60CommandStart + 2);
-
- QCOMPARE(baseLeftSpy.count(), 1);
- QCOMPARE(baseRightSpy.count(), 1);
- baseLeftSpy.clear();
- baseRightSpy.clear();
-
- // Verify that no softkey merging when using dialog without parent
- QDialog dlg;
- dlg.show();
-
- QApplication::processEvents();
-
- simulateSymbianCommand(s60CommandStart);
- simulateSymbianCommand(s60CommandStart + 2);
-
- QCOMPARE(baseLeftSpy.count(), 0);
- QCOMPARE(baseRightSpy.count(), 0);
-
- // Ensure base view has focus again
- dlg.hide();
- base.showMaximized();
-
- // Verify that no softkey merging when using dialog with parent
- QDialog dlg2(&base);
- dlg2.show();
-
- QApplication::processEvents();
-
- simulateSymbianCommand(s60CommandStart);
- simulateSymbianCommand(s60CommandStart + 2);
-
- QCOMPARE(baseLeftSpy.count(), 0);
- QCOMPARE(baseRightSpy.count(), 0);
-}
-
-QTEST_MAIN(tst_QSoftKeyManager)
-#include "tst_qsoftkeymanager.moc"