/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ package ifc.text; import lib.MultiMethodTest; import com.sun.star.text.XTextCursor; /** * Testing com.sun.star.text.XTextCursor * interface methods : *

* * During this test the component text is changed, * that's why it must be stored before methods' tests, * and restored after.

* * Test is NOT multithread compilant.

* @see com.sun.star.text.XTextCursor */ public class _XTextCursor extends MultiMethodTest { public XTextCursor oObj = null; // oObj filled by MultiMethodTest String oldText = null ; /** * Stores component's text. */ public void before() { oObj.gotoStart(false); oObj.gotoEnd(true); oldText = oObj.getString() ; } /** * First some text is set (for component to has at least some * text), cursor is expanded to the whole text (to be not collapsed), * the collapseToEnd is called. Then current cursor * text is examined.

* * Has OK status if the current cursor text is an * empty string. */ public void _collapseToEnd(){ boolean bCol = false; oObj.setString("XTextCursor"); oObj.gotoStart(false); oObj.gotoEnd(true); oObj.collapseToEnd(); bCol = oObj.getString().equals(""); tRes.tested("collapseToEnd()", bCol ); } /** * First some text is set (for component to has at least some * text), cursor is expanded to the whole text (to be not collapsed), * the collapseToStart is called. Then current cursor * text is examined.

* * Has OK status if the current cursor text is an * empty string. */ public void _collapseToStart(){ boolean bCol = false; oObj.setString("XTextCursor"); oObj.gotoStart(false); oObj.gotoEnd(true); oObj.collapseToStart(); bCol = oObj.getString().equals(""); tRes.tested("collapseToStart()", bCol ); } /** * First the cursor is moved to the end of text (to have a space * for left cursor moving, and moves the cursor left by a number * of characters.

* * Has OK status if the method returns true, * and the current cursor string has the same length as number * of characters the cursor was moved by. */ public void _goLeft(){ boolean bLeft = false; short n = 5; oObj.gotoEnd(false); bLeft = oObj.goLeft(n, true); String gStr = oObj.getString() ; log.println("'" + gStr + "'") ; bLeft &= gStr.length() == n ; tRes.tested("goLeft()", bLeft ); } /** * First the cursor is moved to the start of text (to have a space * for right cursor moving, and moves the cursor right by a number * of characters.

* * Has OK status if the method returns true, * and the current cursor string has the same length as number * of characters the cursor was moved by. */ public void _goRight(){ boolean bRight = false; short n = 5; oObj.gotoStart(false); bRight = oObj.goRight(n, true); String gStr = oObj.getString() ; log.println("'" + gStr + "'") ; bRight &= gStr.length() == n ; tRes.tested("goRight()", bRight ); } /** * Test calls the method.

* Has OK status if the method goRight() * returns false (cursor can't move to the right). */ public void _gotoEnd(){ boolean bEnd = false; short n = 1; oObj.gotoEnd(false); bEnd = !oObj.goRight(n, false) ; tRes.tested("gotoEnd()", bEnd ); } /** * First the whole text is set to a string, and cursor * is moved to the range situated at the start of the * text.

* * Has OK status if some characters to the right * of the current cursor position are the beginning of * the text. */ public void _gotoRange(){ boolean bRange = false; oObj.gotoStart(false); oObj.gotoEnd(true); oObj.setString("XTextCursor,XTextCursor"); oObj.gotoRange(oObj.getStart(),false); oObj.goRight((short) 5, true); bRange = oObj.getString().equals("XText"); if (!bRange) log.println("getString() returned '" + oObj.getString() + "'") ; tRes.tested("gotoRange()", bRange ); } /** * Test calls the method.

* Has OK status if the method goLeft() * returns false (cursor can't move to the left). */ public void _gotoStart(){ boolean bStart = false; short n = 1; oObj.gotoStart(false); bStart = !oObj.goLeft(n, false) ; tRes.tested("gotoStart()", bStart ); } /** * First the cusor is moved to start without expanding * (must be collapsed), and then it's expanded to the * whole text (must not be collapsed).

* * Has OK status if in the first case method * isCollapsed returns true, * and in the second false */ public void _isCollapsed(){ boolean bCol = false; oObj.gotoStart(false); bCol = oObj.isCollapsed(); oObj.gotoEnd(true); bCol &= !oObj.isCollapsed() ; tRes.tested("isCollapsed()", bCol ); } /** * Restores the text of the component to the * state it was before this interafce test. */ public void after() { oObj.gotoStart(false); oObj.gotoEnd(true); oObj.setString(oldText) ; } } // finish class _XTextCursor