[PATCH] migrate check_index test from Java to Python
Xiaoli Duan (via Code Review)
gerrit at gerrit.libreoffice.org
Sun Jun 16 08:21:56 PDT 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/4310
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/10/4310/1
migrate check_index test from Java to Python
Change-Id: I5080cb0c3ca4b28d197137407da0d5f5b3d6c6d7
---
M sw/PythonTest_sw_python.mk
A sw/qa/python/check_index.py
2 files changed, 98 insertions(+), 0 deletions(-)
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()
--
To view, visit https://gerrit.libreoffice.org/4310
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5080cb0c3ca4b28d197137407da0d5f5b3d6c6d7
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Xiaoli Duan <duan19002009 at gmail.com>
More information about the LibreOffice
mailing list