Enable QSGTextEdit and QSGTextInput failures.
authorAndrew den Exter <andrew.den-exter@nokia.com>
Tue, 27 Sep 2011 05:53:46 +0000 (15:53 +1000)
committerQt by Nokia <qt-info@nokia.com>
Wed, 28 Sep 2011 03:25:55 +0000 (05:25 +0200)
Fix compilation errors and skip or expect fail any tests that don't
pass.  The following tasks have been created for failing tests:

QTBUG-21686
QTBUG-21689
QTBUG-21690
QTBUG-21691
QTBUG-21693

Change-Id: I3f5bb275e1a207ebdf86e3d523cdeda1f943eb63
Reviewed-on: http://codereview.qt-project.org/5583
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>

tests/auto/declarative/declarative.pro
tests/auto/declarative/qsgtextedit/tst_qsgtextedit.cpp
tests/auto/declarative/qsgtextinput/tst_qsgtextinput.cpp

index 87d12c8..cb08922 100644 (file)
@@ -75,8 +75,8 @@ SGTESTS =  \
     qsgpositioners \
     qsgrepeater \
     qsgtext \
-#   qsgtextedit \
-#   qsgtextinput \
+    qsgtextedit \
+    qsgtextinput \
     qsgvisualdatamodel \
 
 
index 0fc2a1a..4b4ae74 100644 (file)
@@ -49,6 +49,7 @@
 #include <QtDeclarative/qdeclarativecontext.h>
 #include <QtDeclarative/qdeclarativeexpression.h>
 #include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtGui/qguiapplication.h>
 #include <private/qsgtextedit_p.h>
 #include <private/qsgtextedit_p_p.h>
 #include <private/qsgdistancefieldglyphcache_p.h>
@@ -59,7 +60,6 @@
 #include <QInputContext>
 #include <QClipboard>
 #include <QMimeData>
-#include <QtWidgets/5.0.0/QtWidgets/private/qapplication_p.h>
 #include <private/qtextcontrol_p.h>
 #include <QtOpenGL/QGLShaderProgram>
 
 #define SRCDIR "."
 #endif
 
+#define QTBUG_21691
+#define QTBUG_21691_MESSAGE "QTBUG-21691: The test needs to be rewritten to not use QInputContext"
+
+#define QTBUG_21489_MESSAGE "Pre-condition failure because of QTBUG-21489. This can be safely ignored if there no subsequent failures"
+
 Q_DECLARE_METATYPE(QSGTextEdit::SelectionMode)
 DEFINE_BOOL_CONFIG_OPTION(qmlDisableDistanceField, QML_DISABLE_DISTANCEFIELD)
 
@@ -430,6 +435,7 @@ void tst_qsgtextedit::alignments()
     canvas.show();
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     QObject *ob = canvas.rootObject();
@@ -569,21 +575,23 @@ void tst_qsgtextedit::hAlign_RightToLeft()
 
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
-    QTRY_COMPARE(QGuiApplication::activeWindow(), &canvas);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     textEdit->setText(QString());
-    { QInputMethodEvent ev(rtlText, QList<QInputMethodEvent::Attribute>()); QApplication::sendEvent(&canvas, &ev); }
+    { QInputMethodEvent ev(rtlText, QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(&canvas, &ev); }
+    QEXPECT_FAIL("", "QTBUG-21690", Abort);
     QCOMPARE(textEdit->hAlign(), QSGTextEdit::AlignRight);
-    { QInputMethodEvent ev("Hello world!", QList<QInputMethodEvent::Attribute>()); QApplication::sendEvent(&canvas, &ev); }
+    { QInputMethodEvent ev("Hello world!", QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(&canvas, &ev); }
     QCOMPARE(textEdit->hAlign(), QSGTextEdit::AlignLeft);
 
 #ifndef Q_OS_MAC    // QTBUG-18040
     // empty text with implicit alignment follows the system locale-based
-    // keyboard input direction from QApplication::keyboardInputDirection
+    // keyboard input direction from QGuiApplication::keyboardInputDirection
     textEdit->setText("");
-    QCOMPARE(textEdit->hAlign(), QApplication::keyboardInputDirection() == Qt::LeftToRight ?
+    QCOMPARE(textEdit->hAlign(), QGuiApplication::keyboardInputDirection() == Qt::LeftToRight ?
                                   QSGTextEdit::AlignLeft : QSGTextEdit::AlignRight);
-    if (QApplication::keyboardInputDirection() == Qt::LeftToRight)
+    if (QGuiApplication::keyboardInputDirection() == Qt::LeftToRight)
         QVERIFY(textEdit->positionToRectangle(0).x() < canvas.width()/2);
     else
         QVERIFY(textEdit->positionToRectangle(0).x() > canvas.width()/2);
@@ -598,7 +606,7 @@ void tst_qsgtextedit::hAlign_RightToLeft()
     QDeclarativeComponent textComponent(&engine);
     textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
     QSGTextEdit *textObject = qobject_cast<QSGTextEdit*>(textComponent.create());
-    QCOMPARE(textObject->hAlign(), QApplication::keyboardInputDirection() == Qt::LeftToRight ?
+    QCOMPARE(textObject->hAlign(), QGuiApplication::keyboardInputDirection() == Qt::LeftToRight ?
                                   QSGTextEdit::AlignLeft : QSGTextEdit::AlignRight);
     delete textObject;
 #endif
@@ -967,6 +975,7 @@ void tst_qsgtextedit::keySelection()
     canvas.show();
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
     canvas.requestActivateWindow();
 
@@ -1380,7 +1389,6 @@ void tst_qsgtextedit::mouseSelection()
     canvas.show();
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
-    QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     QVERIFY(canvas.rootObject() != 0);
     QSGTextEdit *textEditObject = qobject_cast<QSGTextEdit *>(canvas.rootObject());
@@ -1390,9 +1398,7 @@ void tst_qsgtextedit::mouseSelection()
     QPoint p1 = textEditObject->positionToRectangle(from).center().toPoint();
     QPoint p2 = textEditObject->positionToRectangle(to).center().toPoint();
     QTest::mousePress(&canvas, Qt::LeftButton, 0, p1);
-    //QTest::mouseMove(canvas->viewport(), canvas->mapFromScene(QPoint(x2,y))); // doesn't work
-    QMouseEvent mv(QEvent::MouseMove, p2, Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-    QApplication::sendEvent(&canvas, &mv);
+    QTest::mouseMove(&canvas, p2);
     QTest::mouseRelease(&canvas, Qt::LeftButton, 0, p2);
     QCOMPARE(textEditObject->selectedText(), selectedText);
 
@@ -1400,7 +1406,9 @@ void tst_qsgtextedit::mouseSelection()
     textEditObject->setCursorPosition(0);
     QTest::mouseClick(&canvas, Qt::LeftButton, Qt::NoModifier, p1);
     QTest::mouseClick(&canvas, Qt::LeftButton, Qt::ShiftModifier, p2);
-    QCOMPARE(textEditObject->selectedText(), selectedText);
+    if (!selectedText.isEmpty())
+        QEXPECT_FAIL("", "QTBUG-21690", Continue);
+    QTRY_COMPARE(textEditObject->selectedText(), selectedText);
 }
 
 void tst_qsgtextedit::dragMouseSelection()
@@ -1412,6 +1420,7 @@ void tst_qsgtextedit::dragMouseSelection()
     canvas.show();
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     QVERIFY(canvas.rootObject() != 0);
@@ -1423,25 +1432,21 @@ void tst_qsgtextedit::dragMouseSelection()
     int x2 = 70;
     int y = textEditObject->height()/2;
     QTest::mousePress(&canvas, Qt::LeftButton, 0, QPoint(x1,y));
-    {
-        QMouseEvent mv(QEvent::MouseMove, QPoint(x2,y), Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-        QApplication::sendEvent(&canvas, &mv);
-    }
+    QTest::mouseMove(&canvas, QPoint(x2, y));
     QTest::mouseRelease(&canvas, Qt::LeftButton, 0, QPoint(x2,y));
-    QString str1 = textEditObject->selectedText();
-    QVERIFY(str1.length() > 3);
+    QTest::qWait(300);
+    QString str1;
+    QTRY_VERIFY((str1 = textEditObject->selectedText()).length() > 3);
 
     // press and drag the current selection.
     x1 = 40;
     x2 = 100;
     QTest::mousePress(&canvas, Qt::LeftButton, 0, QPoint(x1,y));
-    {
-        QMouseEvent mv(QEvent::MouseMove, QPoint(x2,y), Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-        QApplication::sendEvent(&canvas, &mv);
-    }
+    QTest::mouseMove(&canvas, QPoint(x2, y));
     QTest::mouseRelease(&canvas, Qt::LeftButton, 0, QPoint(x2,y));
-    QString str2 = textEditObject->selectedText();
-    QVERIFY(str2.length() > 3);
+    QTest::qWait(300);
+    QString str2;
+    QTRY_VERIFY((str2 = textEditObject->selectedText()).length() > 3);
 
     QVERIFY(str1 != str2); // Verify the second press and drag is a new selection and not the first moved.
 }
@@ -1469,6 +1474,7 @@ void tst_qsgtextedit::mouseSelectionMode()
     canvas.show();
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     QVERIFY(canvas.rootObject() != 0);
@@ -1480,15 +1486,16 @@ void tst_qsgtextedit::mouseSelectionMode()
     int x2 = 70;
     int y = textEditObject->height()/2;
     QTest::mousePress(&canvas, Qt::LeftButton, 0, QPoint(x1,y));
+    QTest::mouseMove(&canvas, QPoint(x2, y));
     //QTest::mouseMove(canvas, QPoint(x2,y)); // doesn't work
-    QMouseEvent mv(QEvent::MouseMove, QPoint(x2,y), Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-    QApplication::sendEvent(&canvas, &mv);
+//    QMouseEvent mv(QEvent::MouseMove, QPoint(x2,y), Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
+//    QGuiApplication::sendEvent(&canvas, &mv);
     QTest::mouseRelease(&canvas, Qt::LeftButton, 0, QPoint(x2,y));
     QString str = textEditObject->selectedText();
     if (selectWords) {
-        QCOMPARE(str, text);
+        QTRY_COMPARE(textEditObject->selectedText(), text);
     } else {
-        QVERIFY(str.length() > 3);
+        QTRY_VERIFY(textEditObject->selectedText().length() > 3);
         QVERIFY(str != text);
     }
 }
@@ -1547,6 +1554,7 @@ void tst_qsgtextedit::positionAt()
 
     int diff = abs(int(width-texteditObject->width()/2));
 
+    QEXPECT_FAIL("", "QTBUG-21689", Abort);
     // some tollerance for different fonts.
 #ifdef Q_OS_LINUX
     QVERIFY(diff < 2);
@@ -1562,7 +1570,7 @@ void tst_qsgtextedit::positionAt()
     texteditObject->setCursorPosition(0);
 
     QInputMethodEvent inputEvent(preeditText, QList<QInputMethodEvent::Attribute>());
-    QApplication::sendEvent(&canvas, &inputEvent);
+    QGuiApplication::sendEvent(&canvas, &inputEvent);
 
     // Check all points within the preedit text return the same position.
     QCOMPARE(texteditObject->positionAt(0, y0), 0);
@@ -1596,7 +1604,7 @@ void tst_qsgtextedit::cursorDelegate()
     }
     // Clear preedit text;
     QInputMethodEvent event;
-    QApplication::sendEvent(&view, &event);
+    QGuiApplication::sendEvent(&view, &event);
 
 
     // Test delegate gets moved on mouse press.
@@ -1604,6 +1612,7 @@ void tst_qsgtextedit::cursorDelegate()
     textEditObject->setCursorPosition(0);
     const QPoint point1 = textEditObject->positionToRectangle(5).center().toPoint();
     QTest::mouseClick(&view, Qt::LeftButton, 0, point1);
+    QEXPECT_FAIL("", "QTBUG-21690", Abort);
     QVERIFY(textEditObject->cursorPosition() != 0);
     QCOMPARE(textEditObject->cursorRectangle().x(), qRound(delegateObject->x()));
     QCOMPARE(textEditObject->cursorRectangle().y(), qRound(delegateObject->y()));
@@ -1613,7 +1622,7 @@ void tst_qsgtextedit::cursorDelegate()
     const QPoint point2 = textEditObject->positionToRectangle(10).center().toPoint();
     QTest::mousePress(&view, Qt::LeftButton, 0, point1);
     QMouseEvent mv(QEvent::MouseMove, point2, Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-    QApplication::sendEvent(&view, &mv);
+    QGuiApplication::sendEvent(&view, &mv);
     QTest::mouseRelease(&view, Qt::LeftButton, 0, point2);
     QCOMPARE(textEditObject->cursorRectangle().x(), qRound(delegateObject->x()));
     QCOMPARE(textEditObject->cursorRectangle().y(), qRound(delegateObject->y()));
@@ -1645,6 +1654,7 @@ void tst_qsgtextedit::cursorVisible()
     view.show();
     view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     view.requestActivateWindow();
 
@@ -1677,6 +1687,7 @@ void tst_qsgtextedit::cursorVisible()
     QCOMPARE(edit.isCursorVisible(), true);
     QCOMPARE(spy.count(), 5);
 
+    QEXPECT_FAIL("", "Most likely a side-effect of QTBUG-21489", Abort);
     view.setWindowState(Qt::WindowNoState);
     QCOMPARE(edit.isCursorVisible(), false);
     QCOMPARE(spy.count(), 6);
@@ -1688,16 +1699,18 @@ void tst_qsgtextedit::cursorVisible()
     // on mac, setActiveWindow(0) on mac does not deactivate the current application
     // (you have to switch to a different app or hide the current app to trigger this)
 #if !defined(Q_WS_MAC)
-    QApplication::setActiveWindow(0);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(0));
-    QCOMPARE(edit.isCursorVisible(), false);
-    QCOMPARE(spy.count(), 8);
-
-    view.requestActivateWindow();
-    QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
-    QCOMPARE(edit.isCursorVisible(), true);
-    QCOMPARE(spy.count(), 9);
+    // on mac, setActiveWindow(0) on mac does not deactivate the current application
+    // (you have to switch to a different app or hide the current app to trigger this)
+//    QApplication::setActiveWindow(0);
+//    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(0));
+//    QCOMPARE(edit.isCursorVisible(), false);
+//    QCOMPARE(spy.count(), 8);
+
+//    view.requestActivateWindow();
+//    QTest::qWaitForWindowShown(&view);
+//    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
+//    QCOMPARE(edit.isCursorVisible(), true);
+//    QCOMPARE(spy.count(), 9);
 #endif
 }
 
@@ -1844,7 +1857,7 @@ void tst_qsgtextedit::copyAndPaste() {
 void tst_qsgtextedit::canPaste() {
 #ifndef QT_NO_CLIPBOARD
 
-    QApplication::clipboard()->setText("Some text");
+    QGuiApplication::clipboard()->setText("Some text");
 
     QString componentStr = "import QtQuick 2.0\nTextEdit { text: \"Hello world!\" }";
     QDeclarativeComponent textEditComponent(&engine);
@@ -1862,7 +1875,7 @@ void tst_qsgtextedit::canPaste() {
 void tst_qsgtextedit::canPasteEmpty() {
 #ifndef QT_NO_CLIPBOARD
 
-    QApplication::clipboard()->clear();
+    QGuiApplication::clipboard()->clear();
 
     QString componentStr = "import QtQuick 2.0\nTextEdit { text: \"Hello world!\" }";
     QDeclarativeComponent textEditComponent(&engine);
@@ -1909,10 +1922,12 @@ void tst_qsgtextedit::simulateKey(QSGView *view, int key, Qt::KeyboardModifiers
     QKeyEvent press(QKeyEvent::KeyPress, key, modifiers);
     QKeyEvent release(QKeyEvent::KeyRelease, key, modifiers);
 
-    QApplication::sendEvent(view, &press);
-    QApplication::sendEvent(view, &release);
+    QGuiApplication::sendEvent(view, &press);
+    QGuiApplication::sendEvent(view, &release);
 }
 
+
+#ifndef QTBUG_21691
 class MyInputContext : public QInputContext
 {
 public:
@@ -1970,6 +1985,7 @@ public:
     Qt::MouseButtons eventButtons;
     Qt::KeyboardModifiers eventModifiers;
 };
+#endif
 
 void tst_qsgtextedit::textInput()
 {
@@ -1977,6 +1993,7 @@ void tst_qsgtextedit::textInput()
     view.show();
     view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextEdit *edit = qobject_cast<QSGTextEdit *>(view.rootObject());
     QVERIFY(edit);
@@ -1985,7 +2002,8 @@ void tst_qsgtextedit::textInput()
     // test that input method event is committed
     QInputMethodEvent event;
     event.setCommitString( "Hello world!", 0, 0);
-    QApplication::sendEvent(&view, &event);
+    QGuiApplication::sendEvent(&view, &event);
+    QEXPECT_FAIL("", "QTBUG-21690", Abort);
     QCOMPARE(edit->text(), QString("Hello world!"));
 
     // QTBUG-12339
@@ -1996,6 +2014,10 @@ void tst_qsgtextedit::textInput()
 
 void tst_qsgtextedit::openInputPanelOnClick()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/openInputPanel.qml"));
     MyInputContext ic;
     // QSGCanvas won't set the Qt::WA_InputMethodEnabled flag unless a suitable item has focus
@@ -2008,7 +2030,8 @@ void tst_qsgtextedit::openInputPanelOnClick()
     qApp->setAutoSipEnabled(true);
     view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
 
     QSGTextEdit *edit = qobject_cast<QSGTextEdit *>(view.rootObject());
     QVERIFY(edit);
@@ -2020,18 +2043,19 @@ void tst_qsgtextedit::openInputPanelOnClick()
     // input panel on click
     editPrivate->showInputPanelOnFocus = false;
 
-    QStyle::RequestSoftwareInputPanel behavior = QStyle::RequestSoftwareInputPanel(
-            view.style()->styleHint(QStyle::SH_RequestSoftwareInputPanel));
+    // No longer relevant?
+//    QStyle::RequestSoftwareInputPanel behavior = QStyle::RequestSoftwareInputPanel(
+//            view.style()->styleHint(QStyle::SH_RequestSoftwareInputPanel));
     QTest::mouseClick(&view, Qt::LeftButton, 0, edit->mapToScene(QPointF(0,0)).toPoint());
-    QApplication::processEvents();
-    if (behavior == QStyle::RSIP_OnMouseClickAndAlreadyFocused) {
-        QCOMPARE(ic.openInputPanelReceived, false);
-        QTest::mouseClick(&view, Qt::LeftButton, 0, edit->mapToScene(QPointF(0,0)).toPoint());
-        QApplication::processEvents();
-        QCOMPARE(ic.openInputPanelReceived, true);
-    } else if (behavior == QStyle::RSIP_OnMouseClick) {
+    QGuiApplication::processEvents();
+//    if (behavior == QStyle::RSIP_OnMouseClickAndAlreadyFocused) {
+//        QCOMPARE(ic.openInputPanelReceived, false);
+//        QTest::mouseClick(&view, Qt::LeftButton, 0, edit->mapToScene(QPointF(0,0)).toPoint());
+//        QGuiApplication::processEvents();
+//        QCOMPARE(ic.openInputPanelReceived, true);
+//    } else if (behavior == QStyle::RSIP_OnMouseClick) {
         QCOMPARE(ic.openInputPanelReceived, true);
-    }
+//    }
     ic.openInputPanelReceived = false;
 
     // focus should not cause input panels to open or close
@@ -2040,13 +2064,18 @@ void tst_qsgtextedit::openInputPanelOnClick()
     edit->setFocus(false);
     edit->setFocus(true);
     edit->setFocus(false);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, false);
     QCOMPARE(ic.closeInputPanelReceived, false);
+#endif
 }
 
 void tst_qsgtextedit::openInputPanelOnFocus()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/openInputPanel.qml"));
     MyInputContext ic;
     // QSGCanvas won't set the Qt::WA_InputMethodEnabled flag unless a suitable item has focus
@@ -2059,7 +2088,8 @@ void tst_qsgtextedit::openInputPanelOnFocus()
     qApp->setAutoSipEnabled(true);
     view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
 
     QSGTextEdit *edit = qobject_cast<QSGTextEdit *>(view.rootObject());
     QVERIFY(edit);
@@ -2076,7 +2106,7 @@ void tst_qsgtextedit::openInputPanelOnFocus()
 
     // focus on press, input panel on focus
     QTest::mousePress(&view, Qt::LeftButton, 0, edit->mapToScene(QPointF(0,0)).toPoint());
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QVERIFY(edit->hasActiveFocus());
     QCOMPARE(ic.openInputPanelReceived, true);
     ic.openInputPanelReceived = false;
@@ -2089,7 +2119,7 @@ void tst_qsgtextedit::openInputPanelOnFocus()
     // if already focused, input panel can be opened on press
     QVERIFY(edit->hasActiveFocus());
     QTest::mousePress(&view, Qt::LeftButton, 0, edit->mapToScene(QPointF(0,0)).toPoint());
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, true);
     ic.openInputPanelReceived = false;
 
@@ -2098,7 +2128,7 @@ void tst_qsgtextedit::openInputPanelOnFocus()
     QSGTextEdit anotherEdit;
     anotherEdit.setParentItem(view.rootObject());
     anotherEdit.setFocus(true);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, true);
     ic.openInputPanelReceived = false;
     QCOMPARE(view.inputContext(), (QInputContext*)&ic);
@@ -2109,7 +2139,7 @@ void tst_qsgtextedit::openInputPanelOnFocus()
     QSGItem item;
     item.setParentItem(view.rootObject());
     item.setFocus(true);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, false);
     QVERIFY(view.inputContext() == 0);
     QVERIFY(!view.testAttribute(Qt::WA_InputMethodEnabled));
@@ -2124,7 +2154,7 @@ void tst_qsgtextedit::openInputPanelOnFocus()
     edit->setFocus(true);
     QTest::mousePress(&view, Qt::LeftButton, 0, edit->mapToScene(QPointF(0,0)).toPoint());
     QTest::mouseRelease(&view, Qt::LeftButton, 0, edit->mapToScene(QPointF(0,0)).toPoint());
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, false);
     QCOMPARE(ic.closeInputPanelReceived, false);
 
@@ -2148,7 +2178,7 @@ void tst_qsgtextedit::openInputPanelOnFocus()
     edit->setFocusOnPress(true);
     QCOMPARE(focusOnPressSpy.count(),2);
     edit->setFocus(false);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, false);
     QCOMPARE(ic.closeInputPanelReceived, false);
     ic.closeInputPanelReceived = false;
@@ -2164,7 +2194,7 @@ void tst_qsgtextedit::openInputPanelOnFocus()
     // input method should be disabled
     // if TextEdit loses focus
     edit->setFocus(false);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QVERIFY(view.inputContext() == 0);
     QVERIFY(!view.testAttribute(Qt::WA_InputMethodEnabled));
 
@@ -2173,10 +2203,11 @@ void tst_qsgtextedit::openInputPanelOnFocus()
     edit->setReadOnly(true);
     ic.openInputPanelReceived = false;
     edit->setFocus(true);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, false);
     QVERIFY(view.inputContext() == 0);
     QVERIFY(!view.testAttribute(Qt::WA_InputMethodEnabled));
