diff options
author | Jo Asplin <jo.asplin@nokia.com> | 2011-10-20 13:17:26 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-20 19:45:41 +0200 |
commit | 9f1aa866bda7678261f2f441d4cfd5bb524c2411 (patch) | |
tree | 5028f578122e7feb9200d571405494c73d96db89 /tests/auto/qfocusevent | |
parent | 78d02e93aca5325fc5be9bfd275862795207abaa (diff) |
Moved tests into integrationtests/ and widgets/
Task-number: QTBUG-19013
Change-Id: Ibb776f5967c0645ce6d22ef7afdc40657c575461
Reviewed-by: Holger Ihrig <holger.ihrig@nokia.com>
Diffstat (limited to 'tests/auto/qfocusevent')
-rw-r--r-- | tests/auto/qfocusevent/.gitignore | 1 | ||||
-rw-r--r-- | tests/auto/qfocusevent/qfocusevent.pro | 3 | ||||
-rw-r--r-- | tests/auto/qfocusevent/tst_qfocusevent.cpp | 395 |
3 files changed, 0 insertions, 399 deletions
diff --git a/tests/auto/qfocusevent/.gitignore b/tests/auto/qfocusevent/.gitignore deleted file mode 100644 index f189d8aeb9..0000000000 --- a/tests/auto/qfocusevent/.gitignore +++ /dev/null @@ -1 +0,0 @@ -tst_qfocusevent diff --git a/tests/auto/qfocusevent/qfocusevent.pro b/tests/auto/qfocusevent/qfocusevent.pro deleted file mode 100644 index d904a0b0bf..0000000000 --- a/tests/auto/qfocusevent/qfocusevent.pro +++ /dev/null @@ -1,3 +0,0 @@ -load(qttest_p4) -QT += widgets -SOURCES += tst_qfocusevent.cpp diff --git a/tests/auto/qfocusevent/tst_qfocusevent.cpp b/tests/auto/qfocusevent/tst_qfocusevent.cpp deleted file mode 100644 index 931059b211..0000000000 --- a/tests/auto/qfocusevent/tst_qfocusevent.cpp +++ /dev/null @@ -1,395 +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 <qapplication.h> -#include <qlineedit.h> -#include <qmenu.h> -#include <qlabel.h> -#include <qdialog.h> -#include <qevent.h> -#include <qlineedit.h> -#include <QBoxLayout> - -QT_FORWARD_DECLARE_CLASS(QWidget) - -//TESTED_CLASS= -//TESTED_FILES=gui/kernel/qevent.h gui/kernel/qevent.cpp - -class FocusLineEdit : public QLineEdit -{ -public: - FocusLineEdit( QWidget* parent = 0, const char* name = 0 ) : QLineEdit(name, parent) {} - int focusInEventReason; - int focusOutEventReason; - bool focusInEventRecieved; - bool focusInEventGotFocus; - bool focusOutEventRecieved; - bool focusOutEventLostFocus; -protected: - virtual void keyPressEvent( QKeyEvent *e ) - { -// qDebug( QString("keyPressEvent: %1").arg(e->key()) ); - QLineEdit::keyPressEvent( e ); - } - void focusInEvent( QFocusEvent* e ) - { - QLineEdit::focusInEvent( e ); - focusInEventReason = e->reason(); - focusInEventGotFocus = e->gotFocus(); - focusInEventRecieved = TRUE; - } - void focusOutEvent( QFocusEvent* e ) - { - QLineEdit::focusOutEvent( e ); - focusOutEventReason = e->reason(); - focusOutEventLostFocus = !e->gotFocus(); - focusOutEventRecieved = TRUE; - } -}; - -class tst_QFocusEvent : public QObject -{ - Q_OBJECT - -public: - tst_QFocusEvent(); - virtual ~tst_QFocusEvent(); - - - void initWidget(); - -public slots: - void initTestCase(); - void cleanupTestCase(); - void init(); - void cleanup(); -private slots: - void checkReason_Tab(); - void checkReason_ShiftTab(); -#ifndef Q_OS_WIN32 - void checkReason_BackTab(); -#endif - void checkReason_Popup(); - void checkReason_focusWidget(); - void checkReason_Shortcut(); - void checkReason_ActiveWindow(); - -private: - QWidget* testFocusWidget; - FocusLineEdit* childFocusWidgetOne; - FocusLineEdit* childFocusWidgetTwo; -}; - -tst_QFocusEvent::tst_QFocusEvent() -{ -} - -tst_QFocusEvent::~tst_QFocusEvent() -{ - -} - -void tst_QFocusEvent::initTestCase() -{ - testFocusWidget = new QWidget( 0 ); - childFocusWidgetOne = new FocusLineEdit( testFocusWidget ); - childFocusWidgetOne->setGeometry( 10, 10, 180, 20 ); - childFocusWidgetTwo = new FocusLineEdit( testFocusWidget ); - childFocusWidgetTwo->setGeometry( 10, 50, 180, 20 ); - - //qApp->setMainWidget( testFocusWidget ); Qt4 - testFocusWidget->resize( 200,100 ); - testFocusWidget->show(); -// Applications don't get focus when launched from the command line on Mac. -#ifdef Q_WS_MAC - testFocusWidget->raise(); -#endif -} - -void tst_QFocusEvent::cleanupTestCase() -{ - delete testFocusWidget; -} - -void tst_QFocusEvent::init() -{ -} - -void tst_QFocusEvent::cleanup() -{ - childFocusWidgetTwo->setGeometry( 10, 50, 180, 20 ); -} - -void tst_QFocusEvent::initWidget() -{ - // On X11 we have to ensure the event was processed before doing any checking, on Windows - // this is processed straight away. - QApplication::setActiveWindow(childFocusWidgetOne); - - for (int i = 0; i < 1000; ++i) { - if (childFocusWidgetOne->isActiveWindow() && childFocusWidgetOne->hasFocus()) - break; - childFocusWidgetOne->activateWindow(); - childFocusWidgetOne->setFocus(); - qApp->processEvents(); - QTest::qWait(100); - } - - // The first lineedit should have focus - QVERIFY( childFocusWidgetOne->hasFocus() ); - - childFocusWidgetOne->focusInEventRecieved = FALSE; - childFocusWidgetOne->focusInEventGotFocus = FALSE; - childFocusWidgetOne->focusInEventReason = -1; - childFocusWidgetOne->focusOutEventRecieved = FALSE; - childFocusWidgetOne->focusOutEventLostFocus = FALSE; - childFocusWidgetOne->focusOutEventReason = -1; - childFocusWidgetTwo->focusInEventRecieved = FALSE; - childFocusWidgetTwo->focusInEventGotFocus = FALSE; - childFocusWidgetTwo->focusInEventReason = -1; - childFocusWidgetTwo->focusOutEventRecieved = FALSE; - childFocusWidgetTwo->focusOutEventLostFocus = FALSE; - childFocusWidgetTwo->focusOutEventReason = -1; -} - -void tst_QFocusEvent::checkReason_Tab() -{ - initWidget(); - - // Now test the tab key - QTest::keyClick( childFocusWidgetOne, Qt::Key_Tab ); - - QVERIFY(childFocusWidgetOne->focusOutEventRecieved); - QVERIFY(childFocusWidgetTwo->focusInEventRecieved); - QVERIFY(childFocusWidgetOne->focusOutEventLostFocus); - QVERIFY(childFocusWidgetTwo->focusInEventGotFocus); - - QVERIFY( childFocusWidgetTwo->hasFocus() ); - QCOMPARE( childFocusWidgetOne->focusOutEventReason, (int) Qt::TabFocusReason ); - QCOMPARE( childFocusWidgetTwo->focusInEventReason, (int) Qt::TabFocusReason ); -} - -void tst_QFocusEvent::checkReason_ShiftTab() -{ - initWidget(); - - // Now test the shift + tab key - QTest::keyClick( childFocusWidgetOne, Qt::Key_Tab, Qt::ShiftModifier ); - - QVERIFY(childFocusWidgetOne->focusOutEventRecieved); - QVERIFY(childFocusWidgetTwo->focusInEventRecieved); - QVERIFY(childFocusWidgetOne->focusOutEventLostFocus); - QVERIFY(childFocusWidgetTwo->focusInEventGotFocus); - - QVERIFY( childFocusWidgetTwo->hasFocus() ); - QCOMPARE( childFocusWidgetOne->focusOutEventReason, (int)Qt::BacktabFocusReason ); - QCOMPARE( childFocusWidgetTwo->focusInEventReason, (int)Qt::BacktabFocusReason ); - -} - -/*! - In this test we verify that the Qt::KeyBacktab key is handled in a qfocusevent -*/ -// Backtab is not supported on Windows. -#ifndef Q_OS_WIN32 -void tst_QFocusEvent::checkReason_BackTab() -{ - initWidget(); - QVERIFY( childFocusWidgetOne->hasFocus() ); - - // Now test the backtab key - QTest::keyClick( childFocusWidgetOne, Qt::Key_Backtab ); - QTest::qWait(200); - - QTRY_VERIFY(childFocusWidgetOne->focusOutEventRecieved); - QVERIFY(childFocusWidgetTwo->focusInEventRecieved); - QVERIFY(childFocusWidgetOne->focusOutEventLostFocus); - QVERIFY(childFocusWidgetTwo->focusInEventGotFocus); - - QVERIFY( childFocusWidgetTwo->hasFocus() ); - QCOMPARE( childFocusWidgetOne->focusOutEventReason, int(Qt::BacktabFocusReason) ); - QCOMPARE( childFocusWidgetTwo->focusInEventReason, int(Qt::BacktabFocusReason) ); -} -#endif - -void tst_QFocusEvent::checkReason_Popup() -{ - initWidget(); - - // Now test the popup reason - QMenu* popupMenu = new QMenu( testFocusWidget ); - popupMenu->addMenu( "Test" ); - popupMenu->popup( QPoint(0,0) ); - QTest::qWait(50); - - QTRY_VERIFY(childFocusWidgetOne->focusOutEventLostFocus); - - QTRY_VERIFY( childFocusWidgetOne->hasFocus() ); - QVERIFY( !childFocusWidgetOne->focusInEventRecieved ); - QVERIFY( childFocusWidgetOne->focusOutEventRecieved ); - QVERIFY( !childFocusWidgetTwo->focusInEventRecieved ); - QVERIFY( !childFocusWidgetTwo->focusOutEventRecieved ); - QCOMPARE( childFocusWidgetOne->focusOutEventReason, int(Qt::PopupFocusReason)); - - popupMenu->hide(); - - QVERIFY(childFocusWidgetOne->focusInEventRecieved); - QVERIFY(childFocusWidgetOne->focusInEventGotFocus); - - QVERIFY( childFocusWidgetOne->hasFocus() ); - QVERIFY( childFocusWidgetOne->focusInEventRecieved ); - QVERIFY( childFocusWidgetOne->focusOutEventRecieved ); - QVERIFY( !childFocusWidgetTwo->focusInEventRecieved ); - QVERIFY( !childFocusWidgetTwo->focusOutEventRecieved ); -} - -#ifdef Q_WS_MAC -QT_BEGIN_NAMESPACE - extern void qt_set_sequence_auto_mnemonic(bool); -QT_END_NAMESPACE -#endif - -void tst_QFocusEvent::checkReason_Shortcut() -{ - initWidget(); -#ifdef Q_WS_MAC - qt_set_sequence_auto_mnemonic(true); -#endif - QLabel* label = new QLabel( "&Test", testFocusWidget ); - label->setBuddy( childFocusWidgetTwo ); - label->setGeometry( 10, 50, 90, 20 ); - childFocusWidgetTwo->setGeometry( 105, 50, 95, 20 ); - label->show(); - - QVERIFY( childFocusWidgetOne->hasFocus() ); - QVERIFY( !childFocusWidgetTwo->hasFocus() ); - - QTest::keyClick( label, Qt::Key_T, Qt::AltModifier ); - - QVERIFY(childFocusWidgetOne->focusOutEventRecieved); - QVERIFY(childFocusWidgetTwo->focusInEventRecieved); - QVERIFY(childFocusWidgetOne->focusOutEventLostFocus); - QVERIFY(childFocusWidgetTwo->focusInEventGotFocus); - - QVERIFY( childFocusWidgetTwo->hasFocus() ); - QVERIFY( !childFocusWidgetOne->focusInEventRecieved ); - QVERIFY( childFocusWidgetOne->focusOutEventRecieved ); - QCOMPARE( childFocusWidgetOne->focusOutEventReason, (int)Qt::ShortcutFocusReason ); - QVERIFY( childFocusWidgetTwo->focusInEventRecieved ); - QCOMPARE( childFocusWidgetTwo->focusInEventReason, (int)Qt::ShortcutFocusReason ); - QVERIFY( !childFocusWidgetTwo->focusOutEventRecieved ); - - label->hide(); - QVERIFY( childFocusWidgetTwo->hasFocus() ); - QVERIFY( !childFocusWidgetOne->hasFocus() ); -#ifdef Q_WS_MAC - qt_set_sequence_auto_mnemonic(false); -#endif -} - -void tst_QFocusEvent::checkReason_focusWidget() -{ - // This test checks that a widget doesn't loose - // its focuswidget just because the focuswidget looses focus. - QWidget window1; - QWidget frame1; - QWidget frame2; - QLineEdit edit1; - QLineEdit edit2; - - QVBoxLayout outerLayout; - outerLayout.addWidget(&frame1); - outerLayout.addWidget(&frame2); - window1.setLayout(&outerLayout); - - QVBoxLayout leftLayout; - QVBoxLayout rightLayout; - leftLayout.addWidget(&edit1); - rightLayout.addWidget(&edit2); - frame1.setLayout(&leftLayout); - frame2.setLayout(&rightLayout); - window1.show(); - - edit1.setFocus(); - QTest::qWait(100); - edit2.setFocus(); - - QVERIFY(frame1.focusWidget() != 0); - QVERIFY(frame2.focusWidget() != 0); -} - -void tst_QFocusEvent::checkReason_ActiveWindow() -{ - initWidget(); - - QDialog* d = new QDialog( testFocusWidget ); - d->show(); - d->activateWindow(); // ### CDE - QApplication::setActiveWindow(d); - QTest::qWaitForWindowShown(d); - - QTRY_VERIFY(childFocusWidgetOne->focusOutEventRecieved); - QVERIFY(childFocusWidgetOne->focusOutEventLostFocus); - - QVERIFY( !childFocusWidgetOne->focusInEventRecieved ); - QVERIFY( childFocusWidgetOne->focusOutEventRecieved ); - QCOMPARE( childFocusWidgetOne->focusOutEventReason, (int)Qt::ActiveWindowFocusReason); - QVERIFY( !childFocusWidgetOne->hasFocus() ); - - d->hide(); - QTest::qWait(100); - -#if defined(Q_OS_IRIX) - QEXPECT_FAIL("", "IRIX requires explicit activateWindow(), so this test does not make any sense.", Abort); -#endif - QTRY_VERIFY(childFocusWidgetOne->focusInEventRecieved); - QVERIFY(childFocusWidgetOne->focusInEventGotFocus); - - QVERIFY( childFocusWidgetOne->hasFocus() ); - QVERIFY( childFocusWidgetOne->focusInEventRecieved ); - QCOMPARE( childFocusWidgetOne->focusInEventReason, (int)Qt::ActiveWindowFocusReason); -} - - -QTEST_MAIN(tst_QFocusEvent) -#include "tst_qfocusevent.moc" |