1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski package complex.toolkit.accessibility;
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski import com.sun.star.accessibility.XAccessibleText;
27*b1cdbd2cSJim Jagielski // import lib.MultiMethodTest;
28*b1cdbd2cSJim Jagielski //import lib.StatusException;
29*b1cdbd2cSJim Jagielski //import lib.Status;
30*b1cdbd2cSJim Jagielski import com.sun.star.beans.PropertyValue;
31*b1cdbd2cSJim Jagielski import com.sun.star.awt.Rectangle;
32*b1cdbd2cSJim Jagielski import com.sun.star.awt.Point;
33*b1cdbd2cSJim Jagielski import com.sun.star.lang.XMultiServiceFactory;
34*b1cdbd2cSJim Jagielski import com.sun.star.accessibility.AccessibleTextType;
35*b1cdbd2cSJim Jagielski import com.sun.star.accessibility.TextSegment;
36*b1cdbd2cSJim Jagielski import com.sun.star.uno.XInterface;
37*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime;
38*b1cdbd2cSJim Jagielski // import share.LogWriter;
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski /**
41*b1cdbd2cSJim Jagielski  * Testing <code>com.sun.star.accessibility.XAccessibleText</code>
42*b1cdbd2cSJim Jagielski  * interface methods :
43*b1cdbd2cSJim Jagielski  * <ul>
44*b1cdbd2cSJim Jagielski  *  <li><code> getCaretPosition()</code></li>
45*b1cdbd2cSJim Jagielski  *  <li><code> setCaretPosition()</code></li>
46*b1cdbd2cSJim Jagielski  *  <li><code> getCharacter()</code></li>
47*b1cdbd2cSJim Jagielski  *  <li><code> getCharacterAttributes()</code></li>
48*b1cdbd2cSJim Jagielski  *  <li><code> getCharacterBounds()</code></li>
49*b1cdbd2cSJim Jagielski  *  <li><code> getCharacterCount()</code></li>
50*b1cdbd2cSJim Jagielski  *  <li><code> getIndexAtPoint()</code></li>
51*b1cdbd2cSJim Jagielski  *  <li><code> getSelectedText()</code></li>
52*b1cdbd2cSJim Jagielski  *  <li><code> getSelectionStart()</code></li>
53*b1cdbd2cSJim Jagielski  *  <li><code> getSelectionEnd()</code></li>
54*b1cdbd2cSJim Jagielski  *  <li><code> setSelection()</code></li>
55*b1cdbd2cSJim Jagielski  *  <li><code> getText()</code></li>
56*b1cdbd2cSJim Jagielski  *  <li><code> getTextRange()</code></li>
57*b1cdbd2cSJim Jagielski  *  <li><code> getTextAtIndex()</code></li>
58*b1cdbd2cSJim Jagielski  *  <li><code> getTextBeforeIndex()</code></li>
59*b1cdbd2cSJim Jagielski  *  <li><code> getTextBehindIndex()</code></li>
60*b1cdbd2cSJim Jagielski  *  <li><code> copyText()</code></li>
61*b1cdbd2cSJim Jagielski  * </ul> <p>
62*b1cdbd2cSJim Jagielski  * This test needs the following object relations :
63*b1cdbd2cSJim Jagielski  * <ul>
64*b1cdbd2cSJim Jagielski  *  <li> <code>'XAccessibleText.Text'</code> (of type <code>String</code>)
65*b1cdbd2cSJim Jagielski  *   <b> optional </b> :
66*b1cdbd2cSJim Jagielski  *   the string presentation of component's text. If the relation
67*b1cdbd2cSJim Jagielski  *   is not specified, then text from method <code>getText()</code>
68*b1cdbd2cSJim Jagielski  *   is used.
69*b1cdbd2cSJim Jagielski  *  </li>
70*b1cdbd2cSJim Jagielski  *  </ul> <p>
71*b1cdbd2cSJim Jagielski  * @see com.sun.star.accessibility.XAccessibleText
72*b1cdbd2cSJim Jagielski  */
73*b1cdbd2cSJim Jagielski public class _XAccessibleText {
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski     // private LogWriter log;
76*b1cdbd2cSJim Jagielski 
77*b1cdbd2cSJim Jagielski     private static final String className =
78*b1cdbd2cSJim Jagielski         "com.sun.star.accessibility.XAccessibleText" ;
79*b1cdbd2cSJim Jagielski 
80*b1cdbd2cSJim Jagielski     public XAccessibleText oObj = null;
81*b1cdbd2cSJim Jagielski     private XMultiServiceFactory xMSF;
82*b1cdbd2cSJim Jagielski 
83*b1cdbd2cSJim Jagielski     Rectangle chBounds = null;
84*b1cdbd2cSJim Jagielski     int chCount = 0;
85*b1cdbd2cSJim Jagielski 
86*b1cdbd2cSJim Jagielski     String text = null;
87*b1cdbd2cSJim Jagielski     String editOnly = null;
88*b1cdbd2cSJim Jagielski 
89*b1cdbd2cSJim Jagielski 
_XAccessibleText(XInterface object, XMultiServiceFactory xMSF, String editOnly)90*b1cdbd2cSJim Jagielski     public _XAccessibleText(XInterface object, XMultiServiceFactory xMSF, String editOnly) {
91*b1cdbd2cSJim Jagielski         oObj = UnoRuntime.queryInterface(XAccessibleText.class, object);
92*b1cdbd2cSJim Jagielski         this.xMSF = xMSF;
93*b1cdbd2cSJim Jagielski         // this.log = log;
94*b1cdbd2cSJim Jagielski         this.editOnly = editOnly;
95*b1cdbd2cSJim Jagielski     }
96*b1cdbd2cSJim Jagielski 
97*b1cdbd2cSJim Jagielski 
98*b1cdbd2cSJim Jagielski     /**
99*b1cdbd2cSJim Jagielski      * Calls the method and checks returned value.
100*b1cdbd2cSJim Jagielski      * Has OK status if returned value is equal to <code>chCount - 1</code>.
101*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
102*b1cdbd2cSJim Jagielski      * <ul>
103*b1cdbd2cSJim Jagielski      *  <li> <code>setCaretPosition()</code> </li>
104*b1cdbd2cSJim Jagielski      * </ul>
105*b1cdbd2cSJim Jagielski      * @return
106*b1cdbd2cSJim Jagielski      */
_getCaretPosition()107*b1cdbd2cSJim Jagielski     public boolean _getCaretPosition() {
108*b1cdbd2cSJim Jagielski 
109*b1cdbd2cSJim Jagielski         if (editOnly != null) {
110*b1cdbd2cSJim Jagielski             System.out.println(editOnly);
111*b1cdbd2cSJim Jagielski             return true;
112*b1cdbd2cSJim Jagielski         }
113*b1cdbd2cSJim Jagielski 
114*b1cdbd2cSJim Jagielski         boolean res = true;
115*b1cdbd2cSJim Jagielski         if ( chCount > 0 ) {
116*b1cdbd2cSJim Jagielski             try {
117*b1cdbd2cSJim Jagielski                 oObj.setCaretPosition(chCount - 1);
118*b1cdbd2cSJim Jagielski             } catch (com.sun.star.lang.IndexOutOfBoundsException ie) {
119*b1cdbd2cSJim Jagielski 
120*b1cdbd2cSJim Jagielski             }
121*b1cdbd2cSJim Jagielski             int carPos = oObj.getCaretPosition();
122*b1cdbd2cSJim Jagielski             System.out.println("getCaretPosition: " + carPos);
123*b1cdbd2cSJim Jagielski             res = carPos == (chCount - 1);
124*b1cdbd2cSJim Jagielski         }
125*b1cdbd2cSJim Jagielski         return res;
126*b1cdbd2cSJim Jagielski     }
127*b1cdbd2cSJim Jagielski 
128*b1cdbd2cSJim Jagielski     /**
129*b1cdbd2cSJim Jagielski      * Calls the method with the wrong index and with the correct index
130*b1cdbd2cSJim Jagielski      * <code>chCount - 1</code>.
131*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for wrong index and
132*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for the correct index.
133*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
134*b1cdbd2cSJim Jagielski      * <ul>
135*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterCount()</code> </li>
136*b1cdbd2cSJim Jagielski      * </ul>
137*b1cdbd2cSJim Jagielski      * @return
138*b1cdbd2cSJim Jagielski      */
_setCaretPosition()139*b1cdbd2cSJim Jagielski     public boolean _setCaretPosition() {
140*b1cdbd2cSJim Jagielski         boolean res = true;
141*b1cdbd2cSJim Jagielski 
142*b1cdbd2cSJim Jagielski         try {
143*b1cdbd2cSJim Jagielski             System.out.println("setCaretPosition(-1):");
144*b1cdbd2cSJim Jagielski             oObj.setCaretPosition(-1);
145*b1cdbd2cSJim Jagielski             res &= false;
146*b1cdbd2cSJim Jagielski             System.out.println("exception was expected");
147*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
148*b1cdbd2cSJim Jagielski             System.out.println("expected exception");
149*b1cdbd2cSJim Jagielski             res &= true;
150*b1cdbd2cSJim Jagielski         }
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski         try {
153*b1cdbd2cSJim Jagielski             System.out.println("setCaretPosition(chCount+1):");
154*b1cdbd2cSJim Jagielski             oObj.setCaretPosition(chCount+1);
155*b1cdbd2cSJim Jagielski             res &= false;
156*b1cdbd2cSJim Jagielski             System.out.println("exception was expected");
157*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
158*b1cdbd2cSJim Jagielski             System.out.println("expected exception");
159*b1cdbd2cSJim Jagielski             res &= true;
160*b1cdbd2cSJim Jagielski         }
161*b1cdbd2cSJim Jagielski         if ( chCount > 0 ) {
162*b1cdbd2cSJim Jagielski             try {
163*b1cdbd2cSJim Jagielski                 System.out.println("setCaretPosition(chCount - 1)");
164*b1cdbd2cSJim Jagielski                 oObj.setCaretPosition(chCount - 1);
165*b1cdbd2cSJim Jagielski                 res &= true;
166*b1cdbd2cSJim Jagielski             } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
167*b1cdbd2cSJim Jagielski                 System.out.println("unexpected exception");
168*b1cdbd2cSJim Jagielski                 e.printStackTrace();
169*b1cdbd2cSJim Jagielski                 res &= false;
170*b1cdbd2cSJim Jagielski             }
171*b1cdbd2cSJim Jagielski         }
172*b1cdbd2cSJim Jagielski 
173*b1cdbd2cSJim Jagielski         return res;
174*b1cdbd2cSJim Jagielski     }
175*b1cdbd2cSJim Jagielski 
176*b1cdbd2cSJim Jagielski     /**
177*b1cdbd2cSJim Jagielski      * Calls the method with the wrong index and with the correct indexes.
178*b1cdbd2cSJim Jagielski      * Checks every character in the text.
179*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for wrong index,
180*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for the correct index and
181*b1cdbd2cSJim Jagielski      * if every character is equal to corresponding character in the text.
182*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
183*b1cdbd2cSJim Jagielski      * <ul>
184*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterCount()</code> </li>
185*b1cdbd2cSJim Jagielski      * </ul>
186*b1cdbd2cSJim Jagielski      * @return
187*b1cdbd2cSJim Jagielski      */
_getCharacter()188*b1cdbd2cSJim Jagielski     public boolean _getCharacter() {
189*b1cdbd2cSJim Jagielski         boolean res = true;
190*b1cdbd2cSJim Jagielski 
191*b1cdbd2cSJim Jagielski         try {
192*b1cdbd2cSJim Jagielski             System.out.println("getCharacter(-1)");
193*b1cdbd2cSJim Jagielski             oObj.getCharacter(-1);
194*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
195*b1cdbd2cSJim Jagielski             res = false;
196*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
197*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
198*b1cdbd2cSJim Jagielski             res = true;
199*b1cdbd2cSJim Jagielski         }
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski         try {
202*b1cdbd2cSJim Jagielski             System.out.println("getCharacter(chCount)");
203*b1cdbd2cSJim Jagielski             oObj.getCharacter(chCount);
204*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
205*b1cdbd2cSJim Jagielski             res &= false;
206*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
207*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
208*b1cdbd2cSJim Jagielski             res &= true;
209*b1cdbd2cSJim Jagielski         }
210*b1cdbd2cSJim Jagielski 
211*b1cdbd2cSJim Jagielski         try {
212*b1cdbd2cSJim Jagielski             System.out.println("Checking of every character in the text...");
213*b1cdbd2cSJim Jagielski             boolean isEqCh = true;
214*b1cdbd2cSJim Jagielski             for(int i = 0; i < chCount; i++) {
215*b1cdbd2cSJim Jagielski                 char ch = oObj.getCharacter(i);
216*b1cdbd2cSJim Jagielski                 isEqCh = ch == text.charAt(i);
217*b1cdbd2cSJim Jagielski                 res &= isEqCh;
218*b1cdbd2cSJim Jagielski                 if (!isEqCh) {
219*b1cdbd2cSJim Jagielski                     System.out.println("At the position " + i +
220*b1cdbd2cSJim Jagielski                         "was expected character: " + text.charAt(i));
221*b1cdbd2cSJim Jagielski                     System.out.println("but was returned: " + ch);
222*b1cdbd2cSJim Jagielski                     break;
223*b1cdbd2cSJim Jagielski                 }
224*b1cdbd2cSJim Jagielski             }
225*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
226*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
227*b1cdbd2cSJim Jagielski             e.printStackTrace();
228*b1cdbd2cSJim Jagielski             res &= false;
229*b1cdbd2cSJim Jagielski         }
230*b1cdbd2cSJim Jagielski 
231*b1cdbd2cSJim Jagielski         return res;
232*b1cdbd2cSJim Jagielski     }
233*b1cdbd2cSJim Jagielski 
234*b1cdbd2cSJim Jagielski     /**
235*b1cdbd2cSJim Jagielski      * Calls the method with the wrong indexes and with the correct index,
236*b1cdbd2cSJim Jagielski      * checks a returned value.
237*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for the wrong indexes,
238*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for the correct index and
239*b1cdbd2cSJim Jagielski      * if returned value isn't <code>null</code>.
240*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
241*b1cdbd2cSJim Jagielski      * <ul>
242*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterCount()</code> </li>
243*b1cdbd2cSJim Jagielski      * </ul>
244*b1cdbd2cSJim Jagielski      * @return
245*b1cdbd2cSJim Jagielski      */
_getCharacterAttributes()246*b1cdbd2cSJim Jagielski     public boolean _getCharacterAttributes() {
247*b1cdbd2cSJim Jagielski         boolean res = true;
248*b1cdbd2cSJim Jagielski 
249*b1cdbd2cSJim Jagielski         try {
250*b1cdbd2cSJim Jagielski             System.out.println("getCharacterAttributes(-1)");
251*b1cdbd2cSJim Jagielski             oObj.getCharacterAttributes(-1, new String[0]);
252*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
253*b1cdbd2cSJim Jagielski             res &= false;
254*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
255*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
256*b1cdbd2cSJim Jagielski             res &= true;
257*b1cdbd2cSJim Jagielski         }
258*b1cdbd2cSJim Jagielski 
259*b1cdbd2cSJim Jagielski         try {
260*b1cdbd2cSJim Jagielski             System.out.println("getCharacterAttributes(chCount)");
261*b1cdbd2cSJim Jagielski             oObj.getCharacterAttributes(chCount, new String[0]);
262*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
263*b1cdbd2cSJim Jagielski             res &= false;
264*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
265*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
266*b1cdbd2cSJim Jagielski             res &= true;
267*b1cdbd2cSJim Jagielski         }
268*b1cdbd2cSJim Jagielski 
269*b1cdbd2cSJim Jagielski         try {
270*b1cdbd2cSJim Jagielski             if ( chCount > 0 ) {
271*b1cdbd2cSJim Jagielski                 System.out.println("getCharacterAttributes(chCount-1)");
272*b1cdbd2cSJim Jagielski                 PropertyValue[] props = oObj.getCharacterAttributes(chCount - 1, new String[0]);
273*b1cdbd2cSJim Jagielski                 res &= props != null;
274*b1cdbd2cSJim Jagielski             }
275*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
276*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
277*b1cdbd2cSJim Jagielski             e.printStackTrace();
278*b1cdbd2cSJim Jagielski             res &= false;
279*b1cdbd2cSJim Jagielski         }
280*b1cdbd2cSJim Jagielski 
281*b1cdbd2cSJim Jagielski         return res;
282*b1cdbd2cSJim Jagielski     }
283*b1cdbd2cSJim Jagielski 
284*b1cdbd2cSJim Jagielski 
285*b1cdbd2cSJim Jagielski     /**
286*b1cdbd2cSJim Jagielski      * Calls the method with the wrong indexes and with the correct index.
287*b1cdbd2cSJim Jagielski      * checks and stores a returned value.
288*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for the wrong indexes,
289*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for the correct index and
290*b1cdbd2cSJim Jagielski      * if returned value isn't <code>null</code>.
291*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
292*b1cdbd2cSJim Jagielski      * <ul>
293*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterCount()</code> </li>
294*b1cdbd2cSJim Jagielski      * </ul>
295*b1cdbd2cSJim Jagielski      * @return
296*b1cdbd2cSJim Jagielski      */
_getCharacterBounds()297*b1cdbd2cSJim Jagielski     public boolean _getCharacterBounds() {
298*b1cdbd2cSJim Jagielski         boolean res = true;
299*b1cdbd2cSJim Jagielski 
300*b1cdbd2cSJim Jagielski         try {
301*b1cdbd2cSJim Jagielski             System.out.println("getCharacterBounds(-1)");
302*b1cdbd2cSJim Jagielski             oObj.getCharacterBounds(-1);
303*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
304*b1cdbd2cSJim Jagielski             res &= false;
305*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
306*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
307*b1cdbd2cSJim Jagielski             res &= true;
308*b1cdbd2cSJim Jagielski         }
309*b1cdbd2cSJim Jagielski 
310*b1cdbd2cSJim Jagielski         try {
311*b1cdbd2cSJim Jagielski             System.out.println("getCharacterBounds(chCount)");
312*b1cdbd2cSJim Jagielski             oObj.getCharacterBounds(chCount);
313*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
314*b1cdbd2cSJim Jagielski             res &= false;
315*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
316*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
317*b1cdbd2cSJim Jagielski             res &= true;
318*b1cdbd2cSJim Jagielski         }
319*b1cdbd2cSJim Jagielski 
320*b1cdbd2cSJim Jagielski         try {
321*b1cdbd2cSJim Jagielski             if (chCount > 0) {
322*b1cdbd2cSJim Jagielski                 System.out.println("getCharacterBounds(chCount-1)");
323*b1cdbd2cSJim Jagielski             	chBounds = oObj.getCharacterBounds(chCount-1);
324*b1cdbd2cSJim Jagielski             	res &= chBounds != null;
325*b1cdbd2cSJim Jagielski             	System.out.println("rect: " + chBounds.X + ", " + chBounds.Y + ", " +
326*b1cdbd2cSJim Jagielski                 	chBounds.Width + ", " + chBounds.Height);
327*b1cdbd2cSJim Jagielski             }
328*b1cdbd2cSJim Jagielski 
329*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
330*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
331*b1cdbd2cSJim Jagielski             e.printStackTrace();
332*b1cdbd2cSJim Jagielski             res &= false;
333*b1cdbd2cSJim Jagielski         }
334*b1cdbd2cSJim Jagielski 
335*b1cdbd2cSJim Jagielski         return res;
336*b1cdbd2cSJim Jagielski     }
337*b1cdbd2cSJim Jagielski 
338*b1cdbd2cSJim Jagielski 
339*b1cdbd2cSJim Jagielski     /**
340*b1cdbd2cSJim Jagielski      * Calls the method and stores a returned value to the variable
341*b1cdbd2cSJim Jagielski      * <code>chCount</code>.
342*b1cdbd2cSJim Jagielski      * Has OK status if a returned value is equal to the text length.
343*b1cdbd2cSJim Jagielski      * @return
344*b1cdbd2cSJim Jagielski      */
_getCharacterCount()345*b1cdbd2cSJim Jagielski     public boolean _getCharacterCount() {
346*b1cdbd2cSJim Jagielski         chCount = oObj.getCharacterCount();
347*b1cdbd2cSJim Jagielski         System.out.println("Character count:" + chCount);
348*b1cdbd2cSJim Jagielski         boolean res = chCount == text.length();
349*b1cdbd2cSJim Jagielski         return res;
350*b1cdbd2cSJim Jagielski     }
351*b1cdbd2cSJim Jagielski 
352*b1cdbd2cSJim Jagielski     /**
353*b1cdbd2cSJim Jagielski      * Calls the method for an invalid point and for the point of rectangle
354*b1cdbd2cSJim Jagielski      * returned by the method <code>getCharacterBounds()</code>.
355*b1cdbd2cSJim Jagielski      * Has OK status if returned value is equal to <code>-1</code> for an
356*b1cdbd2cSJim Jagielski      * invalid point and if returned value is equal to <code>chCount-1</code>
357*b1cdbd2cSJim Jagielski      * for a valid point.
358*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
359*b1cdbd2cSJim Jagielski      * <ul>
360*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterBounds()</code> </li>
361*b1cdbd2cSJim Jagielski      * </ul>
362*b1cdbd2cSJim Jagielski      * @return
363*b1cdbd2cSJim Jagielski      */
_getIndexAtPoint()364*b1cdbd2cSJim Jagielski     public boolean _getIndexAtPoint() {
365*b1cdbd2cSJim Jagielski 
366*b1cdbd2cSJim Jagielski         boolean res = true;
367*b1cdbd2cSJim Jagielski         System.out.println("getIndexAtPoint(-1, -1):");
368*b1cdbd2cSJim Jagielski         Point pt = new Point(-1, -1);
369*b1cdbd2cSJim Jagielski         int index = oObj.getIndexAtPoint(pt);
370*b1cdbd2cSJim Jagielski         System.out.println(Integer.toString(index));
371*b1cdbd2cSJim Jagielski         res &= index == -1;
372*b1cdbd2cSJim Jagielski 
373*b1cdbd2cSJim Jagielski         if (chBounds != null) {
374*b1cdbd2cSJim Jagielski             pt = new Point(chBounds.X , chBounds.Y );
375*b1cdbd2cSJim Jagielski         	System.out.println("getIndexAtPoint(" + pt.X + ", " + pt.Y + "):");
376*b1cdbd2cSJim Jagielski         	index = oObj.getIndexAtPoint(pt);
377*b1cdbd2cSJim Jagielski         	System.out.println(Integer.toString(index));
378*b1cdbd2cSJim Jagielski         	res &= index == (chCount - 1);
379*b1cdbd2cSJim Jagielski 		}
380*b1cdbd2cSJim Jagielski 
381*b1cdbd2cSJim Jagielski         return res;
382*b1cdbd2cSJim Jagielski     }
383*b1cdbd2cSJim Jagielski 
384*b1cdbd2cSJim Jagielski     /**
385*b1cdbd2cSJim Jagielski      * Checks a returned values after different calls of the method
386*b1cdbd2cSJim Jagielski      * <code>setSelection()</code>.
387*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
388*b1cdbd2cSJim Jagielski      * <ul>
389*b1cdbd2cSJim Jagielski      *  <li> <code>setSelection()</code> </li>
390*b1cdbd2cSJim Jagielski      * </ul>
391*b1cdbd2cSJim Jagielski      * @return
392*b1cdbd2cSJim Jagielski      */
_getSelectedText()393*b1cdbd2cSJim Jagielski     public boolean _getSelectedText() {
394*b1cdbd2cSJim Jagielski         if (editOnly != null) {
395*b1cdbd2cSJim Jagielski             System.out.println(editOnly);
396*b1cdbd2cSJim Jagielski             return true;
397*b1cdbd2cSJim Jagielski         }
398*b1cdbd2cSJim Jagielski 
399*b1cdbd2cSJim Jagielski         boolean res = true;
400*b1cdbd2cSJim Jagielski 
401*b1cdbd2cSJim Jagielski         try {
402*b1cdbd2cSJim Jagielski             System.out.println("setSelection(0, 0)");
403*b1cdbd2cSJim Jagielski             oObj.setSelection(0, 0);
404*b1cdbd2cSJim Jagielski             System.out.println("getSelectedText():");
405*b1cdbd2cSJim Jagielski             String txt = oObj.getSelectedText();
406*b1cdbd2cSJim Jagielski             System.out.println("'" + txt + "'");
407*b1cdbd2cSJim Jagielski             res &= txt.length() == 0;
408*b1cdbd2cSJim Jagielski 
409*b1cdbd2cSJim Jagielski             System.out.println("setSelection(0, chCount)");
410*b1cdbd2cSJim Jagielski             oObj.setSelection(0, chCount);
411*b1cdbd2cSJim Jagielski             System.out.println("getSelectedText():");
412*b1cdbd2cSJim Jagielski             txt = oObj.getSelectedText();
413*b1cdbd2cSJim Jagielski             System.out.println("'" + txt + "'");
414*b1cdbd2cSJim Jagielski             res &= txt.equals(text);
415*b1cdbd2cSJim Jagielski 
416*b1cdbd2cSJim Jagielski             if (chCount > 2) {
417*b1cdbd2cSJim Jagielski                 System.out.println("setSelection(1, chCount-1)");
418*b1cdbd2cSJim Jagielski                 oObj.setSelection(1, chCount - 1);
419*b1cdbd2cSJim Jagielski                 System.out.println("getSelectedText():");
420*b1cdbd2cSJim Jagielski                 txt = oObj.getSelectedText();
421*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt + "'");
422*b1cdbd2cSJim Jagielski                 res &= txt.equals(text.substring(1, chCount - 1));
423*b1cdbd2cSJim Jagielski             }
424*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
425*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
426*b1cdbd2cSJim Jagielski             e.printStackTrace();
427*b1cdbd2cSJim Jagielski             res &= false;
428*b1cdbd2cSJim Jagielski         }
429*b1cdbd2cSJim Jagielski 
430*b1cdbd2cSJim Jagielski         return res;
431*b1cdbd2cSJim Jagielski     }
432*b1cdbd2cSJim Jagielski 
433*b1cdbd2cSJim Jagielski     /**
434*b1cdbd2cSJim Jagielski      * Checks a returned values after different calls of the method
435*b1cdbd2cSJim Jagielski      * <code>setSelection()</code>.
436*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
437*b1cdbd2cSJim Jagielski      * <ul>
438*b1cdbd2cSJim Jagielski      *  <li> <code>setSelection()</code> </li>
439*b1cdbd2cSJim Jagielski      * </ul>
440*b1cdbd2cSJim Jagielski      * @return
441*b1cdbd2cSJim Jagielski      */
_getSelectionStart()442*b1cdbd2cSJim Jagielski     public boolean _getSelectionStart() {
443*b1cdbd2cSJim Jagielski         if (editOnly != null) {
444*b1cdbd2cSJim Jagielski             System.out.println(editOnly);
445*b1cdbd2cSJim Jagielski             return true;
446*b1cdbd2cSJim Jagielski         }
447*b1cdbd2cSJim Jagielski 
448*b1cdbd2cSJim Jagielski         boolean res = true;
449*b1cdbd2cSJim Jagielski 
450*b1cdbd2cSJim Jagielski         try {
451*b1cdbd2cSJim Jagielski             System.out.println("setSelection(0, chCount)");
452*b1cdbd2cSJim Jagielski             oObj.setSelection(0, chCount);
453*b1cdbd2cSJim Jagielski             int start = oObj.getSelectionStart();
454*b1cdbd2cSJim Jagielski             System.out.println("getSelectionStart():" + start);
455*b1cdbd2cSJim Jagielski             res &= start == 0;
456*b1cdbd2cSJim Jagielski 
457*b1cdbd2cSJim Jagielski             if (chCount > 2) {
458*b1cdbd2cSJim Jagielski                 System.out.println("setSelection(1, chCount-1)");
459*b1cdbd2cSJim Jagielski                 oObj.setSelection(1, chCount - 1);
460*b1cdbd2cSJim Jagielski                 start = oObj.getSelectionStart();
461*b1cdbd2cSJim Jagielski                 System.out.println("getSelectionStart():" + start);
462*b1cdbd2cSJim Jagielski                 res &= start == 1;
463*b1cdbd2cSJim Jagielski             }
464*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
465*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
466*b1cdbd2cSJim Jagielski             e.printStackTrace();
467*b1cdbd2cSJim Jagielski             res &= false;
468*b1cdbd2cSJim Jagielski         }
469*b1cdbd2cSJim Jagielski 
470*b1cdbd2cSJim Jagielski         return res;
471*b1cdbd2cSJim Jagielski     }
472*b1cdbd2cSJim Jagielski 
473*b1cdbd2cSJim Jagielski     /**
474*b1cdbd2cSJim Jagielski      * Checks a returned values after different calls of the method
475*b1cdbd2cSJim Jagielski      * <code>setSelection()</code>.
476*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
477*b1cdbd2cSJim Jagielski      * <ul>
478*b1cdbd2cSJim Jagielski      *  <li> <code>setSelection()</code> </li>
479*b1cdbd2cSJim Jagielski      * </ul>
480*b1cdbd2cSJim Jagielski      * @return
481*b1cdbd2cSJim Jagielski      */
_getSelectionEnd()482*b1cdbd2cSJim Jagielski     public boolean _getSelectionEnd() {
483*b1cdbd2cSJim Jagielski         if (editOnly != null) {
484*b1cdbd2cSJim Jagielski             System.out.println(editOnly);
485*b1cdbd2cSJim Jagielski             return true;
486*b1cdbd2cSJim Jagielski         }
487*b1cdbd2cSJim Jagielski 
488*b1cdbd2cSJim Jagielski         boolean res = true;
489*b1cdbd2cSJim Jagielski 
490*b1cdbd2cSJim Jagielski         try {
491*b1cdbd2cSJim Jagielski             System.out.println("setSelection(0, chCount)");
492*b1cdbd2cSJim Jagielski             oObj.setSelection(0, chCount);
493*b1cdbd2cSJim Jagielski             int end = oObj.getSelectionEnd();
494*b1cdbd2cSJim Jagielski             System.out.println("getSelectionEnd():" + end);
495*b1cdbd2cSJim Jagielski             res &= end == chCount;
496*b1cdbd2cSJim Jagielski 
497*b1cdbd2cSJim Jagielski             if (chCount > 2) {
498*b1cdbd2cSJim Jagielski                 System.out.println("setSelection(1, chCount-1)");
499*b1cdbd2cSJim Jagielski                 oObj.setSelection(1, chCount - 1);
500*b1cdbd2cSJim Jagielski                 end = oObj.getSelectionEnd();
501*b1cdbd2cSJim Jagielski                 System.out.println("getSelectionEnd():" + end);
502*b1cdbd2cSJim Jagielski                 res &= end == chCount - 1;
503*b1cdbd2cSJim Jagielski             }
504*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
505*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
506*b1cdbd2cSJim Jagielski             e.printStackTrace();
507*b1cdbd2cSJim Jagielski             res &= false;
508*b1cdbd2cSJim Jagielski         }
509*b1cdbd2cSJim Jagielski 
510*b1cdbd2cSJim Jagielski         return res;
511*b1cdbd2cSJim Jagielski     }
512*b1cdbd2cSJim Jagielski 
513*b1cdbd2cSJim Jagielski     /**
514*b1cdbd2cSJim Jagielski      * Calls the method with invalid parameters an with valid parameters.
515*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for invalid parameters,
516*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for valid parameters.
517*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
518*b1cdbd2cSJim Jagielski      * <ul>
519*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterCount()</code> </li>
520*b1cdbd2cSJim Jagielski      * </ul>
521*b1cdbd2cSJim Jagielski      * @return
522*b1cdbd2cSJim Jagielski      */
_setSelection()523*b1cdbd2cSJim Jagielski     public boolean _setSelection() {
524*b1cdbd2cSJim Jagielski         boolean res = true;
525*b1cdbd2cSJim Jagielski         boolean locRes = true;
526*b1cdbd2cSJim Jagielski 
527*b1cdbd2cSJim Jagielski         if (editOnly != null) {
528*b1cdbd2cSJim Jagielski             System.out.println(editOnly);
529*b1cdbd2cSJim Jagielski             return true;
530*b1cdbd2cSJim Jagielski         }
531*b1cdbd2cSJim Jagielski 
532*b1cdbd2cSJim Jagielski         try {
533*b1cdbd2cSJim Jagielski             System.out.println("setSelection(-1, chCount-1):");
534*b1cdbd2cSJim Jagielski             locRes = oObj.setSelection(-1, chCount - 1);
535*b1cdbd2cSJim Jagielski             System.out.println(locRes + " exception was expected");
536*b1cdbd2cSJim Jagielski             res &= !locRes;
537*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
538*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
539*b1cdbd2cSJim Jagielski             res &= true;
540*b1cdbd2cSJim Jagielski         }
541*b1cdbd2cSJim Jagielski 
542*b1cdbd2cSJim Jagielski         try {
543*b1cdbd2cSJim Jagielski             System.out.println("setSelection(0, chCount+1):");
544*b1cdbd2cSJim Jagielski             locRes = oObj.setSelection(0, chCount + 1);
545*b1cdbd2cSJim Jagielski             System.out.println(locRes + " excepion was expected");
546*b1cdbd2cSJim Jagielski             res &= !locRes;
547*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
548*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
549*b1cdbd2cSJim Jagielski             res &= true;
550*b1cdbd2cSJim Jagielski         }
551*b1cdbd2cSJim Jagielski 
552*b1cdbd2cSJim Jagielski         try {
553*b1cdbd2cSJim Jagielski             if (chCount > 2) {
554*b1cdbd2cSJim Jagielski                 System.out.println("setSelection(1, chCount-1):");
555*b1cdbd2cSJim Jagielski                 locRes = oObj.setSelection(1, chCount - 1);
556*b1cdbd2cSJim Jagielski                 System.out.println(Boolean.toString(locRes));
557*b1cdbd2cSJim Jagielski                 res &= locRes;
558*b1cdbd2cSJim Jagielski 
559*b1cdbd2cSJim Jagielski                 System.out.println("setSelection(chCount-1, 1):");
560*b1cdbd2cSJim Jagielski                 locRes = oObj.setSelection(chCount - 1, 1);
561*b1cdbd2cSJim Jagielski                 System.out.println(Boolean.toString(locRes));
562*b1cdbd2cSJim Jagielski                 res &= locRes;
563*b1cdbd2cSJim Jagielski             }
564*b1cdbd2cSJim Jagielski 
565*b1cdbd2cSJim Jagielski             if (chCount > 1) {
566*b1cdbd2cSJim Jagielski                 System.out.println("setSelection(0, chCount-1):");
567*b1cdbd2cSJim Jagielski                 locRes = oObj.setSelection(0, chCount-1);
568*b1cdbd2cSJim Jagielski                 System.out.println(Boolean.toString(locRes));
569*b1cdbd2cSJim Jagielski                 res &= locRes;
570*b1cdbd2cSJim Jagielski 
571*b1cdbd2cSJim Jagielski                 System.out.println("setSelection(chCount-1, 0):");
572*b1cdbd2cSJim Jagielski                 locRes = oObj.setSelection(chCount-1, 0);
573*b1cdbd2cSJim Jagielski                 System.out.println(Boolean.toString(locRes));
574*b1cdbd2cSJim Jagielski                 res &= locRes;
575*b1cdbd2cSJim Jagielski             }
576*b1cdbd2cSJim Jagielski 
577*b1cdbd2cSJim Jagielski             System.out.println("setSelection(0, 0):");
578*b1cdbd2cSJim Jagielski             locRes = oObj.setSelection(0, 0);
579*b1cdbd2cSJim Jagielski             System.out.println(Boolean.toString(locRes));
580*b1cdbd2cSJim Jagielski             res &= locRes;
581*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
582*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
583*b1cdbd2cSJim Jagielski             e.printStackTrace();
584*b1cdbd2cSJim Jagielski             res &= false;
585*b1cdbd2cSJim Jagielski         }
586*b1cdbd2cSJim Jagielski 
587*b1cdbd2cSJim Jagielski         return res;
588*b1cdbd2cSJim Jagielski     }
589*b1cdbd2cSJim Jagielski 
590*b1cdbd2cSJim Jagielski     /**
591*b1cdbd2cSJim Jagielski      * Calls the method and checks returned value.
592*b1cdbd2cSJim Jagielski      * Has OK status if returned string is not null
593*b1cdbd2cSJim Jagielski      * received from relation.
594*b1cdbd2cSJim Jagielski      * @return
595*b1cdbd2cSJim Jagielski      */
_getText()596*b1cdbd2cSJim Jagielski     public boolean _getText() {
597*b1cdbd2cSJim Jagielski         text = oObj.getText();
598*b1cdbd2cSJim Jagielski         System.out.println("getText: '" + text + "'");
599*b1cdbd2cSJim Jagielski         return (text != null);
600*b1cdbd2cSJim Jagielski     }
601*b1cdbd2cSJim Jagielski 
602*b1cdbd2cSJim Jagielski     /**
603*b1cdbd2cSJim Jagielski      * Calls the method with invalid parameters an with valid parameters,
604*b1cdbd2cSJim Jagielski      * checks returned values.
605*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for invalid parameters,
606*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for valid parameters and if returned values
607*b1cdbd2cSJim Jagielski      * are equal to corresponding substrings of the text received by relation.
608*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
609*b1cdbd2cSJim Jagielski      * <ul>
610*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterCount()</code> </li>
611*b1cdbd2cSJim Jagielski      * </ul>
612*b1cdbd2cSJim Jagielski      * @return
613*b1cdbd2cSJim Jagielski      */
_getTextRange()614*b1cdbd2cSJim Jagielski     public boolean _getTextRange() {
615*b1cdbd2cSJim Jagielski         boolean res = true;
616*b1cdbd2cSJim Jagielski         boolean locRes = true;
617*b1cdbd2cSJim Jagielski 
618*b1cdbd2cSJim Jagielski         try {
619*b1cdbd2cSJim Jagielski             if (chCount > 3) {
620*b1cdbd2cSJim Jagielski                 System.out.println("getTextRange(1, chCount - 2): ");
621*b1cdbd2cSJim Jagielski                 String txtRange = oObj.getTextRange(1, chCount - 2);
622*b1cdbd2cSJim Jagielski                 System.out.println(txtRange);
623*b1cdbd2cSJim Jagielski                 locRes = txtRange.equals(text.substring(1, chCount - 2));
624*b1cdbd2cSJim Jagielski                 res &= locRes;
625*b1cdbd2cSJim Jagielski                 if (!locRes) {
626*b1cdbd2cSJim Jagielski                     System.out.println("Was expected: " +
627*b1cdbd2cSJim Jagielski                         text.substring(1, chCount - 2));
628*b1cdbd2cSJim Jagielski                 }
629*b1cdbd2cSJim Jagielski             }
630*b1cdbd2cSJim Jagielski 
631*b1cdbd2cSJim Jagielski             if (chCount > 0) {
632*b1cdbd2cSJim Jagielski                 System.out.println("getTextRange(0, chCount-1): ");
633*b1cdbd2cSJim Jagielski                 String txtRange = oObj.getTextRange(0, chCount-1);
634*b1cdbd2cSJim Jagielski                 System.out.println(txtRange);
635*b1cdbd2cSJim Jagielski                 locRes = txtRange.equals(text.substring(0, chCount - 1));
636*b1cdbd2cSJim Jagielski                 res &= locRes;
637*b1cdbd2cSJim Jagielski                 if (!locRes) {
638*b1cdbd2cSJim Jagielski                     System.out.println("Was expected: " +
639*b1cdbd2cSJim Jagielski                         text.substring(0, chCount - 1));
640*b1cdbd2cSJim Jagielski                 }
641*b1cdbd2cSJim Jagielski 
642*b1cdbd2cSJim Jagielski                 System.out.println("getTextRange(chCount, 0): ");
643*b1cdbd2cSJim Jagielski                 txtRange = oObj.getTextRange(chCount, 0);
644*b1cdbd2cSJim Jagielski                 System.out.println(txtRange);
645*b1cdbd2cSJim Jagielski                 res &= txtRange.equals(text);
646*b1cdbd2cSJim Jagielski 
647*b1cdbd2cSJim Jagielski                 System.out.println("getTextRange(0, 0): ");
648*b1cdbd2cSJim Jagielski                 txtRange = oObj.getTextRange(0, 0);
649*b1cdbd2cSJim Jagielski                 System.out.println(txtRange);
650*b1cdbd2cSJim Jagielski                 locRes = txtRange.equals("");
651*b1cdbd2cSJim Jagielski                 res &= locRes;
652*b1cdbd2cSJim Jagielski                 if (!locRes) {
653*b1cdbd2cSJim Jagielski                     System.out.println("Empty string was expected");
654*b1cdbd2cSJim Jagielski                 }
655*b1cdbd2cSJim Jagielski             }
656*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
657*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
658*b1cdbd2cSJim Jagielski             e.printStackTrace();
659*b1cdbd2cSJim Jagielski             res &= false;
660*b1cdbd2cSJim Jagielski         }
661*b1cdbd2cSJim Jagielski 
662*b1cdbd2cSJim Jagielski         try {
663*b1cdbd2cSJim Jagielski             System.out.println("getTextRange(-1, chCount - 1): ");
664*b1cdbd2cSJim Jagielski             String txtRange = oObj.getTextRange(-1, chCount - 1);
665*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
666*b1cdbd2cSJim Jagielski             res &= false;
667*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
668*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
669*b1cdbd2cSJim Jagielski             res &= true;
670*b1cdbd2cSJim Jagielski         }
671*b1cdbd2cSJim Jagielski 
672*b1cdbd2cSJim Jagielski         try {
673*b1cdbd2cSJim Jagielski             System.out.println("getTextRange(0, chCount + 1): ");
674*b1cdbd2cSJim Jagielski             String txtRange = oObj.getTextRange(0, chCount + 1);
675*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
676*b1cdbd2cSJim Jagielski             res &= false;
677*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
678*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
679*b1cdbd2cSJim Jagielski             res &= true;
680*b1cdbd2cSJim Jagielski         }
681*b1cdbd2cSJim Jagielski 
682*b1cdbd2cSJim Jagielski         try {
683*b1cdbd2cSJim Jagielski             System.out.println("getTextRange(chCount+1, -1): ");
684*b1cdbd2cSJim Jagielski             String txtRange = oObj.getTextRange(chCount+1, -1);
685*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
686*b1cdbd2cSJim Jagielski             res &= false;
687*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
688*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
689*b1cdbd2cSJim Jagielski             res &= true;
690*b1cdbd2cSJim Jagielski         }
691*b1cdbd2cSJim Jagielski 
692*b1cdbd2cSJim Jagielski         return res;
693*b1cdbd2cSJim Jagielski     }
694*b1cdbd2cSJim Jagielski 
695*b1cdbd2cSJim Jagielski     /**
696*b1cdbd2cSJim Jagielski      * Calls the method with invalid parameters an with valid parameters,
697*b1cdbd2cSJim Jagielski      * checks returned values.
698*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for invalid parameters,
699*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for valid parameters and if returned values
700*b1cdbd2cSJim Jagielski      * are equal to corresponding substrings of the text received by relation.
701*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
702*b1cdbd2cSJim Jagielski      * <ul>
703*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterCount()</code> </li>
704*b1cdbd2cSJim Jagielski      * </ul>
705*b1cdbd2cSJim Jagielski      * @return
706*b1cdbd2cSJim Jagielski      */
_getTextAtIndex()707*b1cdbd2cSJim Jagielski     public boolean _getTextAtIndex() {
708*b1cdbd2cSJim Jagielski         boolean res = true;
709*b1cdbd2cSJim Jagielski 
710*b1cdbd2cSJim Jagielski         try {
711*b1cdbd2cSJim Jagielski             System.out.println("getTextAtIndex(-1, AccessibleTextType.PARAGRAPH):");
712*b1cdbd2cSJim Jagielski             TextSegment txt =
713*b1cdbd2cSJim Jagielski                 oObj.getTextAtIndex(-1, AccessibleTextType.PARAGRAPH);
714*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
715*b1cdbd2cSJim Jagielski             res &= false;
716*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
717*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
718*b1cdbd2cSJim Jagielski             res &= true;
719*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IllegalArgumentException e) {
720*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
721*b1cdbd2cSJim Jagielski             res &= true;
722*b1cdbd2cSJim Jagielski         }
723*b1cdbd2cSJim Jagielski 
724*b1cdbd2cSJim Jagielski         try {
725*b1cdbd2cSJim Jagielski             System.out.println("getTextAtIndex(chCount+1," +
726*b1cdbd2cSJim Jagielski                 " AccessibleTextType.PARAGRAPH):");
727*b1cdbd2cSJim Jagielski             TextSegment txt = oObj.getTextAtIndex(chCount + 1,
728*b1cdbd2cSJim Jagielski                  AccessibleTextType.PARAGRAPH);
729*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
730*b1cdbd2cSJim Jagielski             res &= false;
731*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
732*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
733*b1cdbd2cSJim Jagielski             res &= true;
734*b1cdbd2cSJim Jagielski         }  catch(com.sun.star.lang.IllegalArgumentException e) {
735*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
736*b1cdbd2cSJim Jagielski             res &= true;
737*b1cdbd2cSJim Jagielski         }
738*b1cdbd2cSJim Jagielski 
739*b1cdbd2cSJim Jagielski 
740*b1cdbd2cSJim Jagielski         try {
741*b1cdbd2cSJim Jagielski             if ( chCount > 0 ) {
742*b1cdbd2cSJim Jagielski                 System.out.println("getTextAtIndex(chCount," +
743*b1cdbd2cSJim Jagielski                     " AccessibleTextType.PARAGRAPH):");
744*b1cdbd2cSJim Jagielski                 TextSegment txt = oObj.getTextAtIndex(chCount,
745*b1cdbd2cSJim Jagielski                     AccessibleTextType.PARAGRAPH);
746*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
747*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.length() == 0;
748*b1cdbd2cSJim Jagielski 
749*b1cdbd2cSJim Jagielski                 System.out.println("getTextAtIndex(1," +
750*b1cdbd2cSJim Jagielski                     " AccessibleTextType.PARAGRAPH):");
751*b1cdbd2cSJim Jagielski                 txt = oObj.getTextAtIndex(1,
752*b1cdbd2cSJim Jagielski                     AccessibleTextType.PARAGRAPH);
753*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
754*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.equals(text);
755*b1cdbd2cSJim Jagielski             }
756*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
757*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
758*b1cdbd2cSJim Jagielski             e.printStackTrace();
759*b1cdbd2cSJim Jagielski             res &= false;
760*b1cdbd2cSJim Jagielski         }  catch(com.sun.star.lang.IllegalArgumentException e) {
761*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
762*b1cdbd2cSJim Jagielski             res &= false;
763*b1cdbd2cSJim Jagielski         }
764*b1cdbd2cSJim Jagielski 
765*b1cdbd2cSJim Jagielski 
766*b1cdbd2cSJim Jagielski         return res;
767*b1cdbd2cSJim Jagielski     }
768*b1cdbd2cSJim Jagielski 
769*b1cdbd2cSJim Jagielski     /**
770*b1cdbd2cSJim Jagielski      * Calls the method with invalid parameters an with valid parameters,
771*b1cdbd2cSJim Jagielski      * checks returned values.
772*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for invalid parameters,
773*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for valid parameters and if returned values
774*b1cdbd2cSJim Jagielski      * are equal to corresponding substrings of the text received by relation.
775*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
776*b1cdbd2cSJim Jagielski      * <ul>
777*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterCount()</code> </li>
778*b1cdbd2cSJim Jagielski      * </ul>
779*b1cdbd2cSJim Jagielski      * @return
780*b1cdbd2cSJim Jagielski      */
_getTextBeforeIndex()781*b1cdbd2cSJim Jagielski     public boolean _getTextBeforeIndex() {
782*b1cdbd2cSJim Jagielski         boolean res = true;
783*b1cdbd2cSJim Jagielski 
784*b1cdbd2cSJim Jagielski         try {
785*b1cdbd2cSJim Jagielski             System.out.println("getTextBeforeIndex(-1, AccessibleTextType.PARAGRAPH):");
786*b1cdbd2cSJim Jagielski             TextSegment txt = oObj.getTextBeforeIndex(-1,
787*b1cdbd2cSJim Jagielski                 AccessibleTextType.PARAGRAPH);
788*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
789*b1cdbd2cSJim Jagielski             res &= false;
790*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
791*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
792*b1cdbd2cSJim Jagielski             res &= true;
793*b1cdbd2cSJim Jagielski         }  catch(com.sun.star.lang.IllegalArgumentException e) {
794*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
795*b1cdbd2cSJim Jagielski             res &= true;
796*b1cdbd2cSJim Jagielski         }
797*b1cdbd2cSJim Jagielski 
798*b1cdbd2cSJim Jagielski 
799*b1cdbd2cSJim Jagielski         try {
800*b1cdbd2cSJim Jagielski             System.out.println("getTextBeforeIndex(chCount+1, " +
801*b1cdbd2cSJim Jagielski                 "AccessibleTextType.PARAGRAPH):");
802*b1cdbd2cSJim Jagielski             TextSegment txt = oObj.getTextBeforeIndex(chCount + 1,
803*b1cdbd2cSJim Jagielski                 AccessibleTextType.PARAGRAPH);
804*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
805*b1cdbd2cSJim Jagielski             res &= false;
806*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
807*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
808*b1cdbd2cSJim Jagielski             res &= true;
809*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IllegalArgumentException e) {
810*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
811*b1cdbd2cSJim Jagielski             res &= true;
812*b1cdbd2cSJim Jagielski         }
813*b1cdbd2cSJim Jagielski 
814*b1cdbd2cSJim Jagielski         TextSegment txt = null;
815*b1cdbd2cSJim Jagielski         try {
816*b1cdbd2cSJim Jagielski             if (chCount > 0) {
817*b1cdbd2cSJim Jagielski                 System.out.println("getTextBeforeIndex(chCount," +
818*b1cdbd2cSJim Jagielski                     " AccessibleTextType.PARAGRAPH):");
819*b1cdbd2cSJim Jagielski                 txt = oObj.getTextBeforeIndex(chCount,
820*b1cdbd2cSJim Jagielski                     AccessibleTextType.PARAGRAPH);
821*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
822*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.length() == chCount ;
823*b1cdbd2cSJim Jagielski 
824*b1cdbd2cSJim Jagielski                 System.out.println("getTextBeforeIndex(1," +
825*b1cdbd2cSJim Jagielski                     " AccessibleTextType.PARAGRAPH):");
826*b1cdbd2cSJim Jagielski                 txt = oObj.getTextBeforeIndex(1,
827*b1cdbd2cSJim Jagielski                     AccessibleTextType.PARAGRAPH);
828*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
829*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.length() == 0;
830*b1cdbd2cSJim Jagielski             }
831*b1cdbd2cSJim Jagielski 
832*b1cdbd2cSJim Jagielski             if (chCount > 2) {
833*b1cdbd2cSJim Jagielski                 System.out.println("getTextBeforeIndex(chCount-1," +
834*b1cdbd2cSJim Jagielski                     " AccessibleTextType.CHARACTER):");
835*b1cdbd2cSJim Jagielski                 txt = oObj.getTextBeforeIndex(chCount - 1,
836*b1cdbd2cSJim Jagielski                     AccessibleTextType.CHARACTER);
837*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
838*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.equals(text.substring(chCount - 2, chCount - 1));
839*b1cdbd2cSJim Jagielski                 System.out.println("getTextBeforeIndex(2," +
840*b1cdbd2cSJim Jagielski                     " AccessibleTextType.CHARACTER):");
841*b1cdbd2cSJim Jagielski                 txt = oObj.getTextBeforeIndex(2,
842*b1cdbd2cSJim Jagielski                      AccessibleTextType.CHARACTER);
843*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
844*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.equals(text.substring(1, 2));
845*b1cdbd2cSJim Jagielski             }
846*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
847*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
848*b1cdbd2cSJim Jagielski             e.printStackTrace();
849*b1cdbd2cSJim Jagielski             res &= false;
850*b1cdbd2cSJim Jagielski         }  catch(com.sun.star.lang.IllegalArgumentException e) {
851*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
852*b1cdbd2cSJim Jagielski             res &= false;
853*b1cdbd2cSJim Jagielski         }
854*b1cdbd2cSJim Jagielski 
855*b1cdbd2cSJim Jagielski 
856*b1cdbd2cSJim Jagielski         return res;
857*b1cdbd2cSJim Jagielski     }
858*b1cdbd2cSJim Jagielski 
859*b1cdbd2cSJim Jagielski     /**
860*b1cdbd2cSJim Jagielski      * Calls the method with invalid parameters an with valid parameters,
861*b1cdbd2cSJim Jagielski      * checks returned values.
862*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for invalid parameters,
863*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for valid parameters and if returned values
864*b1cdbd2cSJim Jagielski      * are equal to corresponding substrings of the text received by relation.
865*b1cdbd2cSJim Jagielski      * The following method tests are to be executed before:
866*b1cdbd2cSJim Jagielski      * <ul>
867*b1cdbd2cSJim Jagielski      *  <li> <code>getCharacterCount()</code> </li>
868*b1cdbd2cSJim Jagielski      * </ul>
869*b1cdbd2cSJim Jagielski      * @return
870*b1cdbd2cSJim Jagielski      */
_getTextBehindIndex()871*b1cdbd2cSJim Jagielski     public boolean _getTextBehindIndex() {
872*b1cdbd2cSJim Jagielski         boolean res = true;
873*b1cdbd2cSJim Jagielski 
874*b1cdbd2cSJim Jagielski         try {
875*b1cdbd2cSJim Jagielski             System.out.println("getTextBehindIndex(-1, AccessibleTextType.PARAGRAPH):");
876*b1cdbd2cSJim Jagielski             TextSegment txt = oObj.getTextBehindIndex(-1,
877*b1cdbd2cSJim Jagielski                 AccessibleTextType.PARAGRAPH);
878*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
879*b1cdbd2cSJim Jagielski             res &= false;
880*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
881*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
882*b1cdbd2cSJim Jagielski             res &= true;
883*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IllegalArgumentException e) {
884*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
885*b1cdbd2cSJim Jagielski             res &= true;
886*b1cdbd2cSJim Jagielski         }
887*b1cdbd2cSJim Jagielski 
888*b1cdbd2cSJim Jagielski 
889*b1cdbd2cSJim Jagielski         try {
890*b1cdbd2cSJim Jagielski             System.out.println("getTextBehindIndex(chCount+1, " +
891*b1cdbd2cSJim Jagielski                 "AccessibleTextType.PARAGRAPH):");
892*b1cdbd2cSJim Jagielski             TextSegment txt = oObj.getTextBehindIndex(chCount + 1,
893*b1cdbd2cSJim Jagielski                 AccessibleTextType.PARAGRAPH);
894*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
895*b1cdbd2cSJim Jagielski             res &= false;
896*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
897*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
898*b1cdbd2cSJim Jagielski             res &= true;
899*b1cdbd2cSJim Jagielski         }  catch(com.sun.star.lang.IllegalArgumentException e) {
900*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
901*b1cdbd2cSJim Jagielski             res &= true;
902*b1cdbd2cSJim Jagielski         }
903*b1cdbd2cSJim Jagielski 
904*b1cdbd2cSJim Jagielski 
905*b1cdbd2cSJim Jagielski         try {
906*b1cdbd2cSJim Jagielski             if ( chCount > 0 ) {
907*b1cdbd2cSJim Jagielski                 System.out.println("getTextBehindIndex(chCount," +
908*b1cdbd2cSJim Jagielski                     " AccessibleTextType.PARAGRAPH):");
909*b1cdbd2cSJim Jagielski                 TextSegment txt = oObj.getTextBehindIndex(chCount,
910*b1cdbd2cSJim Jagielski                     AccessibleTextType.PARAGRAPH);
911*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
912*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.length() == 0;
913*b1cdbd2cSJim Jagielski 
914*b1cdbd2cSJim Jagielski                 System.out.println("getTextBehindIndex(chCount-1," +
915*b1cdbd2cSJim Jagielski                     " AccessibleTextType.PARAGRAPH):");
916*b1cdbd2cSJim Jagielski                 txt = oObj.getTextBehindIndex(chCount - 1,
917*b1cdbd2cSJim Jagielski                     AccessibleTextType.PARAGRAPH);
918*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
919*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.length() == 0;
920*b1cdbd2cSJim Jagielski             }
921*b1cdbd2cSJim Jagielski             if ( chCount > 1 ) {
922*b1cdbd2cSJim Jagielski                 System.out.println("getTextBehindIndex(1," +
923*b1cdbd2cSJim Jagielski                     " AccessibleTextType.CHARACTER):");
924*b1cdbd2cSJim Jagielski                 TextSegment txt = oObj.getTextBehindIndex(1,
925*b1cdbd2cSJim Jagielski                     AccessibleTextType.CHARACTER);
926*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
927*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.equals(text.substring(2, 3));
928*b1cdbd2cSJim Jagielski             }
929*b1cdbd2cSJim Jagielski             if (chCount > 2) {
930*b1cdbd2cSJim Jagielski                 System.out.println("getTextBehindIndex(chCount-2," +
931*b1cdbd2cSJim Jagielski                     " AccessibleTextType.CHARACTER):");
932*b1cdbd2cSJim Jagielski                 TextSegment txt = oObj.getTextBehindIndex(chCount - 2,
933*b1cdbd2cSJim Jagielski                      AccessibleTextType.CHARACTER);
934*b1cdbd2cSJim Jagielski                 System.out.println("'" + txt.SegmentText + "'");
935*b1cdbd2cSJim Jagielski                 res &= txt.SegmentText.equals(text.substring(chCount - 1, chCount));
936*b1cdbd2cSJim Jagielski             }
937*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
938*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
939*b1cdbd2cSJim Jagielski             e.printStackTrace();
940*b1cdbd2cSJim Jagielski             res &= false;
941*b1cdbd2cSJim Jagielski         }  catch(com.sun.star.lang.IllegalArgumentException e) {
942*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
943*b1cdbd2cSJim Jagielski             res &= false;
944*b1cdbd2cSJim Jagielski         }
945*b1cdbd2cSJim Jagielski 
946*b1cdbd2cSJim Jagielski 
947*b1cdbd2cSJim Jagielski         return res;
948*b1cdbd2cSJim Jagielski     }
949*b1cdbd2cSJim Jagielski 
950*b1cdbd2cSJim Jagielski     /**
951*b1cdbd2cSJim Jagielski      * Calls the method with invalid parameters an with valid parameter,
952*b1cdbd2cSJim Jagielski      * checks returned values.
953*b1cdbd2cSJim Jagielski      * Has OK status if exception was thrown for invalid parameters,
954*b1cdbd2cSJim Jagielski      * if exception wasn't thrown for valid parameter and if returned value for
955*b1cdbd2cSJim Jagielski      * valid parameter is equal to <code>true</code>.
956*b1cdbd2cSJim Jagielski      * @return
957*b1cdbd2cSJim Jagielski      */
_copyText()958*b1cdbd2cSJim Jagielski     public boolean _copyText() {
959*b1cdbd2cSJim Jagielski         boolean res = true;
960*b1cdbd2cSJim Jagielski         boolean locRes = true;
961*b1cdbd2cSJim Jagielski 
962*b1cdbd2cSJim Jagielski         if (editOnly != null) {
963*b1cdbd2cSJim Jagielski             System.out.println(editOnly);
964*b1cdbd2cSJim Jagielski             return true;
965*b1cdbd2cSJim Jagielski         }
966*b1cdbd2cSJim Jagielski 
967*b1cdbd2cSJim Jagielski         try {
968*b1cdbd2cSJim Jagielski             System.out.println("copyText(-1,chCount):");
969*b1cdbd2cSJim Jagielski             oObj.copyText(-1, chCount);
970*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
971*b1cdbd2cSJim Jagielski             res &= false;
972*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
973*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
974*b1cdbd2cSJim Jagielski             res &= true;
975*b1cdbd2cSJim Jagielski         }
976*b1cdbd2cSJim Jagielski 
977*b1cdbd2cSJim Jagielski         try {
978*b1cdbd2cSJim Jagielski             System.out.println("copyText(0,chCount+1):");
979*b1cdbd2cSJim Jagielski             oObj.copyText(0, chCount + 1);
980*b1cdbd2cSJim Jagielski             System.out.println("Exception was expected");
981*b1cdbd2cSJim Jagielski             res &= false;
982*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
983*b1cdbd2cSJim Jagielski             System.out.println("Expected exception");
984*b1cdbd2cSJim Jagielski             res &= true;
985*b1cdbd2cSJim Jagielski         }
986*b1cdbd2cSJim Jagielski 
987*b1cdbd2cSJim Jagielski         try {
988*b1cdbd2cSJim Jagielski             System.out.println("copyText(0,chCount):");
989*b1cdbd2cSJim Jagielski             locRes = oObj.copyText(0, chCount);
990*b1cdbd2cSJim Jagielski             System.out.println(""+locRes);
991*b1cdbd2cSJim Jagielski             res &= locRes;
992*b1cdbd2cSJim Jagielski 
993*b1cdbd2cSJim Jagielski             String cbText = null;
994*b1cdbd2cSJim Jagielski             try {
995*b1cdbd2cSJim Jagielski                 cbText =
996*b1cdbd2cSJim Jagielski                     util.SysUtils.getSysClipboardText(xMSF);
997*b1cdbd2cSJim Jagielski             } catch (com.sun.star.uno.Exception e) {
998*b1cdbd2cSJim Jagielski                 System.out.println("Couldn't access system clipboard :");
999*b1cdbd2cSJim Jagielski                 e.printStackTrace();
1000*b1cdbd2cSJim Jagielski             }
1001*b1cdbd2cSJim Jagielski             System.out.println("Clipboard: '" + cbText + "'");
1002*b1cdbd2cSJim Jagielski             res &= text.equals(cbText);
1003*b1cdbd2cSJim Jagielski 
1004*b1cdbd2cSJim Jagielski             if (chCount > 2) {
1005*b1cdbd2cSJim Jagielski                 System.out.println("copyText(1,chCount-1):");
1006*b1cdbd2cSJim Jagielski                 locRes = oObj.copyText(1, chCount - 1);
1007*b1cdbd2cSJim Jagielski                 System.out.println(""+locRes);
1008*b1cdbd2cSJim Jagielski                 res &= locRes;
1009*b1cdbd2cSJim Jagielski 
1010*b1cdbd2cSJim Jagielski                 try {
1011*b1cdbd2cSJim Jagielski                     cbText = util.SysUtils.getSysClipboardText(xMSF);
1012*b1cdbd2cSJim Jagielski                 } catch (com.sun.star.uno.Exception e) {
1013*b1cdbd2cSJim Jagielski                     System.out.println("Couldn't access system clipboard :");
1014*b1cdbd2cSJim Jagielski                     e.printStackTrace();
1015*b1cdbd2cSJim Jagielski                 }
1016*b1cdbd2cSJim Jagielski 
1017*b1cdbd2cSJim Jagielski                 System.out.println("Clipboard: '" + cbText + "'");
1018*b1cdbd2cSJim Jagielski                 res &= text.substring(1, chCount - 1).equals(cbText);
1019*b1cdbd2cSJim Jagielski             }
1020*b1cdbd2cSJim Jagielski 
1021*b1cdbd2cSJim Jagielski         } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
1022*b1cdbd2cSJim Jagielski             System.out.println("Unexpected exception");
1023*b1cdbd2cSJim Jagielski             e.printStackTrace();
1024*b1cdbd2cSJim Jagielski             res &= false;
1025*b1cdbd2cSJim Jagielski         }
1026*b1cdbd2cSJim Jagielski 
1027*b1cdbd2cSJim Jagielski         return res;
1028*b1cdbd2cSJim Jagielski     }
1029*b1cdbd2cSJim Jagielski }
1030