[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kate/tests
From: Christoph Cullmann <cullmann () kde ! org>
Date: 2010-04-30 20:35:03
Message-ID: 20100430203503.32241AC8AA () svn ! kde ! org
[Download RAW message or body]
SVN commit 1121218 by cullmann:
dhaumann: add basic unit test for transformRange
M +63 -15 revision_test.cpp
M +2 -1 revision_test.h
--- trunk/KDE/kdelibs/kate/tests/revision_test.cpp #1121217:1121218
@@ -24,9 +24,8 @@
#include <katedocument.h>
#include <katebuffer.h>
-#include <katetexthistory.h>
-#include <ktexteditor/movingcursor.h>
-#include <ktexteditor/movingrange.h>
+#include <ktexteditor/cursor.h>
+#include <ktexteditor/range.h>
using namespace KTextEditor;
@@ -40,7 +39,17 @@
+ ", " + QByteArray::number(cursor.column()) + "]";
return qstrdup(ba.data());
}
+
+ template<>
+ char *toString(const KTextEditor::Range &range)
+ {
+ QByteArray ba = "Range[" + QByteArray::number(range.start().line())
+ + ", " + QByteArray::number(range.start().column()) + " - "
+ + QByteArray::number(range.end().line())
+ + ", " + QByteArray::number(range.end().column()) + "]";
+ return qstrdup(ba.data());
}
+}
RevisionTest::RevisionTest()
@@ -57,14 +66,14 @@
// - revision()
// - unlockRevision()
// - transformCursor()
-// - transformRange()
-void RevisionTest::testRevision()
+void RevisionTest::testTransformCursor()
{
KateDocument doc (false, false, false);
- Kate::TextHistory& history = doc.buffer().history();
- // initial revision is -1, as there is no stored revision
+ // initial saved revision of unsaved document is -1
QVERIFY(doc.lastSavedRevision() == -1);
+
+ // initial revision is always 0
QCOMPARE(doc.revision(), (qint64) 0);
// one edit action -> revision now 1, last saved still -1
@@ -83,6 +92,7 @@
Cursor c01(0, 1);
Cursor stayOnInsert(0, 2);
Cursor moveOnInsert(0, 2);
+
doc.transformCursor(c01, MovingCursor::MoveOnInsert, rev, -1);
doc.transformCursor(moveOnInsert, MovingCursor::MoveOnInsert, rev, -1);
doc.transformCursor(stayOnInsert, MovingCursor::StayOnInsert, rev, -1);
@@ -100,7 +110,7 @@
// now undo, the cursors should move to original positions again
doc.undo();
- // reset cursors
+ // inverse transformation
doc.transformCursor(c01, MovingCursor::MoveOnInsert, rev, -1);
doc.transformCursor(moveOnInsert, MovingCursor::MoveOnInsert, rev, -1);
doc.transformCursor(stayOnInsert, MovingCursor::StayOnInsert, rev, -1);
@@ -108,25 +118,63 @@
QCOMPARE(c01, Cursor(0, 1));
QCOMPARE(stayOnInsert, Cursor(0, 2));
QCOMPARE(moveOnInsert, Cursor(0, 2));
+}
-/*transformRange(KTextEditor::Range & range,
- KTextEditor::MovingRange::InsertBehaviors insertBehaviors,
- MovingRange::EmptyBehavior emptyBehavior,
- qint64 fromRevision,
- qint64 toRevision = -1
- )*/
-}
+// tests:
+// - transformRange()
+void RevisionTest::testTransformRange()
+{
+ KateDocument doc (false, false, false);
+ QCOMPARE(doc.revision(), (qint64) 0);
+ doc.setText("00\n"
+ "11");
+ // now lock current revision
+ qint64 rev = doc.revision();
+ doc.lockRevision(rev);
+ Range r1(Cursor(0, 0), Cursor(1, 2));
+ Range r2(Cursor(0, 1), Cursor(1, 1));
+ Range invalidOnEmpty(Cursor(0, 1), Cursor(1, 1));
+ // remove text
+ doc.removeText(Range(Cursor(0, 0), Cursor(1, 2)));
+ doc.transformRange(r1, MovingRange::ExpandLeft | MovingRange::ExpandRight,
+ MovingRange::AllowEmpty, rev, -1);
+ doc.transformRange(r2, MovingRange::ExpandLeft | MovingRange::ExpandRight,
+ MovingRange::AllowEmpty, rev, -1);
+ doc.transformRange(invalidOnEmpty, MovingRange::ExpandLeft | MovingRange::ExpandRight,
+ MovingRange::InvalidateIfEmpty, rev, -1);
+ QCOMPARE(r1, Range(Cursor(0, 0), Cursor(0, 0)));
+ QCOMPARE(r2, Range(Cursor(0, 0), Cursor(0, 0)));
+ QCOMPARE(invalidOnEmpty, Range::invalid());
+ // free revision and lock current again
+ doc.unlockRevision(rev); // FIXME: cullmann?
+ rev = doc.revision();
+ doc.lockRevision(rev);
+ // now undo
+ doc.undo();
+ // r1 should span the entire document
+ // r2 should be empty at end of document
+ // invalidOnEmpty should stay invalid
+ doc.transformRange(r1, MovingRange::ExpandLeft | MovingRange::ExpandRight,
+ MovingRange::AllowEmpty, rev, -1);
+ doc.transformRange(r2, MovingRange::ExpandRight,
+ MovingRange::AllowEmpty, rev, -1);
+ doc.transformRange(invalidOnEmpty, MovingRange::ExpandLeft | MovingRange::ExpandRight,
+ MovingRange::AllowEmpty, rev, -1);
+ QCOMPARE(r1, Range(Cursor(0, 0), Cursor(1, 2)));
+ QCOMPARE(r2, Range(Cursor(1, 2), Cursor(1, 2)));
+ QCOMPARE(invalidOnEmpty, Range::invalid());
+}
--- trunk/KDE/kdelibs/kate/tests/revision_test.h #1121217:1121218
@@ -31,7 +31,8 @@
~RevisionTest();
private Q_SLOTS:
- void testRevision();
+ void testTransformCursor();
+ void testTransformRange();
};
#endif // KATE_REVISION_TEST_H
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic