Test for ASSERT on empty tags in TextEdit
authorDamian Jansen <damian.jansen@nokia.com>
Thu, 20 Oct 2011 05:48:29 +0000 (15:48 +1000)
committerQt by Nokia <qt-info@nokia.com>
Thu, 20 Oct 2011 23:01:16 +0000 (01:01 +0200)
Test for assert if user enters empty text, generally when binding
a Text element to a TextEdit.

Change-Id: I9d5ec511971eb823d1f2388de13eb5cdb82a4477
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
tests/auto/declarative/qsgtextedit/data/qtbug-22058.qml [new file with mode: 0644]
tests/auto/declarative/qsgtextedit/tst_qsgtextedit.cpp

diff --git a/tests/auto/declarative/qsgtextedit/data/qtbug-22058.qml b/tests/auto/declarative/qsgtextedit/data/qtbug-22058.qml
new file mode 100644 (file)
index 0000000..8ad1514
--- /dev/null
@@ -0,0 +1,39 @@
+import QtQuick 2.0
+
+Rectangle {
+    property variant inputField: textedit
+    height: 200
+    width: 200
+
+    Rectangle {
+        height: parent.height /2
+        width: parent.width
+        color: "transparent"
+        border.color: "black"
+        border.width: 4
+        Text {
+            anchors.centerIn: parent
+            height: parent.height * .95
+            width: parent.width * .95
+            text: textedit.text
+        }
+    }
+
+    Rectangle {
+        height: parent.height /2
+        width: parent.width
+        color: "transparent"
+        border.color: "black"
+        border.width: 4
+        anchors.bottom: parent.bottom
+        TextEdit {
+            id: textedit
+            anchors.centerIn: parent
+            height: parent.height * .95
+            width: parent.width * .95
+            focus: true
+            wrapMode: TextEdit.WordWrap
+            text: ""
+        }
+    }
+}
index 17ce4db..7afa5e6 100644 (file)
@@ -156,6 +156,8 @@ private slots:
     void inputMethodComposing();
     void cursorRectangleSize();
 
+    void emptytags_QTBUG_22058();
+
 private:
     void simulateKey(QSGView *, int key, Qt::KeyboardModifiers modifiers = 0);
 
@@ -2438,6 +2440,28 @@ void tst_qsgtextedit::cursorRectangleSize()
     delete canvas;
 }
 
+void tst_qsgtextedit::emptytags_QTBUG_22058()
+{
+    QSGView canvas(QUrl::fromLocalFile(TESTDATA("qtbug-22058.qml")));
+    QVERIFY(canvas.rootObject() != 0);
+
+    canvas.show();
+    canvas.requestActivateWindow();
+    QTest::qWaitForWindowShown(&canvas);
+    QSGTextEdit *input = qobject_cast<QSGTextEdit *>(qvariant_cast<QObject *>(canvas.rootObject()->property("inputField")));
+    QVERIFY(input->hasActiveFocus());
+
+    QInputMethodEvent event("", QList<QInputMethodEvent::Attribute>());
+    event.setCommitString("<b>Bold<");
+    QGuiApplication::sendEvent(input, &event);
+    QCOMPARE(input->text(), QString("<b>Bold<"));
+    event.setCommitString(">");
+    QEXPECT_FAIL("", "Entering empty tags into a TextEdit asserts - QTBUG-22058", Abort);
+    QVERIFY(false);
+    QGuiApplication::sendEvent(input, &event);
+    QCOMPARE(input->text(), QString("<b>Bold<>"));
+}
+
 QTEST_MAIN(tst_qsgtextedit)
 
 #include "tst_qsgtextedit.moc"