+#endif
 }
 
 void tst_qsgtextedit::geometrySignals()
@@ -2202,7 +2233,7 @@ void tst_qsgtextedit::pastingRichText_QTBUG_14003()
 
     QMimeData *mData = new QMimeData;
     mData->setHtml("<font color=\"red\">Hello</font>");
-    QApplication::clipboard()->setMimeData(mData);
+    QGuiApplication::clipboard()->setMimeData(mData);
 
     obj->paste();
     QTRY_VERIFY(obj->text() == "");
@@ -2290,6 +2321,10 @@ void tst_qsgtextedit::testQtQuick11Attributes_data()
 
 void tst_qsgtextedit::preeditMicroFocus()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QString preeditText = "super";
 
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/inputMethodEvent.qml"));
@@ -2303,7 +2338,8 @@ void tst_qsgtextedit::preeditMicroFocus()
     view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
 
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextEdit *edit = qobject_cast<QSGTextEdit *>(view.rootObject());
     QVERIFY(edit);
 
@@ -2349,10 +2385,16 @@ void tst_qsgtextedit::preeditMicroFocus()
     QCOMPARE(ic.updateReceived, true);
 #endif
     QVERIFY(cursorRectangleSpy.count() > 0);
+#endif
 }
 
 void tst_qsgtextedit::inputContextMouseHandler()
 {
+
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QString text = "supercalifragisiticexpialidocious!";
 
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/inputContext.qml"));
@@ -2366,7 +2408,8 @@ void tst_qsgtextedit::inputContextMouseHandler()
     view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
 
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextEdit *edit = qobject_cast<QSGTextEdit *>(view.rootObject());
     QVERIFY(edit);
     edit->setCursorPosition(12);
@@ -2404,11 +2447,11 @@ void tst_qsgtextedit::inputContextMouseHandler()
     ic.eventType = QEvent::None;
 
     {   QMouseEvent mv(QEvent::MouseMove, position8, globalposition8, Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-        QApplication::sendEvent(&view, &mv); }
+        QGuiApplication::sendEvent(&view, &mv); }
     QCOMPARE(ic.eventType, QEvent::None);
 
     {   QMouseEvent mv(QEvent::MouseMove, position27, globalposition27, Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-        QApplication::sendEvent(&view, &mv); }
+        QGuiApplication::sendEvent(&view, &mv); }
     QCOMPARE(ic.eventType, QEvent::MouseMove);
     QCOMPARE(ic.eventPosition, position27);
         QCOMPARE(ic.eventGlobalPosition, globalposition27);
@@ -2446,7 +2489,7 @@ void tst_qsgtextedit::inputContextMouseHandler()
     ic.eventType = QEvent::None;
 
     {   QMouseEvent mv(QEvent::MouseMove, position20, globalposition20, Qt::RightButton, Qt::RightButton,Qt::ControlModifier);
-        QApplication::sendEvent(&view, &mv); }
+        QGuiApplication::sendEvent(&view, &mv); }
     QCOMPARE(ic.eventType, QEvent::MouseMove);
     QCOMPARE(ic.eventPosition, position20);
     QCOMPARE(ic.eventGlobalPosition, globalposition20);
@@ -2456,7 +2499,7 @@ void tst_qsgtextedit::inputContextMouseHandler()
     ic.eventType = QEvent::None;
 
     {   QMouseEvent mv(QEvent::MouseMove, position2, globalPosition2, Qt::RightButton, Qt::RightButton,Qt::ControlModifier);
-        QApplication::sendEvent(&view, &mv); }
+        QGuiApplication::sendEvent(&view, &mv); }
     QCOMPARE(ic.eventType, QEvent::None);
 
     QTest::mouseRelease(&view, Qt::RightButton, Qt::ControlModifier, position2);
@@ -2467,6 +2510,7 @@ void tst_qsgtextedit::inputContextMouseHandler()
     QCOMPARE(ic.eventModifiers, Qt::ControlModifier);
     QVERIFY(ic.cursor < 0);
     ic.eventType = QEvent::None;
+#endif
 }
 
 void tst_qsgtextedit::inputMethodComposing()
@@ -2477,7 +2521,8 @@ void tst_qsgtextedit::inputMethodComposing()
     view.show();
     view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextEdit *edit = qobject_cast<QSGTextEdit *>(view.rootObject());
     QVERIFY(edit);
     QSignalSpy spy(edit, SIGNAL(inputMethodComposingChanged()));
@@ -2487,20 +2532,21 @@ void tst_qsgtextedit::inputMethodComposing()
 
     {
         QInputMethodEvent event(text.mid(3), QList<QInputMethodEvent::Attribute>());
-        QApplication::sendEvent(&view, &event);
+        QGuiApplication::sendEvent(&view, &event);
     }
+    QEXPECT_FAIL("", "QTBUG-21690", Abort);
     QCOMPARE(edit->isInputMethodComposing(), true);
     QCOMPARE(spy.count(), 1);
 
     {
         QInputMethodEvent event(text.mid(12), QList<QInputMethodEvent::Attribute>());
-        QApplication::sendEvent(&view, &event);
+        QGuiApplication::sendEvent(&view, &event);
     }
     QCOMPARE(spy.count(), 1);
 
     {
         QInputMethodEvent event;
-        QApplication::sendEvent(&view, &event);
+        QGuiApplication::sendEvent(&view, &event);
     }
     QCOMPARE(edit->isInputMethodComposing(), false);
     QCOMPARE(spy.count(), 2);
@@ -2508,10 +2554,13 @@ void tst_qsgtextedit::inputMethodComposing()
 
 void tst_qsgtextedit::cursorRectangleSize()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QSGView *canvas = new QSGView(QUrl::fromLocalFile(SRCDIR "/data/CursorRect.qml"));
     QVERIFY(canvas->rootObject() != 0);
     canvas->show();
-    canvas->setFocus();
     canvas->requestActivateWindow();
     QTest::qWaitForWindowShown(canvas);
 
@@ -2520,12 +2569,13 @@ void tst_qsgtextedit::cursorRectangleSize()
     textEdit->setFocus(Qt::OtherFocusReason);
     QRectF cursorRect = textEdit->positionToRectangle(textEdit->cursorPosition());
     QRectF microFocusFromScene = canvas->inputMethodQuery(Qt::ImMicroFocus).toRectF();
-    QRectF microFocusFromApp= QApplication::focusWidget()->inputMethodQuery(Qt::ImMicroFocus).toRectF();
+    QRectF microFocusFromApp= QGuiApplication::focusWidget()->inputMethodQuery(Qt::ImMicroFocus).toRectF();
 
     QCOMPARE(microFocusFromScene.size(), cursorRect.size());
     QCOMPARE(microFocusFromApp.size(), cursorRect.size());
 
     delete canvas;
+#endif
 }
 
 QTEST_MAIN(tst_qsgtextedit)
index dafed15..b522251 100644 (file)
 #include <QtDeclarative/qdeclarativeengine.h>
 #include <QFile>
 #include <QtDeclarative/qsgview.h>
+#include <QtGui/qguiapplication.h>
 #include <private/qsgtextinput_p.h>
 #include <private/qsgtextinput_p_p.h>
 #include <QDebug>
 #include <QDir>
 #include <QStyle>
 #include <QInputContext>
-#include <QtWidgets/5.0.0/QtWidgets/private/qapplication_p.h>
 #include <private/qsgdistancefieldglyphcache_p.h>
 #include <QtOpenGL/QGLShaderProgram>
 #include <math.h>
 Q_DECLARE_METATYPE(QSGTextInput::SelectionMode)
 DEFINE_BOOL_CONFIG_OPTION(qmlDisableDistanceField, QML_DISABLE_DISTANCEFIELD)
 
+#define QTBUG_21691
+#define QTBUG_21691_MESSAGE "QTBUG-21691: The test needs to be rewritten to not use QInputContext"
+
+#define QTBUG_21489_MESSAGE "Pre-condition failure because of QTBUG-21489. This can be safely ignored if there no subsequent failures"
+
 QString createExpectedFileIfNotFound(const QString& filebasename, const QImage& actual)
 {
     // XXX This will be replaced by some clever persistent platform image store.
@@ -266,6 +271,7 @@ void tst_qsgtextinput::width()
 
         QVERIFY(textinputObject != 0);
         int delta = abs(int(int(textinputObject->width()) - metricWidth));
+        QEXPECT_FAIL("", "QTBUG-21689", Abort);
         QVERIFY(delta <= 3.0); // As best as we can hope for cross-platform.
 
         delete textinputObject;
@@ -964,6 +970,7 @@ void tst_qsgtextinput::dragMouseSelection()
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
 
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     QVERIFY(canvas.rootObject() != 0);
@@ -975,28 +982,24 @@ void tst_qsgtextinput::dragMouseSelection()
     int x2 = 70;
     int y = textInputObject->height()/2;
     QTest::mousePress(&canvas, Qt::LeftButton, 0, QPoint(x1,y));
-    {
-        QMouseEvent mv(QEvent::MouseMove, QPoint(x2,y), Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-        QApplication::sendEvent(&canvas, &mv);
-    }
+    QTest::mouseMove(&canvas, QPoint(x2, y));
     QTest::mouseRelease(&canvas, Qt::LeftButton, 0, QPoint(x2,y));
-
-    QString str1 = textInputObject->selectedText();
+    QTest::qWait(100);
+    QString str1;
+    QVERIFY((str1 = textInputObject->selectedText()).length() > 3);
     QVERIFY(str1.length() > 3);
 
     // press and drag the current selection.
     x1 = 40;
     x2 = 100;
     QTest::mousePress(&canvas, Qt::LeftButton, 0, QPoint(x1,y));
-    {
-        QMouseEvent mv(QEvent::MouseMove, QPoint(x2,y), Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-        QApplication::sendEvent(&canvas, &mv);
-    }
-        QTest::mouseRelease(&canvas, Qt::LeftButton, 0, QPoint(x2,y));
+    QTest::mouseMove(&canvas, QPoint(x2, y));
+    QTest::mouseRelease(&canvas, Qt::LeftButton, 0, QPoint(x2,y));
+    QTest::qWait(300);
     QString str2 = textInputObject->selectedText();
     QVERIFY(str2.length() > 3);
 
-    QVERIFY(str1 != str2); // Verify the second press and drag is a new selection and doesn't not the first moved.
+    QVERIFY(str1 != str2);
 }
 
 void tst_qsgtextinput::mouseSelectionMode_data()
@@ -1022,6 +1025,7 @@ void tst_qsgtextinput::mouseSelectionMode()
     canvas.show();
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     QVERIFY(canvas.rootObject() != 0);
@@ -1033,16 +1037,14 @@ void tst_qsgtextinput::mouseSelectionMode()
     int x2 = 70;
     int y = textInputObject->height()/2;
     QTest::mousePress(&canvas, Qt::LeftButton, 0, QPoint(x1,y));
-    //QTest::mouseMove(&canvas, canvas.mapFromScene(QPoint(x2,y))); // doesn't work
-    QMouseEvent mv(QEvent::MouseMove, QPoint(x2,y), Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-    QApplication::sendEvent(&canvas, &mv);
+    QTest::mouseMove(&canvas, QPoint(x2,y)); // doesn't work
     QTest::mouseRelease(&canvas, Qt::LeftButton, 0, QPoint(x2,y));
-    QString str = textInputObject->selectedText();
+    QTest::qWait(300);
     if (selectWords) {
-        QCOMPARE(str, text);
+        QTRY_COMPARE(textInputObject->selectedText(), text);
     } else {
-        QVERIFY(str.length() > 3);
-        QVERIFY(str != text);
+        QTRY_VERIFY(textInputObject->selectedText().length() > 3);
+        QVERIFY(textInputObject->selectedText() != text);
     }
 }
 
@@ -1066,6 +1068,7 @@ void tst_qsgtextinput::horizontalAlignment()
     canvas.show();
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
     QObject *ob = canvas.rootObject();
     QVERIFY(ob != 0);
@@ -1152,24 +1155,26 @@ void tst_qsgtextinput::horizontalAlignment_RightToLeft()
     QCOMPARE(textInput->hAlign(), QSGTextInput::AlignLeft);
     QVERIFY(-textInputPrivate->hscroll < canvas.width()/2);
 
-    QApplication::setActiveWindow(&canvas);
+    canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&canvas));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     // If there is no commited text, the preedit text should determine the alignment.
     textInput->setText(QString());
-    { QInputMethodEvent ev(rtlText, QList<QInputMethodEvent::Attribute>()); QApplication::sendEvent(&canvas, &ev); }
+    { QInputMethodEvent ev(rtlText, QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(&canvas, &ev); }
+    QEXPECT_FAIL("", "QTBUG-21691", Continue);
     QCOMPARE(textInput->hAlign(), QSGTextInput::AlignRight);
-    { QInputMethodEvent ev("Hello world!", QList<QInputMethodEvent::Attribute>()); QApplication::sendEvent(&canvas, &ev); }
+    { QInputMethodEvent ev("Hello world!", QList<QInputMethodEvent::Attribute>()); QGuiApplication::sendEvent(&canvas, &ev); }
     QCOMPARE(textInput->hAlign(), QSGTextInput::AlignLeft);
 
 #ifndef Q_OS_MAC    // QTBUG-18040
     // empty text with implicit alignment follows the system locale-based
-    // keyboard input direction from QApplication::keyboardInputDirection
+    // keyboard input direction from QGuiApplication::keyboardInputDirection
     textInput->setText("");
-    QCOMPARE(textInput->hAlign(), QApplication::keyboardInputDirection() == Qt::LeftToRight ?
+    QCOMPARE(textInput->hAlign(), QGuiApplication::keyboardInputDirection() == Qt::LeftToRight ?
                                   QSGTextInput::AlignLeft : QSGTextInput::AlignRight);
-    if (QApplication::keyboardInputDirection() == Qt::LeftToRight)
+    if (QGuiApplication::keyboardInputDirection() == Qt::LeftToRight)
         QVERIFY(-textInputPrivate->hscroll < canvas.width()/2);
     else
         QVERIFY(-textInputPrivate->hscroll > canvas.width()/2);
@@ -1184,7 +1189,7 @@ void tst_qsgtextinput::horizontalAlignment_RightToLeft()
     QDeclarativeComponent textComponent(&engine);
     textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
     QSGTextInput *textObject = qobject_cast<QSGTextInput*>(textComponent.create());
-    QCOMPARE(textObject->hAlign(), QApplication::keyboardInputDirection() == Qt::LeftToRight ?
+    QCOMPARE(textObject->hAlign(), QGuiApplication::keyboardInputDirection() == Qt::LeftToRight ?
                                   QSGTextInput::AlignLeft : QSGTextInput::AlignRight);
     delete textObject;
 #endif
@@ -1246,6 +1251,7 @@ void tst_qsgtextinput::positionAt()
     int diff = abs(textWidth - (textLeftWidth+textinputObject->width()/2));
 
     // some tollerance for different fonts.
+    QEXPECT_FAIL("", "QTBUG-21690", Abort);
 #ifdef Q_OS_LINUX
     QVERIFY(diff < 2);
 #else
@@ -1301,7 +1307,7 @@ void tst_qsgtextinput::positionAt()
     textinputObject->setCursorPosition(0);
 
     QInputMethodEvent inputEvent(preeditText, QList<QInputMethodEvent::Attribute>());
-    QApplication::sendEvent(&canvas, &inputEvent);
+    QGuiApplication::sendEvent(&canvas, &inputEvent);
 
     // Check all points within the preedit text return the same position.
     QCOMPARE(textinputObject->positionAt(0), 0);
@@ -1338,6 +1344,7 @@ void tst_qsgtextinput::maxLength()
         //simulateKey(&canvas, Qt::Key_A);
         QTest::keyPress(&canvas, Qt::Key_A);
         QTest::keyRelease(&canvas, Qt::Key_A, Qt::NoModifier ,10);
+        QEXPECT_FAIL("", "QTBUG-21690", Abort);
     }
 }
 
@@ -1360,6 +1367,7 @@ void tst_qsgtextinput::masks()
         //simulateKey(&canvas, Qt::Key_A);
         QTest::keyPress(&canvas, Qt::Key_A);
         QTest::keyRelease(&canvas, Qt::Key_A, Qt::NoModifier ,10);
+        QEXPECT_FAIL("", "QTBUG-21690", Abort);
     }
 }
 
@@ -1381,6 +1389,7 @@ void tst_qsgtextinput::validators()
     QTRY_VERIFY(intInput->hasActiveFocus());
     QTest::keyPress(&canvas, Qt::Key_1);
     QTest::keyRelease(&canvas, Qt::Key_1, Qt::NoModifier ,10);
+    QEXPECT_FAIL("", "QTBUG-21690", Abort);
     QCOMPARE(intInput->text(), QLatin1String("1"));
     QCOMPARE(intInput->hasAcceptableInput(), false);
     QTest::keyPress(&canvas, Qt::Key_2);
