diff options
Diffstat (limited to 'tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp')
-rw-r--r-- | tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp index 1869139a98..b0f70d1a59 100644 --- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp @@ -2901,15 +2901,28 @@ void tst_QTextDocument::testUndoBlocks() doc->undo(); QCOMPARE(doc->toPlainText(), QString("")); + cursor.insertText("town"); + cursor.beginEditBlock(); // Edit block 1 - Deletion/Insertion + cursor.setPosition(0, QTextCursor::KeepAnchor); + cursor.insertText("r"); + cursor.endEditBlock(); + cursor.insertText("est"); // Merged into edit block 1 + QCOMPARE(doc->toPlainText(), QString("rest")); + doc->undo(); + QCOMPARE(doc->toPlainText(), QString("town")); + doc->undo(); + QCOMPARE(doc->toPlainText(), QString("")); + + // This case would not happen in practice. If the user typed out this text, it would all be part of one + // edit block. This would cause the undo to clear all text. But for the purpose of testing the beginEditBlock + // and endEditBlock calls with respect to qtextdocument this is tested. cursor.insertText("quod"); - cursor.beginEditBlock(); + cursor.beginEditBlock(); // Edit block 1 - Insertion cursor.insertText(" erat"); cursor.endEditBlock(); - cursor.insertText(" demonstrandum"); + cursor.insertText(" demonstrandum"); // Merged into edit block 1 QCOMPARE(doc->toPlainText(), QString("quod erat demonstrandum")); doc->undo(); - QCOMPARE(doc->toPlainText(), QString("quod erat")); - doc->undo(); QCOMPARE(doc->toPlainText(), QString("quod")); doc->undo(); QCOMPARE(doc->toPlainText(), QString("")); |