summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorJanne Anttila <janne.anttila@digia.com>2009-05-06 13:53:44 (GMT)
committerJanne Anttila <janne.anttila@digia.com>2009-05-06 13:53:44 (GMT)
commit1b0916db13a52d99dad93322aae0c5c6ba4c2d18 (patch)
treeea9587e9d888b797ed6111f7077deeb6575347e8 /tests/auto
parent7ccc12cfa66882fc692fbbe37a51dfee37bf0996 (diff)
parent32a98347c130ec4949a5a1078c7cac7d3bb9d351 (diff)
downloadQt-1b0916db13a52d99dad93322aae0c5c6ba4c2d18.zip
Qt-1b0916db13a52d99dad93322aae0c5c6ba4c2d18.tar.gz
Qt-1b0916db13a52d99dad93322aae0c5c6ba4c2d18.tar.bz2
Merge branch 'master' of git@scm.dev.troll.no:qt/qt-s60-public
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/qinputcontext/tst_qinputcontext.cpp84
1 files changed, 80 insertions, 4 deletions
diff --git a/tests/auto/qinputcontext/tst_qinputcontext.cpp b/tests/auto/qinputcontext/tst_qinputcontext.cpp
index 08bf614..444b400 100644
--- a/tests/auto/qinputcontext/tst_qinputcontext.cpp
+++ b/tests/auto/qinputcontext/tst_qinputcontext.cpp
@@ -45,6 +45,8 @@
#include <qinputcontext.h>
#include <qlineedit.h>
#include <qplaintextedit.h>
+#include <qlayout.h>
+#include <qradiobutton.h>
class tst_QInputContext : public QObject
{
@@ -62,6 +64,8 @@ public slots:
private slots:
void maximumTextLength();
void filterMouseEvents();
+ void requestSoftwareInputPanel();
+ void closeSoftwareInputPanel();
};
void tst_QInputContext::maximumTextLength()
@@ -82,7 +86,7 @@ void tst_QInputContext::maximumTextLength()
class QFilterInputContext : public QInputContext
{
public:
- QFilterInputContext() : successful(false) {}
+ QFilterInputContext() : lastType(QEvent::None) {}
~QFilterInputContext() {}
QString identifierName() { return QString(); }
@@ -94,26 +98,98 @@ public:
bool filterEvent( const QEvent *event )
{
- successful = event->type() == QEvent::MouseButtonRelease;
+ lastType = event->type();
+ return false;
}
public:
- bool successful;
+ QEvent::Type lastType;
};
void tst_QInputContext::filterMouseEvents()
{
QLineEdit le;
le.show();
+ QApplication::setActiveWindow(&le);
QFilterInputContext *ic = new QFilterInputContext;
le.setInputContext(ic);
QTest::mouseClick(&le, Qt::LeftButton);
- QVERIFY(ic->successful);
+ QCOMPARE(ic->lastType, QEvent::MouseButtonRelease);
le.setInputContext(0);
}
+void tst_QInputContext::requestSoftwareInputPanel()
+{
+ QWidget w;
+ QLayout *layout = new QVBoxLayout;
+ QLineEdit *le1, *le2;
+ le1 = new QLineEdit;
+ le2 = new QLineEdit;
+ layout->addWidget(le1);
+ layout->addWidget(le2);
+ w.setLayout(layout);
+
+ QFilterInputContext *ic1, *ic2;
+ ic1 = new QFilterInputContext;
+ ic2 = new QFilterInputContext;
+ le1->setInputContext(ic1);
+ le2->setInputContext(ic2);
+
+ w.show();
+ QApplication::setActiveWindow(&w);
+
+ // Testing single click panel activation.
+ QApplication::setTwoClicksToRequestSIP(false);
+ QTest::mouseClick(le2, Qt::LeftButton, Qt::NoModifier, QPoint(5, 5));
+ QCOMPARE(ic2->lastType, QEvent::RequestSoftwareInputPanel);
+
+ // Testing double click panel activation.
+ QApplication::setTwoClicksToRequestSIP(true);
+ QTest::mouseClick(le1, Qt::LeftButton, Qt::NoModifier, QPoint(5, 5));
+ QVERIFY(ic1->lastType != QEvent::RequestSoftwareInputPanel);
+ QTest::mouseClick(le1, Qt::LeftButton, Qt::NoModifier, QPoint(5, 5));
+ QCOMPARE(ic1->lastType, QEvent::RequestSoftwareInputPanel);
+
+ // Testing right mouse button
+ QTest::mouseClick(le1, Qt::RightButton, Qt::NoModifier, QPoint(5, 5));
+ QVERIFY(ic1->lastType != QEvent::RequestSoftwareInputPanel);
+}
+
+void tst_QInputContext::closeSoftwareInputPanel()
+{
+ QWidget w;
+ QLayout *layout = new QVBoxLayout;
+ QLineEdit *le1, *le2;
+ QRadioButton *rb;
+ le1 = new QLineEdit;
+ le2 = new QLineEdit;
+ rb = new QRadioButton;
+ layout->addWidget(le1);
+ layout->addWidget(le2);
+ layout->addWidget(rb);
+ w.setLayout(layout);
+
+ QFilterInputContext *ic1, *ic2;
+ ic1 = new QFilterInputContext;
+ ic2 = new QFilterInputContext;
+ le1->setInputContext(ic1);
+ le2->setInputContext(ic2);
+
+ w.show();
+ QApplication::setActiveWindow(&w);
+
+ // Testing that panel doesn't close between two input methods aware widgets.
+ QTest::mouseClick(le1, Qt::LeftButton, Qt::NoModifier, QPoint(5, 5));
+ QTest::mouseClick(le2, Qt::LeftButton, Qt::NoModifier, QPoint(5, 5));
+ QVERIFY(ic2->lastType != QEvent::CloseSoftwareInputPanel);
+
+ // Testing that panel closes when focusing non-aware widget.
+ QTest::mouseClick(rb, Qt::LeftButton, Qt::NoModifier, QPoint(5, 5));
+ QCOMPARE(ic2->lastType, QEvent::CloseSoftwareInputPanel);
+}
+
QTEST_MAIN(tst_QInputContext)
#include "tst_qinputcontext.moc"