Kaydet (Commit) 99eee227 authored tarafından Xiaoli's avatar Xiaoli Kaydeden (comit) David Ostrovsky

migrate check_index test from Java to Python

Change-Id: I5080cb0c3ca4b28d197137407da0d5f5b3d6c6d7
Reviewed-on: https://gerrit.libreoffice.org/4310Reviewed-by: 's avatarDavid Ostrovsky <David.Ostrovsky@gmx.de>
Tested-by: 's avatarDavid Ostrovsky <David.Ostrovsky@gmx.de>
üst 76a90129
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
$(eval $(call gb_PythonTest_PythonTest,sw_python)) $(eval $(call gb_PythonTest_PythonTest,sw_python))
$(eval $(call gb_PythonTest_add_modules,sw_python,$(SRCDIR)/sw/qa/python,\ $(eval $(call gb_PythonTest_add_modules,sw_python,$(SRCDIR)/sw/qa/python,\
check_index \
get_expression \ get_expression \
set_expression \ set_expression \
var_fields \ var_fields \
......
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()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment