2 # -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
4 # This file is part of the LibreOffice project.
6 # This Source Code Form is subject to the terms of the Mozilla Public
7 # License, v. 2.0. If a copy of the MPL was not distributed with this
8 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
11 from org
.libreoffice
.unotest
import UnoInProcess
12 from com
.sun
.star
.lang
import IllegalArgumentException
15 class XTextRangeCompare(unittest
.TestCase
):
19 cls
._uno
= UnoInProcess()
23 def tearDownClass(cls
):
26 def test_compareRegionStarts(self
):
27 xDoc
= self
._uno
.openEmptyWriterDoc()
29 cursor
= xDoc
.Text
.createTextCursor()
30 xDoc
.Text
.insertString(cursor
, "The first paragraph", 0)
32 self
.assertEqual(0, xDoc
.Text
.compareRegionStarts(cursor
, cursor
))
34 with self
.assertRaises(IllegalArgumentException
):
35 xDoc
.Text
.compareRegionStarts(cursor
, None)
37 with self
.assertRaises(IllegalArgumentException
):
38 xDoc
.Text
.compareRegionStarts(None, cursor
)
40 with self
.assertRaises(IllegalArgumentException
):
41 xDoc
.Text
.compareRegionStarts(None, None)
45 def test_compareRegionEnds(self
):
46 xDoc
= self
._uno
.openEmptyWriterDoc()
48 cursor
= xDoc
.Text
.createTextCursor()
49 xDoc
.Text
.insertString(cursor
, "The first paragraph", 0)
51 self
.assertEqual(0, xDoc
.Text
.compareRegionEnds(cursor
, cursor
))
53 with self
.assertRaises(IllegalArgumentException
):
54 xDoc
.Text
.compareRegionEnds(cursor
, None)
56 with self
.assertRaises(IllegalArgumentException
):
57 xDoc
.Text
.compareRegionEnds(None, cursor
)
59 with self
.assertRaises(IllegalArgumentException
):
60 xDoc
.Text
.compareRegionEnds(None, None)
64 def test_compareRegionStarts_Different(self
):
65 xDoc
= self
._uno
.openEmptyWriterDoc()
67 cursor1
= xDoc
.Text
.createTextCursor()
68 cursor2
= xDoc
.Text
.createTextCursor()
70 xDoc
.Text
.insertString(cursor1
, "The first paragraph", 0)
72 cursor1
.gotoStart(False)
73 cursor2
.gotoEnd(False)
75 self
.assertTrue(cursor1
.isCollapsed())
76 self
.assertTrue(cursor1
.isCollapsed())
78 self
.assertEqual(1, xDoc
.Text
.compareRegionStarts(cursor1
, cursor2
))
79 self
.assertEqual(-1, xDoc
.Text
.compareRegionStarts(cursor2
, cursor1
))
83 def test_compareRegionStarts_DiffSelection(self
):
84 xDoc
= self
._uno
.openEmptyWriterDoc()
86 cursor1
= xDoc
.Text
.createTextCursor()
87 cursor2
= xDoc
.Text
.createTextCursor()
89 xDoc
.Text
.insertString(cursor1
, "The first paragraph", 0)
91 cursor1
.gotoStart(False)
93 cursor2
.gotoEnd(False)
94 cursor2
.gotoStart(True)
96 self
.assertFalse(cursor1
.isCollapsed())
97 self
.assertFalse(cursor1
.isCollapsed())
99 self
.assertEqual(0, xDoc
.Text
.compareRegionStarts(cursor1
, cursor2
))
100 self
.assertEqual(0, xDoc
.Text
.compareRegionEnds(cursor1
, cursor2
))
104 def test_compareRegionStarts_DiffSelection(self
):
105 xDoc
= self
._uno
.openEmptyWriterDoc()
107 cursor1
= xDoc
.Text
.createTextCursor()
108 cursor2
= xDoc
.Text
.createTextCursor()
110 xDoc
.Text
.insertString(cursor1
, "The first paragraph", 0)
112 cursor1
.gotoStart(False)
113 cursor1
.gotoEnd(True)
114 cursor1
.goLeft(2, True)
115 cursor2
.gotoEnd(False)
116 cursor2
.gotoStart(True)
117 cursor2
.goRight(2, True)
119 self
.assertFalse(cursor1
.isCollapsed())
120 self
.assertFalse(cursor1
.isCollapsed())
122 # whole text: 123456789
126 self
.assertEqual(1, xDoc
.Text
.compareRegionStarts(cursor1
, cursor2
))
127 self
.assertEqual(1, xDoc
.Text
.compareRegionEnds(cursor1
, cursor2
))
129 self
.assertEqual(-1, xDoc
.Text
.compareRegionStarts(cursor2
, cursor1
))
130 self
.assertEqual(-1, xDoc
.Text
.compareRegionEnds(cursor2
, cursor1
))
134 def test_compareRegionStarts_SameStart(self
):
135 xDoc
= self
._uno
.openEmptyWriterDoc()
137 cursor1
= xDoc
.Text
.createTextCursor()
138 cursor2
= xDoc
.Text
.createTextCursor()
140 xDoc
.Text
.insertString(cursor1
, "The first paragraph", 0)
142 cursor1
.gotoStart(False)
143 cursor1
.goRight(2, False)
144 cursor1
.goRight(5, True)
146 cursor2
.gotoStart(False)
147 cursor2
.goRight(2, False)
148 cursor2
.goRight(7, True)
150 self
.assertFalse(cursor1
.isCollapsed())
151 self
.assertFalse(cursor1
.isCollapsed())
153 # whole text: 123456789
157 self
.assertEqual(0, xDoc
.Text
.compareRegionStarts(cursor1
, cursor2
))
158 self
.assertEqual(0, xDoc
.Text
.compareRegionStarts(cursor2
, cursor1
))
160 self
.assertEqual(1, xDoc
.Text
.compareRegionEnds(cursor1
, cursor2
))
161 self
.assertEqual(-1, xDoc
.Text
.compareRegionEnds(cursor2
, cursor1
))
166 if __name__
== '__main__':
169 # vim: set shiftwidth=4 softtabstop=4 expandtab: