[Libreoffice-commits] core.git: sw/PythonTest_sw_python.mk sw/qa

Xiaoli duan19002009 at gmail.com
Sun Jun 16 21:09:41 PDT 2013


 sw/PythonTest_sw_python.mk  |    1 
 sw/qa/python/check_index.py |   97 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 98 insertions(+)

New commits:
commit 99eee227ac5a96a2657e26d64b8fbf228fd10bf2
Author: Xiaoli <duan19002009 at gmail.com>
Date:   Sun Jun 16 17:13:43 2013 +0200

    migrate check_index test from Java to Python
    
    Change-Id: I5080cb0c3ca4b28d197137407da0d5f5b3d6c6d7
    Reviewed-on: https://gerrit.libreoffice.org/4310
    Reviewed-by: David Ostrovsky <David.Ostrovsky at gmx.de>
    Tested-by: David Ostrovsky <David.Ostrovsky at gmx.de>

diff --git a/sw/PythonTest_sw_python.mk b/sw/PythonTest_sw_python.mk
index cbddfc5..0b582a2 100644
--- a/sw/PythonTest_sw_python.mk
+++ b/sw/PythonTest_sw_python.mk
@@ -10,6 +10,7 @@
 $(eval $(call gb_PythonTest_PythonTest,sw_python))
 
 $(eval $(call gb_PythonTest_add_modules,sw_python,$(SRCDIR)/sw/qa/python,\
+	check_index \
 	get_expression \
 	set_expression \
 	var_fields \
diff --git a/sw/qa/python/check_index.py b/sw/qa/python/check_index.py
new file mode 100644
index 0000000..6ea5b0b
--- /dev/null
+++ b/sw/qa/python/check_index.py
@@ -0,0 +1,97 @@
+import unittest
+import unohelper
+import os
+from org.libreoffice.unotest import UnoInProcess
+from com.sun.star.text.ControlCharacter import PARAGRAPH_BREAK
+from com.sun.star.util import XRefreshListener
+
+class RefreshListener(XRefreshListener, unohelper.Base):
+ 
+    def __init__(self):
+        self.m_bDisposed = False
+        self.m_bRefreshed = False
+
+    def disposing(self, event):
+        self.m_bDisposed = True
+
+    def refreshed(self, event):
+        self.m_bRefreshed = True
+    
+    def assertRefreshed(self):
+        assert(self.m_bRefreshed)
+        self.m_bRefreshed = False
+    
+class CheckIndex(unittest.TestCase):
+    _uno = None
+    _xDoc = None
+
+    @classmethod
+    def setUpClass(cls):
+        cls._uno = UnoInProcess()
+        cls._uno.setUp()
+        cls._xDoc = cls._uno.openEmptyWriterDoc()
+
+    @classmethod
+    def tearDownClass(cls):
+        cls._uno.tearDown() 
+   
+    def test_check_index(self):
+        xDoc = self.__class__._xDoc
+        xIndex = xDoc.createInstance("com.sun.star.text.ContentIndex")
+        xBodyText = xDoc.getText()
+        xCursor = xBodyText.createTextCursor()
+        xIndex.setPropertyValue("CreateFromOutline", True)
+        xBodyText.insertTextContent(xCursor, xIndex, True)
+
+    # register listener
+        listener = RefreshListener()
+        xIndex.addRefreshListener(listener)
+        self.assertFalse(listener.m_bRefreshed)
+        xIndex.refresh()
+        listener.assertRefreshed()
+
+    # insert some heading
+        xCursor.gotoEnd(False)
+        xBodyText.insertControlCharacter(xCursor, PARAGRAPH_BREAK, False)
+        xCursor.gotoEnd(False)
+        test_string = "a heading"
+        xCursor.setString(test_string)
+        xCursor.gotoStartOfParagraph(True)
+        xCursor.setPropertyValue("ParaStyleName","Heading 1")
+
+    # hope text is in last paragraph...
+        xIndex.refresh()
+        listener.assertRefreshed()
+        xCursor.gotoRange(xIndex.getAnchor().getEnd(), False)
+        xCursor.gotoStartOfParagraph(True)
+        text = xCursor.getString()
+    # check if we got text with 'test_string'
+        assert( text.find(test_string) >= 0 )
+
+    # insert some more heading
+        xCursor.gotoEnd(False)
+        xBodyText.insertControlCharacter(xCursor, PARAGRAPH_BREAK, False)
+        xCursor.gotoEnd(False)
+        test_string = "yet another heading"
+        xCursor.setString(test_string)
+        xCursor.gotoStartOfParagraph(True)
+        xCursor.setPropertyValue("ParaStyleName","Heading 1")
+
+    # try agian with update
+        xIndex.update()
+        listener.assertRefreshed()
+        xCursor.gotoRange(xIndex.getAnchor().getEnd(), False)
+        xCursor.gotoStartOfParagraph(True)
+        text = xCursor.getString()
+    # check if we got text with 'test_string'
+        assert( text.find(test_string) >= 0 )
+     
+    # dispose must call the listener
+        assert(not listener.m_bDisposed)
+        xIndex.dispose()
+        assert(listener.m_bDisposed)
+    
+    # close the document
+        xDoc.dispose()
+if __name__ == "__main__":
+    unittest.main()


More information about the Libreoffice-commits mailing list