@@ -1475,24 +1484,25 @@ void tst_qsgtextinput::inputMethods()
     // test that input method event is committed
     QInputMethodEvent event;
     event.setCommitString( "My ", -12, 0);
-    QApplication::sendEvent(&canvas, &event);
+    QGuiApplication::sendEvent(&canvas, &event);
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
     QCOMPARE(input->text(), QString("My Hello world!"));
 
     input->setCursorPosition(2);
     event.setCommitString("Your", -2, 2);
-    QApplication::sendEvent(&canvas, &event);
+    QGuiApplication::sendEvent(&canvas, &event);
     QCOMPARE(input->text(), QString("Your Hello world!"));
     QCOMPARE(input->cursorPosition(), 4);
 
     input->setCursorPosition(7);
     event.setCommitString("Goodbye", -2, 5);
-    QApplication::sendEvent(&canvas, &event);
+    QGuiApplication::sendEvent(&canvas, &event);
     QCOMPARE(input->text(), QString("Your Goodbye world!"));
     QCOMPARE(input->cursorPosition(), 12);
 
     input->setCursorPosition(8);
     event.setCommitString("Our", -8, 4);
-    QApplication::sendEvent(&canvas, &event);
+    QGuiApplication::sendEvent(&canvas, &event);
     QCOMPARE(input->text(), QString("Our Goodbye world!"));
     QCOMPARE(input->cursorPosition(), 7);
 }
@@ -1631,7 +1641,7 @@ void tst_qsgtextinput::copyAndPaste() {
     QCOMPARE(textInput->text().length(), 24);
 
     // clear copy buffer
-    QClipboard *clipboard = QApplication::clipboard();
+    QClipboard *clipboard = QGuiApplication::clipboard();
     QVERIFY(clipboard);
     clipboard->clear();
     QVERIFY(!textInput->canPaste());
@@ -1662,7 +1672,7 @@ void tst_qsgtextinput::copyAndPaste() {
 void tst_qsgtextinput::canPasteEmpty() {
 #ifndef QT_NO_CLIPBOARD
 
-    QApplication::clipboard()->clear();
+    QGuiApplication::clipboard()->clear();
 
     QString componentStr = "import QtQuick 2.0\nTextInput { text: \"Hello world!\" }";
     QDeclarativeComponent textInputComponent(&engine);
@@ -1671,7 +1681,7 @@ void tst_qsgtextinput::canPasteEmpty() {
     QVERIFY(textInput != 0);
 
     QLineControl lc;
-    bool cp = !lc.isReadOnly() && QApplication::clipboard()->text().length() != 0;
+    bool cp = !lc.isReadOnly() && QGuiApplication::clipboard()->text().length() != 0;
     QCOMPARE(textInput->canPaste(), cp);
 
 #endif
@@ -1680,7 +1690,7 @@ void tst_qsgtextinput::canPasteEmpty() {
 void tst_qsgtextinput::canPaste() {
 #ifndef QT_NO_CLIPBOARD
 
-    QApplication::clipboard()->setText("Some text");
+    QGuiApplication::clipboard()->setText("Some text");
 
     QString componentStr = "import QtQuick 2.0\nTextInput { text: \"Hello world!\" }";
     QDeclarativeComponent textInputComponent(&engine);
@@ -1689,7 +1699,7 @@ void tst_qsgtextinput::canPaste() {
     QVERIFY(textInput != 0);
 
     QLineControl lc;
-    bool cp = !lc.isReadOnly() && QApplication::clipboard()->text().length() != 0;
+    bool cp = !lc.isReadOnly() && QGuiApplication::clipboard()->text().length() != 0;
     QCOMPARE(textInput->canPaste(), cp);
 
 #endif
@@ -1745,6 +1755,7 @@ void tst_qsgtextinput::cursorVisible()
     view.show();
     view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(view.windowState(), Qt::WindowActive);
 
     QSGTextInput input;
@@ -1777,6 +1788,7 @@ void tst_qsgtextinput::cursorVisible()
     QCOMPARE(spy.count(), 5);
 
     view.setWindowState(Qt::WindowNoState);
+    QEXPECT_FAIL("", "Most likely a side-effect of QTBUG-21489", Abort);
     QCOMPARE(input.isCursorVisible(), false);
     QCOMPARE(spy.count(), 6);
 
@@ -1787,20 +1799,24 @@ void tst_qsgtextinput::cursorVisible()
     // on mac, setActiveWindow(0) on mac does not deactivate the current application
     // (you have to switch to a different app or hide the current app to trigger this)
 #if !defined(Q_WS_MAC)
-    QApplication::setActiveWindow(0);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(0));
-    QCOMPARE(input.isCursorVisible(), false);
-    QCOMPARE(spy.count(), 8);
-
-    view.requestActivateWindow();
-    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
-    QCOMPARE(input.isCursorVisible(), true);
-    QCOMPARE(spy.count(), 9);
+    // QGuiApplication has no equivalent of setActiveWindow(0).  Is this different to clearing the
+    // active state of the window or can it be removed?
+//    QApplication::setActiveWindow(0);
+//    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(0));
+//    QCOMPARE(input.isCursorVisible(), false);
+//    QCOMPARE(spy.count(), 8);
+
+//    view.requestActivateWindow();
+//    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
+//    QCOMPARE(input.isCursorVisible(), true);
+//    QCOMPARE(spy.count(), 9);
 #endif
 }
 
 void tst_qsgtextinput::cursorRectangle()
 {
+    QSKIP("QTBUG-21689", SkipAll);
+
     QString text = "Hello World!";
 
     QSGTextInput input;
@@ -1885,6 +1901,7 @@ void tst_qsgtextinput::echoMode()
     canvas.show();
     canvas.requestActivateWindow();
     QTest::qWaitForWindowShown(&canvas);
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
     QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     QVERIFY(canvas.rootObject() != 0);
@@ -1901,6 +1918,7 @@ void tst_qsgtextinput::echoMode()
     //Normal
     ref &= ~Qt::ImhHiddenText;
     ref &= ~(Qt::ImhNoAutoUppercase | Qt::ImhNoPredictiveText);
+    QEXPECT_FAIL("", "QTBUG-21686", Abort);
     QCOMPARE(input->inputMethodHints(), ref);
     input->setEchoMode(QSGTextInput::NoEcho);
     QCOMPARE(input->text(), initial);
@@ -1941,7 +1959,7 @@ void tst_qsgtextinput::echoMode()
     input->setFocus(true);
     QInputMethodEvent inputEvent;
     inputEvent.setCommitString(initial);
-    QApplication::sendEvent(&canvas, &inputEvent);
+    QGuiApplication::sendEvent(&canvas, &inputEvent);
     QCOMPARE(input->text(), initial);
     QCOMPARE(input->displayText(), initial);
     QCOMPARE(input->inputMethodQuery(Qt::ImSurroundingText).toString(), initial);
@@ -1953,9 +1971,10 @@ void tst_qdeclarativetextinput::passwordEchoDelay()
     QSGView canvas(QUrl::fromLocalFile(SRCDIR "/data/echoMode.qml"));
     canvas.show();
     canvas.setFocus();
-    QApplication::setActiveWindow(&canvas);
+    QGuiApplication::setActiveWindow(&canvas);
     QTest::qWaitForWindowShown(&canvas);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&canvas));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(canvas.windowState(), Qt::WindowActive);
 
     QVERIFY(canvas.rootObject() != 0);
 
@@ -1994,7 +2013,7 @@ void tst_qdeclarativetextinput::passwordEchoDelay()
 
     QInputMethodEvent ev;
     ev.setCommitString(QLatin1String("7"));
-    QApplication::sendEvent(&canvas, &ev);
+    QGuiApplication::sendEvent(&canvas, &ev);
     QCOMPARE(input->displayText(), QString(7, fillChar) + QLatin1Char('7'));
 }
 #endif
@@ -2005,10 +2024,11 @@ void tst_qsgtextinput::simulateKey(QSGView *view, int key)
     QKeyEvent press(QKeyEvent::KeyPress, key, 0);
     QKeyEvent release(QKeyEvent::KeyRelease, key, 0);
 
-    QApplication::sendEvent(view, &press);
-    QApplication::sendEvent(view, &release);
+    QGuiApplication::sendEvent(view, &press);
+    QGuiApplication::sendEvent(view, &release);
 }
 
+#ifndef QTBUG_21691
 class MyInputContext : public QInputContext
 {
 public:
@@ -2065,9 +2085,14 @@ public:
     Qt::MouseButtons eventButtons;
     Qt::KeyboardModifiers eventModifiers;
 };
+#endif
 
 void tst_qsgtextinput::openInputPanelOnClick()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/openInputPanel.qml"));
     MyInputContext ic;
     // QSGCanvas won't set the Qt::WA_InputMethodEnabled flag unless a suitable item has focus
@@ -2076,9 +2101,10 @@ void tst_qsgtextinput::openInputPanelOnClick()
     view.setInputContext(&ic);
     view.setAttribute(Qt::WA_InputMethodEnabled, false);
     view.show();
-    QApplication::setActiveWindow(&view);
+    QGuiApplication::setActiveWindow(&view);
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextInput *input = qobject_cast<QSGTextInput *>(view.rootObject());
     QVERIFY(input);
 
@@ -2088,20 +2114,23 @@ void tst_qsgtextinput::openInputPanelOnClick()
     // input panel on click
     inputPrivate->showInputPanelOnFocus = false;
 
-    QStyle::RequestSoftwareInputPanel behavior = QStyle::RequestSoftwareInputPanel(
-            view.style()->styleHint(QStyle::SH_RequestSoftwareInputPanel));
+    // No longer relevant?
+//    QStyle::RequestSoftwareInputPanel behavior = QStyle::RequestSoftwareInputPanel(
+//            view.style()->styleHint(QStyle::SH_RequestSoftwareInputPanel));
     QTest::mouseClick(&view, Qt::LeftButton, 0, input->pos().toPoint());
     QApplication::processEvents();
-    if (behavior == QStyle::RSIP_OnMouseClickAndAlreadyFocused) {
-        QCOMPARE(ic.openInputPanelReceived, false);
-        QTest::mouseClick(&view, Qt::LeftButton, 0, input->pos().toPoint());
-        QApplication::processEvents();
-        QCOMPARE(ic.openInputPanelReceived, true);
-    } else if (behavior == QStyle::RSIP_OnMouseClick) {
+//    if (behavior == QStyle::RSIP_OnMouseClickAndAlreadyFocused) {
+//        QCOMPARE(ic.openInputPanelReceived, false);
+//        QTest::mouseClick(&view, Qt::LeftButton, 0, input->pos().toPoint());
+//        QApplication::processEvents();
+//        QCOMPARE(ic.openInputPanelReceived, true);
+//    } else if (behavior == QStyle::RSIP_OnMouseClick) {
         QCOMPARE(ic.openInputPanelReceived, true);
-    }
+//    }
     ic.openInputPanelReceived = false;
 
+
+
     // focus should not cause input panels to open or close
     input->setFocus(false);
     input->setFocus(true);
@@ -2110,10 +2139,15 @@ void tst_qsgtextinput::openInputPanelOnClick()
     input->setFocus(false);
     QCOMPARE(ic.openInputPanelReceived, false);
     QCOMPARE(ic.closeInputPanelReceived, false);
+#endif
 }
 
 void tst_qsgtextinput::openInputPanelOnFocus()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/openInputPanel.qml"));
     MyInputContext ic;
     // QSGCanvas won't set the Qt::WA_InputMethodEnabled flag unless a suitable item has focus
@@ -2122,9 +2156,10 @@ void tst_qsgtextinput::openInputPanelOnFocus()
     view.setInputContext(&ic);
     view.setAttribute(Qt::WA_InputMethodEnabled, false);
     view.show();
-    QApplication::setActiveWindow(&view);
+    QGuiApplication::setActiveWindow(&view);
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextInput *input = qobject_cast<QSGTextInput *>(view.rootObject());
     QVERIFY(input);
     QSignalSpy focusOnPressSpy(input, SIGNAL(activeFocusOnPressChanged(bool)));
@@ -2140,7 +2175,7 @@ void tst_qsgtextinput::openInputPanelOnFocus()
 
     // focus on press, input panel on focus
     QTest::mousePress(&view, Qt::LeftButton, 0, input->pos().toPoint());
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QVERIFY(input->hasActiveFocus());
     QCOMPARE(ic.openInputPanelReceived, true);
     ic.openInputPanelReceived = false;
@@ -2153,7 +2188,7 @@ void tst_qsgtextinput::openInputPanelOnFocus()
     // if already focused, input panel can be opened on press
     QVERIFY(input->hasActiveFocus());
     QTest::mousePress(&view, Qt::LeftButton, 0, input->pos().toPoint());
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, true);
     ic.openInputPanelReceived = false;
 
