1  /**************************************************************
2   *
3   * Licensed to the Apache Software Foundation (ASF) under one
4   * or more contributor license agreements.  See the NOTICE file
5   * distributed with this work for additional information
6   * regarding copyright ownership.  The ASF licenses this file
7   * to you under the Apache License, Version 2.0 (the
8   * "License"); you may not use this file except in compliance
9   * with the License.  You may obtain a copy of the License at
10   *
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing,
14   * software distributed under the License is distributed on an
15   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   * KIND, either express or implied.  See the License for the
17   * specific language governing permissions and limitations
18   * under the License.
19   *
20   *************************************************************/
21  
22  
23  
24  package ifc.text;
25  
26  import lib.MultiMethodTest;
27  import lib.Status;
28  import lib.StatusException;
29  
30  import com.sun.star.text.XTextRange;
31  import com.sun.star.text.XTextRangeMover;
32  
33  /**
34   * Testing <code>com.sun.star.text.XTextRangeMover</code>
35   * interface methods :
36   * <ul>
37   *  <li><code> moveTextRange()</code></li>
38   * </ul> <p>
39   * This test needs the following object relations :
40   * <ul>
41   *  <li> <code>'RangeForMove'</code> (of type <code>XTextRange</code>):
42   *   the range to be moved. </li>
43   *   <li> <code>'XTextRange'</code> (of type <code>XTextRange</code>):
44   *   the range that includes moving range. </li>
45   * <ul> <p>
46   * Test is <b> NOT </b> multithread compilant. <p>
47   * @see com.sun.star.text.XTextRangeMover
48   */
49  public class _XTextRangeMover extends MultiMethodTest {
50  
51      public XTextRangeMover oObj = null;
52  
53      XTextRange xTextRange = null;
54      XTextRange oMoveRange = null;
55  
56      /**
57       * Moves the range obtained from relation 'RangeForMove' by 1 paragraph
58       * and compares index of moved string in the whole text obtained
59       * from relation 'XTextRange'. <p>
60       * Has <b>OK</b> status if index of moved range is changed after method call.
61       */
_moveTextRange()62      public void _moveTextRange(){
63          oMoveRange = (XTextRange) tEnv.getObjRelation("RangeForMove");
64          xTextRange = (XTextRange) tEnv.getObjRelation("XTextRange");
65  
66          if (oMoveRange == null) {
67              throw new StatusException(
68                  Status.failed("Couldn't get relation 'RangeForMove'"));
69          }
70  
71          if (xTextRange == null) {
72              throw new StatusException(
73                  Status.failed("Couldn't get relation 'XTextRange'"));
74          }
75  
76          log.println("Content before moving:");
77          log.println(xTextRange.getString());
78          log.println("Text range for moving:");
79          log.println(oMoveRange.getString());
80          int indexBefore = xTextRange.getString().indexOf(oMoveRange.getString());
81          oObj.moveTextRange(oMoveRange,(short) 1);
82          log.println("Content after moving:");
83          log.println(xTextRange.getString());
84          int indexAfter = xTextRange.getString().indexOf(oMoveRange.getString());
85  
86          boolean res = indexBefore != indexAfter;
87          log.println("Index before moving:" + indexBefore);
88          log.println("Index after moving:" + indexAfter);
89  
90          tRes.tested("moveTextRange()", res);
91      }
92  }
93  
94