/************************************************************** * * 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.document; import lib.MultiMethodTest; import com.sun.star.document.XDocumentInfo; import com.sun.star.lang.ArrayIndexOutOfBoundsException; /** * Testing com.sun.star.document.XDocumentInfo * interface methods : *

* Test is NOT multithread compilant.

* @see com.sun.star.document.XDocumentInfo */ public class _XDocumentInfo extends MultiMethodTest { public XDocumentInfo oObj = null; short fieldCount; /** * Gets user field count.

* Has OK status if count is positive. */ public void _getUserFieldCount() { fieldCount = oObj.getUserFieldCount(); tRes.tested("getUserFieldCount()", fieldCount >= 0); } String[] oldNames; String[] oldValues; /** * Retrieves all user field names and stores them.

* Has OK status if no exceptions were thrown and * names returned are not null values.

* The following method tests are to be completed successfully before : *

*/ public void _getUserFieldName() { requiredMethod("getUserFieldCount()"); oldNames = new String[fieldCount]; for (short i = 0; i < fieldCount; i++) { try { oldNames[i] = oObj.getUserFieldName(i); if (oldNames[i] == null) { tRes.tested("getUserFieldName()", false); return; } } catch (ArrayIndexOutOfBoundsException e) { log.println("Couldn't get an user field name at " + i); tRes.tested("getUserFieldName()", false); return; } } tRes.tested("getUserFieldName()", true); } /** * For each field its name changed and the checked if it's properly * changed. Finally old names are restored.

* Has OK status if names were properly changed.

* The following method tests are to be completed successfully before : *

*/ public void _setUserFieldName() { requiredMethod("getUserFieldName()"); for (short i = 0; i < fieldCount; i++) { String newName = oldNames[i] + "_new"; try { oObj.setUserFieldName(i, newName); } catch (ArrayIndexOutOfBoundsException e) { log.println("Couldn't set an user field name at " + i); tRes.tested("setUserFieldName()", false); return; } try { if (!newName.equals(oObj.getUserFieldName(i))) { tRes.tested("setUserFieldName()", false); return; } } catch (ArrayIndexOutOfBoundsException e) { log.println("Couldn't set an user field name at " + i); tRes.tested("setUserFieldName()", false); return; } finally { try { oObj.setUserFieldName(i, oldNames[i]); } catch (ArrayIndexOutOfBoundsException e) { log.println("Couldn't restore an user field name at " + i); tRes.tested("setUserFieldName()", false); return; } } } tRes.tested("setUserFieldName()", true); } /** * Retrieves all user field values and stores them.

* Has OK status if no exceptions were thrown and * values returned are not null values.

* The following method tests are to be completed successfully before : *

*/ public void _getUserFieldValue() { requiredMethod("getUserFieldCount()"); oldValues = new String[fieldCount]; for (short i = 0; i < fieldCount; i++) { try { oldValues[i] = oObj.getUserFieldValue(i); if (oldValues[i] == null) { tRes.tested("getUserFieldValue()", false); return; } } catch (ArrayIndexOutOfBoundsException e) { log.println("Couldn't get an user field value at " + i); tRes.tested("getUserFieldValue()", false); return; } } tRes.tested("getUserFieldValue()", true); } /** * For each field its value changed and the checked if it's properly * changed. Finally old values are restored.

* Has OK status if values were properly changed.

* The following method tests are to be completed successfully before : *

*/ public void _setUserFieldValue() { requiredMethod("getUserFieldValue()"); for (short i = 0; i < fieldCount; i++) { String newValue = oldValues[i] + "_new"; try { oObj.setUserFieldValue(i, newValue); } catch (ArrayIndexOutOfBoundsException e) { log.println("Couldn't set an user field value at " + i); tRes.tested("setUserFieldValue()", false); return; } try { if (!newValue.equals(oObj.getUserFieldValue(i))) { tRes.tested("setUserFieldValue()", false); return; } } catch (ArrayIndexOutOfBoundsException e) { log.println("Couldn't set an user field value at " + i); tRes.tested("setUserFieldValue()", false); return; } finally { try { oObj.setUserFieldValue(i, oldNames[i]); } catch (ArrayIndexOutOfBoundsException e) { log.println("Couldn't restore an user field value at " + i); tRes.tested("setUserFieldValue()", false); return; } } } tRes.tested("setUserFieldValue()", true); } } // finish class _XDocumentInfo