/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
package ifc.text;
import lib.MultiMethodTest;
import lib.Status;
import util.XInstCreator;
import com.sun.star.container.XIndexAccess;
import com.sun.star.text.XText;
import com.sun.star.text.XTextContent;
import com.sun.star.text.XTextCursor;
import com.sun.star.uno.XInterface;
import lib.StatusException;
/**
* Testing com.sun.star.text.XText
* interface methods :
*
insertTextContent()
removeTextContent()
* This test needs the following object relations : *
'XTEXTINFO'
(of type lib.XInstCreator
):
* creator which can create instances of XTextContent
* implementations. * Test is NOT multithread compilant.
* @see com.sun.star.text.XText
*/
public class _XText extends MultiMethodTest {
public static XText oObj = null; // oObj filled by MultiMethodTest
XTextCursor oCursor = null; // textcursor
XInstCreator info = null; // instance creator
XInterface oInt = null; // instance to insert and remove
/**
* First an instance of text content is created using relation
* and inserted into text. Then the number of contents is checked
* using the relation. Second a null
content is tried
* to insert.
*
* Has OK status if in the first case after inserting number
* of content objects is greater than zero and in the second
* case IllegalArgumentException
is thrown.
*/ public void _insertTextContent() { boolean result = false; info = (XInstCreator)tEnv.getObjRelation( "XTEXTINFO" ); oInt = info.createInstance(); // write to log what we try next log.println( "test for createTextCursor()" ); oCursor = oObj.createTextCursor(); // write to log what we try next log.println( "test for insertTextContent()" ); try { oObj.insertTextContent(oCursor, (XTextContent)oInt, false); } catch( com.sun.star.lang.IllegalArgumentException iaE ){ throw new StatusException("Couldn't insert textcontent",iaE); //Status.failed(iaE.toString()); //return; } // get indexaccess to the tablecollection XIndexAccess xIA = info.getCollection(); // this comparison works just because it has to be at least one // table at this point regardless which thread inserted it // there is although the possibility that the first threads call // failed, the second not and comparison happens after second threads // otherwise if something fails it should have thrown an exception //tRes.tested("insertTextContent()", xIA.getCount() > 0 ); if (xIA != null ) { result = (xIA.getCount()>0); } else { result = true; } if (!result) log.println("The TextContent wasn't inserted"); // try to insert an invalid TextContent log.println( "test for insertTextContent" ); try { oObj.insertTextContent(oCursor, null, false); log.println("The expected Exception doesn't occurred"); result &= false; } catch( com.sun.star.lang.IllegalArgumentException iaE ){ // Some exception.FAILED log.println("Expected Exception occurred"); String msg = iaE.getMessage(); if (msg.equals("")) { log.println("But there is not detailed message"); } else { log.println("Detailed message: "+msg); } result &= true; } tRes.tested("insertTextContent()", result ); } /** * Removes the text contet added before.
* Has OK status if the method successfully returns * and no exceptions were thrown.
* The following method tests are to be completed successfully before : *
insertTextContent()
: inserts the content
* to be removed in this test.