From: Pekka Vuorela Date: Thu, 15 Dec 2011 14:49:43 +0000 (+0200) Subject: Adapt QGraphicsView test to QPlatformInputContext X-Git-Tag: qt-v5.0.0-alpha1~2099 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6576fda2ade4b61ee19896a431e97e870d62974f;p=profile%2Fivi%2Fqtbase.git Adapt QGraphicsView test to QPlatformInputContext Change-Id: I9562a0b763fe7d77cd08451426bf2ceaec00acf9 Reviewed-by: Lars Knoll Reviewed-by: Joona Petrell --- diff --git a/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp index bf8ece4..8f2f893 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp @@ -68,10 +68,11 @@ #include #include #include -#include #include #include #include "../../../platformquirks.h" +#include "../../shared/platforminputcontext.h" +#include Q_DECLARE_METATYPE(QList) Q_DECLARE_METATYPE(QList) @@ -141,6 +142,7 @@ class tst_QGraphicsView : public QObject private slots: void initTestCase(); + void cleanup(); void construction(); void renderHints(); void alignment(); @@ -259,6 +261,13 @@ void tst_QGraphicsView::initTestCase() #endif } +void tst_QGraphicsView::cleanup() +{ + // ensure not even skipped tests with custom input context leave it dangling + QInputPanelPrivate *inputPanelPrivate = QInputPanelPrivate::get(qApp->inputPanel()); + inputPanelPrivate->testContext = 0; +} + void tst_QGraphicsView::construction() { QGraphicsView view; @@ -4100,26 +4109,16 @@ void tst_QGraphicsView::inputMethodSensitivity() QCOMPARE(scene.focusItem(), static_cast(item)); } -class InputContextTester : public QInputContext -{ - Q_OBJECT -public: - QString identifierName() { return QString(); } - bool isComposing() const { return false; } - QString language() { return QString(); } - void reset() { ++resets; } - int resets; -}; - void tst_QGraphicsView::inputContextReset() { + PlatformInputContext inputContext; + QInputPanelPrivate *inputPanelPrivate = QInputPanelPrivate::get(qApp->inputPanel()); + inputPanelPrivate->testContext = &inputContext; + QGraphicsScene scene; QGraphicsView view(&scene); QVERIFY(view.testAttribute(Qt::WA_InputMethodEnabled)); - InputContextTester *inputContext = new InputContextTester; - qApp->setInputContext(inputContext); - view.show(); QTest::qWaitForWindowShown(&view); QApplication::setActiveWindow(&view); @@ -4128,40 +4127,40 @@ void tst_QGraphicsView::inputContextReset() QGraphicsItem *item1 = new QGraphicsRectItem; item1->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemAcceptsInputMethod); - inputContext->resets = 0; + inputContext.m_resetCallCount = 0; scene.addItem(item1); - QCOMPARE(inputContext->resets, 0); + QCOMPARE(inputContext.m_resetCallCount, 0); - inputContext->resets = 0; + inputContext.m_resetCallCount = 0; scene.setFocusItem(item1); QCOMPARE(scene.focusItem(), (QGraphicsItem *)item1); QVERIFY(view.testAttribute(Qt::WA_InputMethodEnabled)); - QCOMPARE(inputContext->resets, 0); + QCOMPARE(inputContext.m_resetCallCount, 0); - inputContext->resets = 0; + inputContext.m_resetCallCount = 0; scene.setFocusItem(0); // the input context is reset twice, once because an item has lost focus and again because // the Qt::WA_InputMethodEnabled flag is cleared because no item has focus. - QEXPECT_FAIL("", "QTBUG-22454", Abort); - QCOMPARE(inputContext->resets, 2); + // QEXPECT_FAIL("", "QTBUG-22454", Abort); + QCOMPARE(inputContext.m_resetCallCount, 2); // introduce another item that is focusable but does not accept input methods QGraphicsItem *item2 = new QGraphicsRectItem; item2->setFlags(QGraphicsItem::ItemIsFocusable); scene.addItem(item2); - inputContext->resets = 0; + inputContext.m_resetCallCount = 0; scene.setFocusItem(item2); - QCOMPARE(inputContext->resets, 0); + QCOMPARE(inputContext.m_resetCallCount, 0); - inputContext->resets = 0; + inputContext.m_resetCallCount = 0; scene.setFocusItem(item1); - QCOMPARE(inputContext->resets, 0); + QCOMPARE(inputContext.m_resetCallCount, 0); // test changing between between items that accept input methods. item2->setFlags(QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemAcceptsInputMethod); scene.setFocusItem(item2); - QCOMPARE(inputContext->resets, 1); + QCOMPARE(inputContext.m_resetCallCount, 1); } void tst_QGraphicsView::indirectPainting()