void RangeTest::testInsertText() { KTextEditor::DocumentPrivate doc; // Multi-line insert KTextEditor::MovingCursor *cursor1 = doc.newMovingCursor(KTextEditor::Cursor(), KTextEditor::MovingCursor::StayOnInsert); KTextEditor::MovingCursor *cursor2 = doc.newMovingCursor(KTextEditor::Cursor(), KTextEditor::MovingCursor::MoveOnInsert); doc.insertText(KTextEditor::Cursor(), QLatin1String("Test Text\nMore Test Text")); QCOMPARE(doc.documentEnd(), KTextEditor::Cursor(1, 14)); QString text = doc.text(KTextEditor::Range(1, 0, 1, 14)); QCOMPARE(text, QLatin1String("More Test Text")); // Check cursors and ranges have moved properly QCOMPARE(cursor1->toCursor(), KTextEditor::Cursor(0, 0)); QCOMPARE(cursor2->toCursor(), KTextEditor::Cursor(1, 14)); KTextEditor::Cursor cursor3 = doc.endOfLine(1); // Set up a few more lines doc.insertText(*cursor2, QLatin1String("\nEven More Test Text")); QCOMPARE(doc.documentEnd(), KTextEditor::Cursor(2, 19)); QCOMPARE(cursor3, doc.endOfLine(1)); }