diff options
author | Renato Filho <renato.filho@openbossa.org> | 2011-04-06 16:05:56 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:08 -0300 |
commit | de23ffa760d9cba199930760618f99423f5e0bca (patch) | |
tree | 231002f73dcb8f51d2644f80d8ad2594008ec2dd | |
parent | ccf8ddf75b0e5342f8e927b20d3f355456e44099 (diff) |
Create unitest for bug #688.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
-rw-r--r-- | tests/QtGui/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtGui/bug_688.py | 87 |
2 files changed, 88 insertions, 0 deletions
diff --git a/tests/QtGui/CMakeLists.txt b/tests/QtGui/CMakeLists.txt index bad917370..086568821 100644 --- a/tests/QtGui/CMakeLists.txt +++ b/tests/QtGui/CMakeLists.txt @@ -41,6 +41,7 @@ PYSIDE_TEST(bug_667.py) PYSIDE_TEST(bug_668.py) PYSIDE_TEST(bug_674.py) PYSIDE_TEST(bug_675.py) +PYSIDE_TEST(bug_688.py) PYSIDE_TEST(bug_696.py) PYSIDE_TEST(bug_693.py) PYSIDE_TEST(bug_714.py) diff --git a/tests/QtGui/bug_688.py b/tests/QtGui/bug_688.py new file mode 100644 index 000000000..bcf7fd8e4 --- /dev/null +++ b/tests/QtGui/bug_688.py @@ -0,0 +1,87 @@ +''' Test bug 688: http://bugs.openbossa.org/show_bug.cgi?id=688''' + +import unittest +from helper import UsesQApplication +from PySide.QtGui import QTextFrame, QTextEdit, QTextCursor, QTextCharFormat, QFont, QTextFrameFormat + +class BugTest(UsesQApplication): + def testCase(self): + editor = QTextEdit() + cursor = QTextCursor(editor.textCursor()) + cursor.movePosition(QTextCursor.Start) + + mainFrame = cursor.currentFrame() + + plainCharFormat = QTextCharFormat() + boldCharFormat = QTextCharFormat() + boldCharFormat.setFontWeight(QFont.Bold); + cursor.insertText(""" + Text documents are represented by the + QTextDocument class, rather than by QString objects. + Each QTextDocument object contains information about + the document's internal representation, its structure, + and keeps track of modifications to provide undo/redo + facilities. This approach allows features such as the + layout management to be delegated to specialized + classes, but also provides a focus for the framework.""", + plainCharFormat) + + frameFormat = QTextFrameFormat() + frameFormat.setMargin(32) + frameFormat.setPadding(8) + frameFormat.setBorder(4) + cursor.insertFrame(frameFormat) + + cursor.insertText(""" + Documents are either converted from external sources + or created from scratch using Qt. The creation process + can done by an editor widget, such as QTextEdit, or by + explicit calls to the Scribe API.""", + boldCharFormat) + + cursor = mainFrame.lastCursorPosition() + cursor.insertText(""" + There are two complementary ways to visualize the + contents of a document: as a linear buffer that is + used by editors to modify the contents, and as an + object hierarchy containing structural information + that is useful to layout engines. In the hierarchical + model, the objects generally correspond to visual + elements such as frames, tables, and lists. At a lower + level, these elements describe properties such as the + style of text used and its alignment. The linear + representation of the document is used for editing and + manipulation of the document's contents.""", + plainCharFormat) + + + frame = cursor.currentFrame() + + items = [] + + #test iterator + for i in frame: + items.append(i) + + #test __iadd__ + b = frame.begin() + i = 0 + while not b.atEnd(): + self.assertEqual(b, items[i]) + self.assert_(b.parentFrame(), items[i].parentFrame()) + b.__iadd__(1) + i += 1 + + #test __isub__ + b = frame.end() + i = 0 + while i > 0: + self.assertEqual(b, items[i]) + self.assert_(b.parentFrame(), items[i].parentFrame()) + b.__isub__(1) + i -= 1 + + + +if __name__ == '__main__': + unittest.main() |