[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/plugins/textshape/tests
From: Ganesh Paramasivam <ganesh () crystalfab ! com>
Date: 2010-05-04 8:51:23
Message-ID: 20100504085123.406C0AC8AB () svn ! kde ! org
[Download RAW message or body]
SVN commit 1122580 by ganeshp:
Adding unit-test cases to test partial list-item delete, list-item delete and list \
delete
M +173 -0 TestChangeTrackedDelete.cpp
M +6 -0 TestChangeTrackedDelete.h
--- trunk/koffice/plugins/textshape/tests/TestChangeTrackedDelete.cpp \
#1122579:1122580 @@ -156,6 +156,179 @@
delete textTool;
}
+void TestChangeTrackedDelete::testPartialListItemDelete()
+{
+ TextTool *textTool = new TextTool(new MockCanvas);
+ QTextDocument *document = textTool->m_textEditor->document();
+ KoTextDocumentLayout *layout = \
qobject_cast<KoTextDocumentLayout*>(document->documentLayout()); + QTextCursor \
*cursor = textTool->m_textEditor->cursor(); + insertSampleList(document);
+
+ cursor->setPosition(46);
+ cursor->setPosition(62, QTextCursor::KeepAnchor);
+ ChangeTrackedDeleteCommand *delCommand = new \
ChangeTrackedDeleteCommand(ChangeTrackedDeleteCommand::NextChar, textTool); + \
textTool->m_textEditor->addCommand(delCommand); + \
QCOMPARE(document->characterAt(46).unicode(), \
(ushort)(QChar::ObjectReplacementCharacter)); +
+ // This is wierd. Without this loop present the succeeding call to \
inlineTextObject returs NULL. Why ?????? + for (int i=0; \
i<document->characterCount(); i++) { + cursor->setPosition(i);
+ }
+
+ cursor->setPosition(47);
+ KoDeleteChangeMarker *testMarker = \
dynamic_cast<KoDeleteChangeMarker*>(layout->inlineTextObjectManager()->inlineTextObject(*cursor));
+ QTextDocumentFragment deleteData = \
KoTextDocument(document).changeTracker()->elementById(testMarker->changeId())->getDeleteData();
+
+ QTextDocument deleteDocument;
+ QTextCursor deleteCursor(&deleteDocument);
+
+ deleteCursor.insertFragment(deleteData);
+ bool listFound = false;
+
+ for (int i=0; i < deleteDocument.characterCount(); i++) {
+ deleteCursor.setPosition(i);
+ if (deleteCursor.currentList()) {
+ listFound = true;
+ continue;
+ }
+ }
+
+ QVERIFY(listFound == true);
+ QTextList *deletedList = deleteCursor.currentList();
+ bool deletedListStatus = \
deletedList->format().boolProperty(KoDeleteChangeMarker::DeletedList); + QVERIFY \
(deletedListStatus == false); + bool deletedListItemStatus;
+ deletedListItemStatus = \
deletedList->item(0).blockFormat().boolProperty(KoDeleteChangeMarker::DeletedListItem);
+ QVERIFY(deletedListItemStatus == false);
+ delete textTool;
+}
+
+void TestChangeTrackedDelete::testListItemDelete()
+{
+ TextTool *textTool = new TextTool(new MockCanvas);
+ QTextDocument *document = textTool->m_textEditor->document();
+ KoTextDocumentLayout *layout = \
qobject_cast<KoTextDocumentLayout*>(document->documentLayout()); + QTextCursor \
*cursor = textTool->m_textEditor->cursor(); + insertSampleList(document);
+
+ cursor->setPosition(46);
+ cursor->setPosition(78, QTextCursor::KeepAnchor);
+ ChangeTrackedDeleteCommand *delCommand = new \
ChangeTrackedDeleteCommand(ChangeTrackedDeleteCommand::NextChar, textTool); + \
textTool->m_textEditor->addCommand(delCommand); + \
QCOMPARE(document->characterAt(46).unicode(), \
(ushort)(QChar::ObjectReplacementCharacter)); +
+ // This is wierd. Without this loop present the succeeding call to \
inlineTextObject returs NULL. Why ?????? + for (int i=0; \
i<document->characterCount(); i++) { + cursor->setPosition(i);
+ }
+
+ cursor->setPosition(47);
+ KoDeleteChangeMarker *testMarker = \
dynamic_cast<KoDeleteChangeMarker*>(layout->inlineTextObjectManager()->inlineTextObject(*cursor));
+ QTextDocumentFragment deleteData = \
KoTextDocument(document).changeTracker()->elementById(testMarker->changeId())->getDeleteData();
+
+ QTextDocument deleteDocument;
+ QTextCursor deleteCursor(&deleteDocument);
+
+ deleteCursor.insertFragment(deleteData);
+ bool listFound = false;
+
+ for (int i=0; i < deleteDocument.characterCount(); i++) {
+ deleteCursor.setPosition(i);
+ if (deleteCursor.currentList()) {
+ listFound = true;
+ continue;
+ }
+ }
+
+ QVERIFY(listFound == true);
+ QTextList *deletedList = deleteCursor.currentList();
+ bool deletedListStatus = \
deletedList->format().boolProperty(KoDeleteChangeMarker::DeletedList); + QVERIFY \
(deletedListStatus == false); + bool deletedListItemStatus;
+ deletedListItemStatus = \
deletedList->item(0).blockFormat().boolProperty(KoDeleteChangeMarker::DeletedListItem);
+ QVERIFY(deletedListItemStatus == false);
+ deletedListItemStatus = \
deletedList->item(1).blockFormat().boolProperty(KoDeleteChangeMarker::DeletedListItem);
+ QVERIFY(deletedListItemStatus == true);
+ delete textTool;
+}
+
+void TestChangeTrackedDelete::testListDelete()
+{
+ TextTool *textTool = new TextTool(new MockCanvas);
+ QTextDocument *document = textTool->m_textEditor->document();
+ KoTextDocumentLayout *layout = \
qobject_cast<KoTextDocumentLayout*>(document->documentLayout()); + QTextCursor \
*cursor = textTool->m_textEditor->cursor(); + insertSampleList(document);
+
+ cursor->setPosition(16);
+ cursor->setPosition(152, QTextCursor::KeepAnchor);
+ ChangeTrackedDeleteCommand *delCommand = new \
ChangeTrackedDeleteCommand(ChangeTrackedDeleteCommand::NextChar, textTool); + \
textTool->m_textEditor->addCommand(delCommand); + \
QCOMPARE(document->characterAt(16).unicode(), \
(ushort)(QChar::ObjectReplacementCharacter)); +
+ // This is wierd. Without this loop present the succeeding call to \
inlineTextObject returs NULL. Why ?????? + for (int i=0; \
i<document->characterCount(); i++) { + cursor->setPosition(i);
+ }
+
+ cursor->setPosition(17);
+ KoDeleteChangeMarker *testMarker = \
dynamic_cast<KoDeleteChangeMarker*>(layout->inlineTextObjectManager()->inlineTextObject(*cursor));
+ QTextDocumentFragment deleteData = \
KoTextDocument(document).changeTracker()->elementById(testMarker->changeId())->getDeleteData();
+
+ QTextDocument deleteDocument;
+ QTextCursor deleteCursor(&deleteDocument);
+
+ deleteCursor.insertFragment(deleteData);
+ bool listFound = false;
+
+ for (int i=0; i < deleteDocument.characterCount(); i++) {
+ deleteCursor.setPosition(i);
+ if (deleteCursor.currentList()) {
+ listFound = true;
+ continue;
+ }
+ }
+
+ QVERIFY(listFound == true);
+ QTextList *deletedList = deleteCursor.currentList();
+ bool deletedListStatus = \
deletedList->format().boolProperty(KoDeleteChangeMarker::DeletedList); + QVERIFY \
(deletedListStatus == true); + bool deletedListItemStatus;
+ deletedListItemStatus = \
deletedList->item(0).blockFormat().boolProperty(KoDeleteChangeMarker::DeletedListItem);
+ QVERIFY(deletedListItemStatus == true);
+ deletedListItemStatus = \
deletedList->item(1).blockFormat().boolProperty(KoDeleteChangeMarker::DeletedListItem);
+ QVERIFY(deletedListItemStatus == true);
+ deletedListItemStatus = \
deletedList->item(2).blockFormat().boolProperty(KoDeleteChangeMarker::DeletedListItem);
+ QVERIFY(deletedListItemStatus == true);
+ deletedListItemStatus = \
deletedList->item(3).blockFormat().boolProperty(KoDeleteChangeMarker::DeletedListItem);
+ QVERIFY(deletedListItemStatus == true);
+ deletedListItemStatus = \
deletedList->item(4).blockFormat().boolProperty(KoDeleteChangeMarker::DeletedListItem);
+ QVERIFY(deletedListItemStatus == true);
+ delete textTool;
+}
+
+void TestChangeTrackedDelete::insertSampleList(QTextDocument *document)
+{
+ QTextCursor cursor(document);
+ KoList *list = new KoList(document, new KoListStyle());
+ cursor.insertText("This is a paragraph of text before a list.");
+ cursor.insertBlock();
+ list->add(cursor.block(), 1);
+ cursor.insertText("This is a list-item 1");
+ cursor.insertBlock();
+ list->add(cursor.block(), 1);
+ cursor.insertText("This is a list-item 2");
+ cursor.insertBlock();
+ list->add(cursor.block(), 1);
+ cursor.insertText("This is a list-item 3");
+ cursor.insertBlock();
+ list->add(cursor.block(), 1);
+ cursor.insertText("This is a list-item 4");
+ cursor.insertBlock();
+ list->add(cursor.block(), 1);
+ cursor.insertText("This is a list-item 5");
+}
+
QTEST_MAIN(TestChangeTrackedDelete)
#include <TestChangeTrackedDelete.moc>
--- trunk/koffice/plugins/textshape/tests/TestChangeTrackedDelete.h #1122579:1122580
@@ -15,6 +15,9 @@
TestChangeTrackedDelete();
~TestChangeTrackedDelete();
+private:
+ void insertSampleList(QTextDocument *documet);
+
private slots:
void testDeletePreviousChar();
void testDeleteNextChar();
@@ -22,6 +25,9 @@
void testPrefixMerge();
void testSuffixMerge();
void testInterMerge();
+ void testPartialListItemDelete();
+ void testListItemDelete();
+ void testListDelete();
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic