summaryrefslogtreecommitdiff
path: root/sw/qa/complex/writer/CheckCrossReferences.java
diff options
context:
space:
mode:
Diffstat (limited to 'sw/qa/complex/writer/CheckCrossReferences.java')
-rw-r--r--sw/qa/complex/writer/CheckCrossReferences.java334
1 files changed, 128 insertions, 206 deletions
diff --git a/sw/qa/complex/writer/CheckCrossReferences.java b/sw/qa/complex/writer/CheckCrossReferences.java
index 7b469c0a4afc..cc7fcb1c7e53 100644
--- a/sw/qa/complex/writer/CheckCrossReferences.java
+++ b/sw/qa/complex/writer/CheckCrossReferences.java
@@ -1,123 +1,96 @@
-/*
- * CheckCrossReferences.java
- *
- * Created on November 1, 2007, 1:49 PM
- *
- * To change this template, choose Tools | Template Manager
- * and open the template in the editor.
- */
+/*************************************************************************
+*
+* 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
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
package complex.writer;
-import complexlib.ComplexTestCase;
import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.text.XTextDocument;
import com.sun.star.uno.UnoRuntime;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
/**
*
* @author od138299
*/
-public class CheckCrossReferences extends ComplexTestCase {
+public class CheckCrossReferences {
- private com.sun.star.text.XTextDocument xDoc;
private com.sun.star.container.XEnumeration xParaEnum;
private com.sun.star.container.XEnumeration xPortionEnum;
private com.sun.star.util.XRefreshable xFldsRefresh;
- public String[] getTestMethodNames() {
- return new String[]{"checkCrossReferences"};
- }
-
- public com.sun.star.text.XTextField getNextField() {
-
- com.sun.star.text.XTextField xField = null;
+ public com.sun.star.text.XTextField getNextField()
+ throws com.sun.star.uno.Exception
+ {
if ( xPortionEnum != null ) {
- try {
- while ( xPortionEnum.hasMoreElements() ) {
- com.sun.star.beans.XPropertySet xPortionProps =
- (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
- com.sun.star.beans.XPropertySet.class , xPortionEnum.nextElement());
- final String sPortionType =
- xPortionProps.getPropertyValue( "TextPortionType" ).toString();
- if ( sPortionType.equals( "TextField") ) {
- xField = (com.sun.star.text.XTextField)UnoRuntime.queryInterface(
- com.sun.star.text.XTextField.class,
- xPortionProps.getPropertyValue( "TextField" ) );
- if ( xField == null ) {
- System.out.println("Cannot retrieve next field.");
- failed("Cannot retrieve next field.");
- return null;
- }
- return xField;
- }
+ while ( xPortionEnum.hasMoreElements() ) {
+ com.sun.star.beans.XPropertySet xPortionProps =
+ (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
+ com.sun.star.beans.XPropertySet.class , xPortionEnum.nextElement());
+ final String sPortionType =
+ xPortionProps.getPropertyValue( "TextPortionType" ).toString();
+ if ( sPortionType.equals( "TextField") ) {
+ com.sun.star.text.XTextField xField = (com.sun.star.text.XTextField)UnoRuntime.queryInterface(
+ com.sun.star.text.XTextField.class,
+ xPortionProps.getPropertyValue( "TextField" ) );
+ assertNotNull("Cannot retrieve next field.", xField);
+ return xField;
}
- } catch (com.sun.star.container.NoSuchElementException e) {
- System.out.println("Cannot retrieve next field.");
- e.printStackTrace();
- failed(e.getMessage());
- return null;
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- System.out.println("Cannot retrieve next field.");
- e.printStackTrace();
- failed(e.getMessage());
- return null;
- } catch (com.sun.star.lang.WrappedTargetException e) {
- System.out.println("Cannot retrieve next field.");
- e.printStackTrace();
- failed(e.getMessage());
- return null;
}
}
while ( xParaEnum.hasMoreElements() ) {
- try {
- com.sun.star.container.XEnumerationAccess aPara =
- (com.sun.star.container.XEnumerationAccess)UnoRuntime.queryInterface(
- com.sun.star.container.XEnumerationAccess.class, xParaEnum.nextElement());
- xPortionEnum = aPara.createEnumeration();
- while ( xPortionEnum.hasMoreElements() ) {
- com.sun.star.beans.XPropertySet xPortionProps =
- (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
- com.sun.star.beans.XPropertySet.class , xPortionEnum.nextElement());
- final String sPortionType =
- xPortionProps.getPropertyValue( "TextPortionType" ).toString();
- if ( sPortionType.equals( "TextField") ) {
- xField = (com.sun.star.text.XTextField)UnoRuntime.queryInterface(
- com.sun.star.text.XTextField.class,
- xPortionProps.getPropertyValue( "TextField" ) );
- if ( xField == null ) {
- System.out.println("Cannot retrieve next field.");
- failed("Cannot retrieve next field.");
- return null;
- }
- return xField;
- }
+ com.sun.star.container.XEnumerationAccess aPara =
+ (com.sun.star.container.XEnumerationAccess)UnoRuntime.queryInterface(
+ com.sun.star.container.XEnumerationAccess.class, xParaEnum.nextElement());
+ xPortionEnum = aPara.createEnumeration();
+ while ( xPortionEnum.hasMoreElements() ) {
+ com.sun.star.beans.XPropertySet xPortionProps =
+ (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
+ com.sun.star.beans.XPropertySet.class , xPortionEnum.nextElement());
+ final String sPortionType =
+ xPortionProps.getPropertyValue( "TextPortionType" ).toString();
+ if ( sPortionType.equals( "TextField") ) {
+ com.sun.star.text.XTextField xField = (com.sun.star.text.XTextField)UnoRuntime.queryInterface(
+ com.sun.star.text.XTextField.class,
+ xPortionProps.getPropertyValue( "TextField" ) );
+ assertNotNull("Cannot retrieve next field.", xField);
+ return xField;
}
- } catch (com.sun.star.container.NoSuchElementException e) {
- System.out.println("Cannot retrieve next field.");
- e.printStackTrace();
- failed(e.getMessage());
- return null;
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- System.out.println("Cannot retrieve next field.");
- e.printStackTrace();
- failed(e.getMessage());
- return null;
- } catch (com.sun.star.lang.WrappedTargetException e) {
- System.out.println("Cannot retrieve next field.");
- e.printStackTrace();
- failed(e.getMessage());
- return null;
}
}
- if ( xField == null ) {
- System.out.println("Cannot retrieve next field.");
- failed("Cannot retrieve next field.");
- return null;
- }
-
- return xField;
+ fail("Cannot retrieve next field.");
+ return null; // unreachable
}
public com.sun.star.beans.XPropertySet getFieldProps(
@@ -126,11 +99,7 @@ public class CheckCrossReferences extends ComplexTestCase {
(com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
com.sun.star.beans.XPropertySet.class, xField );
- if ( xProps == null ) {
- System.out.println("Cannot retrieve field properties.");
- failed("Cannot retrieve field properties.");
- return null;
- }
+ assertNotNull("Cannot retrieve field properties.", xProps);
return xProps;
}
@@ -138,56 +107,26 @@ public class CheckCrossReferences extends ComplexTestCase {
public void checkField( com.sun.star.text.XTextField xField,
com.sun.star.beans.XPropertySet xProps,
short nFormat,
- String aExpectedFldResult ) {
+ String aExpectedFldResult )
+ throws com.sun.star.uno.Exception
+ {
// set requested format
- try {
- xProps.setPropertyValue("ReferenceFieldPart", new Short(nFormat));
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- System.out.println("Cannot set ReferenceFieldPart property at field.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- } catch (com.sun.star.beans.PropertyVetoException e) {
- System.out.println("Cannot set ReferenceFieldPart property at field.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- } catch (com.sun.star.lang.WrappedTargetException e) {
- System.out.println("Cannot set ReferenceFieldPart property at field.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- System.out.println("Cannot set ReferenceFieldPart property at field.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- }
+ xProps.setPropertyValue("ReferenceFieldPart", new Short(nFormat));
+
// refresh fields in order to get new format applied
xFldsRefresh.refresh();
String aFldResult = xField.getPresentation( false );
- assure( "set reference field format doesn't result in correct field result",
- aFldResult.equals(aExpectedFldResult), true );
+ assertEquals( "set reference field format doesn't result in correct field result",
+ aExpectedFldResult, aFldResult);
}
- public void checkCrossReferences() throws com.sun.star.uno.Exception {
- // load test document
- try {
- XMultiServiceFactory xMSF = (XMultiServiceFactory)param.getMSF();
- xDoc = util.WriterTools.loadTextDoc( xMSF, util.utils.getFullTestURL("CheckCrossReferences.odt"));
- } catch(com.sun.star.uno.RuntimeException e) {
- System.out.println("Cannot load test document.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- }
-
+ @Test public void checkCrossReferences() throws com.sun.star.uno.Exception {
// setup paragraph enumeration
{
com.sun.star.container.XEnumerationAccess xParaEnumAccess =
(com.sun.star.container.XEnumerationAccess)UnoRuntime.queryInterface(
- com.sun.star.container.XEnumerationAccess.class, xDoc.getText());
+ com.sun.star.container.XEnumerationAccess.class, document.getText());
xParaEnum = xParaEnumAccess.createEnumeration();
}
@@ -195,7 +134,7 @@ public class CheckCrossReferences extends ComplexTestCase {
{
com.sun.star.text.XTextFieldsSupplier xFieldSupp =
(com.sun.star.text.XTextFieldsSupplier)UnoRuntime.queryInterface(
- com.sun.star.text.XTextFieldsSupplier.class, xDoc);
+ com.sun.star.text.XTextFieldsSupplier.class, document);
xFldsRefresh = (com.sun.star.util.XRefreshable)UnoRuntime.queryInterface(
com.sun.star.util.XRefreshable.class, xFieldSupp.getTextFields());
}
@@ -214,7 +153,6 @@ public class CheckCrossReferences extends ComplexTestCase {
com.sun.star.text.XTextField xField = null;
com.sun.star.beans.XPropertySet xProps = null;
- log.println( "Checking field reference formats NUMBER, NUMBER_NO_CONTEXT and NUMBER_FULL_CONTEXT for existing fields" );
xField = getNextField();
xProps = getFieldProps( xField );
checkField( xField, xProps, com.sun.star.text.ReferenceFieldPart.NUMBER, FldResult2 );
@@ -254,63 +192,36 @@ public class CheckCrossReferences extends ComplexTestCase {
// insert a certain cross-reference bookmark and a reference field to this bookmark
{
- log.println("Checking insert of cross-reference bookmark and corresponding reference field");
// restart paragraph enumeration
com.sun.star.container.XEnumerationAccess xParaEnumAccess =
(com.sun.star.container.XEnumerationAccess)UnoRuntime.queryInterface(
- com.sun.star.container.XEnumerationAccess.class, xDoc.getText());
+ com.sun.star.container.XEnumerationAccess.class, document.getText());
xParaEnum = xParaEnumAccess.createEnumeration();
// iterate on the paragraphs to find certain paragraph to insert the bookmark
com.sun.star.text.XTextRange xParaTextRange = null;
while ( xParaEnum.hasMoreElements() ) {
- try {
- xParaTextRange = (com.sun.star.text.XTextRange)UnoRuntime.queryInterface(
- com.sun.star.text.XTextRange.class, xParaEnum.nextElement());
- if ( xParaTextRange.getString().equals( "J" ) ) {
- break;
- }
- else {
- xParaTextRange = null;
- }
- } catch (com.sun.star.container.NoSuchElementException e) {
- System.out.println("Cannot find paragraph to insert cross-reference bookmark.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- } catch (com.sun.star.lang.WrappedTargetException e) {
- System.out.println("Cannot find paragraph to insert cross-reference bookmark.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
+ xParaTextRange = (com.sun.star.text.XTextRange)UnoRuntime.queryInterface(
+ com.sun.star.text.XTextRange.class, xParaEnum.nextElement());
+ if ( xParaTextRange.getString().equals( "J" ) ) {
+ break;
+ }
+ else {
+ xParaTextRange = null;
}
}
- if ( xParaTextRange == null ) {
- System.out.println("Cannot find paragraph to insert cross-reference bookmark.");
- failed("Cannot find paragraph to insert cross-reference bookmark.");
- return;
- }
+ assertNotNull(
+ "Cannot find paragraph to insert cross-reference bookmark.",
+ xParaTextRange);
// insert bookmark
XMultiServiceFactory xFac = (XMultiServiceFactory)UnoRuntime.queryInterface(
- XMultiServiceFactory.class, xDoc);
+ XMultiServiceFactory.class, document);
final String cBookmarkName = "__RefNumPara__47114711";
- com.sun.star.text.XTextContent xBookmark = null;
- try {
- xBookmark = (com.sun.star.text.XTextContent)UnoRuntime.queryInterface(
- com.sun.star.text.XTextContent.class,
- xFac.createInstance( "com.sun.star.text.Bookmark" ) );
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- System.out.println("Cannot create bookmark.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- } catch (com.sun.star.uno.Exception e) {
- System.out.println("Cannot create bookmark.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- }
+ com.sun.star.text.XTextContent xBookmark =
+ (com.sun.star.text.XTextContent)UnoRuntime.queryInterface(
+ com.sun.star.text.XTextContent.class,
+ xFac.createInstance( "com.sun.star.text.Bookmark" ) );
if ( xBookmark != null ) {
com.sun.star.container.XNamed xName =
(com.sun.star.container.XNamed)UnoRuntime.queryInterface(
@@ -320,22 +231,10 @@ public class CheckCrossReferences extends ComplexTestCase {
}
// insert reference field, which references the inserted bookmark
- com.sun.star.text.XTextContent xNewField = null;
- try {
- xNewField = (com.sun.star.text.XTextContent)UnoRuntime.queryInterface(
- com.sun.star.text.XTextContent.class,
- xFac.createInstance( "com.sun.star.text.TextField.GetReference" ) );
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- System.out.println("Cannot create new field.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- } catch (com.sun.star.uno.Exception e) {
- System.out.println("Cannot create new field.");
- e.printStackTrace();
- failed(e.getMessage());
- return;
- }
+ com.sun.star.text.XTextContent xNewField =
+ (com.sun.star.text.XTextContent)UnoRuntime.queryInterface(
+ com.sun.star.text.XTextContent.class,
+ xFac.createInstance( "com.sun.star.text.TextField.GetReference" ) );
if ( xNewField != null ) {
com.sun.star.beans.XPropertySet xFieldProps =
(com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
@@ -354,16 +253,39 @@ public class CheckCrossReferences extends ComplexTestCase {
com.sun.star.text.XTextField xField =
(com.sun.star.text.XTextField)UnoRuntime.queryInterface(
com.sun.star.text.XTextField.class, xNewField );
- assure( "inserted reference field doesn't has correct field result",
- xField.getPresentation( false ).equals("J"), true );
+ assertEquals( "inserted reference field doesn't has correct field result",
+ "J", xField.getPresentation( false ) );
xParaTextRange.getStart().setString( "Hallo new bookmark: " );
xFldsRefresh.refresh();
- assure( "inserted reference field doesn't has correct field result. Instead it's: "+xField.getPresentation( false ),
- xField.getPresentation( false ).equals("Hallo new bookmark: J"), true );
+ assertEquals( "inserted reference field doesn't has correct field result",
+ "Hallo new bookmark: J", xField.getPresentation( false ) );
}
+ }
+
+ @Before public void setUpDocument() throws com.sun.star.uno.Exception {
+ document = util.WriterTools.loadTextDoc(
+ UnoRuntime.queryInterface(
+ XMultiServiceFactory.class,
+ connection.getComponentContext().getServiceManager()),
+ TestDocument.getUrl("CheckCrossReferences.odt"));
+ }
- // closing test document
- util.DesktopTools.closeDoc( xDoc );
+ @After public void tearDownDocument() {
+ util.DesktopTools.closeDoc(document);
}
+
+ private XTextDocument document = null;
+
+ @BeforeClass public static void setUpConnection() throws Exception {
+ connection.setUp();
+ }
+
+ @AfterClass public static void tearDownConnection()
+ throws InterruptedException, com.sun.star.uno.Exception
+ {
+ connection.tearDown();
+ }
+
+ private static final OfficeConnection connection = new OfficeConnection();
}