diff options
author | Vasily Melenchuk <vasily.melenchuk@cib.de> | 2018-09-28 13:53:46 +0300 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2018-11-23 00:09:57 +0100 |
commit | 19923ea1d1608044e101b1875b47f6d4fbccf2d7 (patch) | |
tree | a11190810404f8e2ec84974905d0ff3b0c681506 /sw | |
parent | ba85d48c0384610829f6b0cfddd944da3cffeed7 (diff) |
sw: new unit test for XTextCursor
Change-Id: I5b70f6dc8f7399be78daefa95d6d98687d99ec18
Reviewed-on: https://gerrit.libreoffice.org/61098
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/PythonTest_sw_python.mk | 1 | ||||
-rw-r--r-- | sw/qa/python/testdocuments/xtextcursor.odt | bin | 0 -> 11003 bytes | |||
-rw-r--r-- | sw/qa/python/xtextcursor.py | 107 |
3 files changed, 108 insertions, 0 deletions
diff --git a/sw/PythonTest_sw_python.mk b/sw/PythonTest_sw_python.mk index ad479f527504..4f97724d835c 100644 --- a/sw/PythonTest_sw_python.mk +++ b/sw/PythonTest_sw_python.mk @@ -42,6 +42,7 @@ $(eval $(call gb_PythonTest_add_modules,sw_python,$(SRCDIR)/sw/qa/python,\ xtextcontent \ xtextrange \ xtext \ + xtextcursor \ )) # vim: set noet sw=4 ts=4: diff --git a/sw/qa/python/testdocuments/xtextcursor.odt b/sw/qa/python/testdocuments/xtextcursor.odt Binary files differnew file mode 100644 index 000000000000..1fdcfb9b77f9 --- /dev/null +++ b/sw/qa/python/testdocuments/xtextcursor.odt diff --git a/sw/qa/python/xtextcursor.py b/sw/qa/python/xtextcursor.py new file mode 100644 index 000000000000..30d0518690a7 --- /dev/null +++ b/sw/qa/python/xtextcursor.py @@ -0,0 +1,107 @@ +#! /usr/bin/env python +# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +import unittest +import unohelper +from org.libreoffice.unotest import UnoInProcess +import uno +import time + + +class TestXTextCursor(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls._uno = UnoInProcess() + cls._uno.setUp() + cls._uno.openDocFromTDOC("xtextcursor.odt") + + @classmethod + def tearDownClass(cls): + cls._uno.tearDown() + + def createTextCursorInFrame(self, frameName): + xTextFrames = self._uno.getDoc().getTextFrames() + self.assertIsNotNone(xTextFrames) + xTextFrame = xTextFrames[frameName] + self.assertIsNotNone(xTextFrame) + xCursor = xTextFrame.getText().createTextCursor() + self.assertIsNotNone(xCursor) + return xCursor + + def test_cursorMoveInText(self): + # Create cursor in frame with simple text (to avoid moving beyond) + xCursor = self.createTextCursorInFrame("FrameSimple") + + xCursor.collapseToStart() + self.assertTrue(xCursor.isCollapsed()) + self.assertTrue(xCursor.goRight(1, True)) + self.assertFalse(xCursor.isCollapsed()) + # Try to move right 10 characters, but we really can just 3, so partial move + self.assertFalse(xCursor.goRight(10, True)) + self.assertFalse(xCursor.isCollapsed()) + # Ensure that all line text is selected + self.assertEqual(xCursor.getString(), "1234") + + self.assertFalse(xCursor.goRight(-10, True)) + self.assertEqual(xCursor.getString(), "1234") + + xCursor.collapseToEnd() + self.assertTrue(xCursor.isCollapsed()) + self.assertTrue(xCursor.goLeft(2, True)) + self.assertFalse(xCursor.isCollapsed()) + self.assertEqual(xCursor.getString(), "34") + + # Move to start without selection + self.assertTrue(xCursor.goLeft(2, False)) + self.assertEqual(xCursor.getString(), "") + + self.assertTrue(xCursor.isCollapsed()) + + # Select all text + xCursor.gotoStart(False) + self.assertTrue(xCursor.isCollapsed()) + xCursor.gotoEnd(True) + self.assertFalse(xCursor.isCollapsed()) + self.assertEqual(xCursor.getString(), "1234") + + # Select all text from behind + xCursor.gotoEnd(False) + self.assertTrue(xCursor.isCollapsed()) + xCursor.gotoStart(True) + self.assertFalse(xCursor.isCollapsed()) + self.assertEqual(xCursor.getString(), "1234") + + # Select all text, alternative way via gotoRange + xCursor2 = self.createTextCursorInFrame("FrameSimple") + xCursor2.gotoEnd(False) + xCursor2.gotoStart(True) + xCursor.gotoEnd(False) + self.assertTrue(xCursor.isCollapsed()) + xCursor.gotoRange(xCursor2, True) + self.assertFalse(xCursor.isCollapsed()) + self.assertEqual(xCursor.getString(), "1234") + + def test_cursorMoveInTable(self): + # Create cursor in frame with table + xCursor = self.createTextCursorInFrame("FrameTable") + + # Nothing is selected + xCursor.collapseToEnd() + self.assertTrue(xCursor.isCollapsed()) + self.assertEqual(xCursor.getString(), "") + self.assertFalse(xCursor.goLeft(1, False)) + self.assertFalse(xCursor.goLeft(1, True)) + self.assertEqual(xCursor.getString(), "") + + +if __name__ == '__main__': + unittest.main() + +# vim: set shiftwidth=4 softtabstop=4 expandtab: |