[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