@@ -2162,7 +2197,7 @@ void tst_qsgtextinput::openInputPanelOnFocus()
     QSGTextInput anotherInput;
     anotherInput.setParentItem(view.rootItem());
     anotherInput.setFocus(true);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, true);
     ic.openInputPanelReceived = false;
     QCOMPARE(view.inputContext(), (QInputContext*)&ic);
@@ -2173,7 +2208,7 @@ void tst_qsgtextinput::openInputPanelOnFocus()
     QSGItem item;
     item.setParentItem(view.rootItem());
     item.setFocus(true);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, false);
     QVERIFY(view.inputContext() == 0);
     QVERIFY(!view.testAttribute(Qt::WA_InputMethodEnabled));
@@ -2188,7 +2223,7 @@ void tst_qsgtextinput::openInputPanelOnFocus()
     input->setFocus(true);
     QTest::mousePress(&view, Qt::LeftButton, 0, input->pos().toPoint());
     QTest::mouseRelease(&view, Qt::LeftButton, 0, input->pos().toPoint());
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, false);
     QCOMPARE(ic.closeInputPanelReceived, false);
 
@@ -2212,7 +2247,7 @@ void tst_qsgtextinput::openInputPanelOnFocus()
     input->setFocusOnPress(true);
     QCOMPARE(focusOnPressSpy.count(),2);
     input->setFocus(false);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, false);
     QCOMPARE(ic.closeInputPanelReceived, false);
     ic.closeInputPanelReceived = false;
@@ -2228,7 +2263,7 @@ void tst_qsgtextinput::openInputPanelOnFocus()
     // input method should be disabled
     // if TextInput loses focus
     input->setFocus(false);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QVERIFY(view.inputContext() == 0);
     QVERIFY(!view.testAttribute(Qt::WA_InputMethodEnabled));
 
@@ -2237,10 +2272,11 @@ void tst_qsgtextinput::openInputPanelOnFocus()
     input->setReadOnly(true);
     ic.openInputPanelReceived = false;
     input->setFocus(true);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     QCOMPARE(ic.openInputPanelReceived, false);
     QVERIFY(view.inputContext() == 0);
     QVERIFY(!view.testAttribute(Qt::WA_InputMethodEnabled));
+#endif
 }
 
 class MyTextInput : public QSGTextInput
@@ -2265,7 +2301,7 @@ void tst_qsgtextinput::setHAlignClearCache()
     input.setText("Hello world");
     input.setParentItem(view.rootItem());
     view.show();
-    QApplication::setActiveWindow(&view);
+    view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
     QTRY_COMPARE(input.nbPaint, 1);
     input.setHAlign(QSGTextInput::AlignRight);
@@ -2283,13 +2319,13 @@ void tst_qsgtextinput::focusOutClearSelection()
     input2.setParentItem(view.rootItem());
     input.setParentItem(view.rootItem());
     view.show();
-    QApplication::setActiveWindow(&view);
+    view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
     input.select(2,5);
     //The selection should work
     QTRY_COMPARE(input.selectedText(), QLatin1String("llo"));
     input2.setFocus(true);
-    QApplication::processEvents();
+    QGuiApplication::processEvents();
     //The input lost the focus selection should be cleared
     QTRY_COMPARE(input.selectedText(), QLatin1String(""));
 }
@@ -2349,6 +2385,10 @@ void tst_qsgtextinput::testQtQuick11Attributes_data()
 
 void tst_qsgtextinput::preeditAutoScroll()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QString preeditText = "califragisiticexpialidocious!";
 
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/preeditAutoScroll.qml"));
@@ -2359,9 +2399,10 @@ void tst_qsgtextinput::preeditAutoScroll()
     view.setInputContext(&ic);
     view.setAttribute(Qt::WA_InputMethodEnabled, false);
     view.show();
-    QApplication::setActiveWindow(&view);
+    view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextInput *input = qobject_cast<QSGTextInput *>(view.rootObject());
     QVERIFY(input);
 
@@ -2431,10 +2472,15 @@ void tst_qsgtextinput::preeditAutoScroll()
     ic.sendPreeditText(preeditText.mid(0, 3), 1);
     QCOMPARE(input->positionAt(0), 0);
     QCOMPARE(input->positionAt(input->width()), 5);
+#endif
 }
 
 void tst_qsgtextinput::preeditMicroFocus()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QString preeditText = "super";
 
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/inputMethodEvent.qml"));
@@ -2445,9 +2491,10 @@ void tst_qsgtextinput::preeditMicroFocus()
     view.setInputContext(&ic);
     view.setAttribute(Qt::WA_InputMethodEnabled, false);
     view.show();
-    QApplication::setActiveWindow(&view);
+    view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextInput *input = qobject_cast<QSGTextInput *>(view.rootObject());
     QVERIFY(input);
 
@@ -2487,10 +2534,15 @@ void tst_qsgtextinput::preeditMicroFocus()
 #if defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
     QCOMPARE(ic.updateReceived, true);
 #endif
+#endif
 }
 
 void tst_qsgtextinput::inputContextMouseHandler()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QString text = "supercalifragisiticexpialidocious!";
 
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/inputContext.qml"));
@@ -2501,9 +2553,10 @@ void tst_qsgtextinput::inputContextMouseHandler()
     view.setInputContext(&ic);
     view.setAttribute(Qt::WA_InputMethodEnabled, false);
     view.show();
-    QApplication::setActiveWindow(&view);
+    view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextInput *input = qobject_cast<QSGTextInput *>(view.rootObject());
     QVERIFY(input);
 
@@ -2540,11 +2593,11 @@ void tst_qsgtextinput::inputContextMouseHandler()
     ic.eventType = QEvent::None;
 
     {   QMouseEvent mv(QEvent::MouseMove, position8, globalposition8, Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-        QApplication::sendEvent(&view, &mv); }
+        QGuiApplication::sendEvent(&view, &mv); }
     QCOMPARE(ic.eventType, QEvent::None);
 
     {   QMouseEvent mv(QEvent::MouseMove, position27, globalposition27, Qt::LeftButton, Qt::LeftButton,Qt::NoModifier);
-        QApplication::sendEvent(&view, &mv); }
+        QGuiApplication::sendEvent(&view, &mv); }
     QCOMPARE(ic.eventType, QEvent::MouseMove);
     QCOMPARE(ic.eventPosition, position27);
     QCOMPARE(ic.eventGlobalPosition, globalposition27);
@@ -2582,7 +2635,7 @@ void tst_qsgtextinput::inputContextMouseHandler()
     ic.eventType = QEvent::None;
 
     {   QMouseEvent mv(QEvent::MouseMove, position20, globalposition20, Qt::RightButton, Qt::RightButton,Qt::ControlModifier);
-        QApplication::sendEvent(&view, &mv); }
+        QGuiApplication::sendEvent(&view, &mv); }
     QCOMPARE(ic.eventType, QEvent::MouseMove);
     QCOMPARE(ic.eventPosition, position20);
     QCOMPARE(ic.eventGlobalPosition, globalposition20);
@@ -2592,7 +2645,7 @@ void tst_qsgtextinput::inputContextMouseHandler()
     ic.eventType = QEvent::None;
 
     {   QMouseEvent mv(QEvent::MouseMove, position2, globalPosition2, Qt::RightButton, Qt::RightButton,Qt::ControlModifier);
-        QApplication::sendEvent(&view, &mv); }
+        QGuiApplication::sendEvent(&view, &mv); }
     QCOMPARE(ic.eventType, QEvent::None);
 
     QTest::mouseRelease(&view, Qt::RightButton, Qt::ControlModifier, position2);
@@ -2603,6 +2656,7 @@ void tst_qsgtextinput::inputContextMouseHandler()
     QCOMPARE(ic.eventModifiers, Qt::ControlModifier);
     QVERIFY(ic.cursor < 0);
     ic.eventType = QEvent::None;
+#endif
 }
 
 void tst_qsgtextinput::inputMethodComposing()
@@ -2611,9 +2665,10 @@ void tst_qsgtextinput::inputMethodComposing()
 
     QSGView view(QUrl::fromLocalFile(SRCDIR "/data/inputContext.qml"));
     view.show();
-    QApplication::setActiveWindow(&view);
+    view.requestActivateWindow();
     QTest::qWaitForWindowShown(&view);
-    QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+    QEXPECT_FAIL("", QTBUG_21489_MESSAGE, Continue);
+    QTRY_COMPARE(view.windowState(), Qt::WindowActive);
     QSGTextInput *input = qobject_cast<QSGTextInput *>(view.rootObject());
     QVERIFY(input);
     QSignalSpy spy(input, SIGNAL(inputMethodComposingChanged()));
@@ -2621,20 +2676,21 @@ void tst_qsgtextinput::inputMethodComposing()
     QCOMPARE(input->isInputMethodComposing(), false);
     {
         QInputMethodEvent event(text.mid(3), QList<QInputMethodEvent::Attribute>());
-        QApplication::sendEvent(&view, &event);
+        QGuiApplication::sendEvent(&view, &event);
     }
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
     QCOMPARE(input->isInputMethodComposing(), true);
     QCOMPARE(spy.count(), 1);
 
     {
         QInputMethodEvent event(text.mid(12), QList<QInputMethodEvent::Attribute>());
-        QApplication::sendEvent(&view, &event);
+        QGuiApplication::sendEvent(&view, &event);
     }
     QCOMPARE(spy.count(), 1);
 
     {
         QInputMethodEvent event;
-        QApplication::sendEvent(&view, &event);
+        QGuiApplication::sendEvent(&view, &event);
     }
     QCOMPARE(input->isInputMethodComposing(), false);
     QCOMPARE(spy.count(), 2);
@@ -2642,11 +2698,15 @@ void tst_qsgtextinput::inputMethodComposing()
 
 void tst_qsgtextinput::cursorRectangleSize()
 {
+#ifdef QTBUG_21691
+    QEXPECT_FAIL("", QTBUG_21691_MESSAGE, Abort);
+    QVERIFY(false);
+#else
     QSGView *canvas = new QSGView(QUrl::fromLocalFile(SRCDIR "/data/positionAt.qml"));
     QVERIFY(canvas->rootObject() != 0);
     canvas->show();
     canvas->setFocus();
-    QApplication::setActiveWindow(canvas);
+    QGuiApplication::setActiveWindow(canvas);
     QTest::qWaitForWindowShown(canvas);
 
     QSGTextInput *textInput = qobject_cast<QSGTextInput *>(canvas->rootObject());
@@ -2654,12 +2714,13 @@ void tst_qsgtextinput::cursorRectangleSize()
     textInput->setFocus(Qt::OtherFocusReason);
     QRectF cursorRect = textInput->positionToRectangle(textInput->cursorPosition());
     QRectF microFocusFromScene = canvas->inputMethodQuery(Qt::ImMicroFocus).toRectF();
-    QRectF microFocusFromApp= QApplication::focusWidget()->inputMethodQuery(Qt::ImMicroFocus).toRectF();
+    QRectF microFocusFromApp= QGuiApplication::focusWidget()->inputMethodQuery(Qt::ImMicroFocus).toRectF();
 
     QCOMPARE(microFocusFromScene.size(), cursorRect.size());
     QCOMPARE(microFocusFromApp.size(), cursorRect.size());
 
     delete canvas;
+#endif
 }
 
 QTEST_MAIN(tst_qsgtextinput)