1*ef39d40dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*ef39d40dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*ef39d40dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*ef39d40dSAndrew Rist  * distributed with this work for additional information
6*ef39d40dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*ef39d40dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*ef39d40dSAndrew Rist  * "License"); you may not use this file except in compliance
9*ef39d40dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*ef39d40dSAndrew Rist  *
11*ef39d40dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*ef39d40dSAndrew Rist  *
13*ef39d40dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*ef39d40dSAndrew Rist  * software distributed under the License is distributed on an
15*ef39d40dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ef39d40dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*ef39d40dSAndrew Rist  * specific language governing permissions and limitations
18*ef39d40dSAndrew Rist  * under the License.
19*ef39d40dSAndrew Rist  *
20*ef39d40dSAndrew Rist  *************************************************************/
21*ef39d40dSAndrew Rist 
22*ef39d40dSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir package ifc.document;
25cdf0e10cSrcweir 
26cdf0e10cSrcweir import lib.MultiMethodTest;
27cdf0e10cSrcweir 
28cdf0e10cSrcweir import com.sun.star.document.XDocumentInfo;
29cdf0e10cSrcweir import com.sun.star.lang.ArrayIndexOutOfBoundsException;
30cdf0e10cSrcweir 
31cdf0e10cSrcweir /**
32cdf0e10cSrcweir * Testing <code>com.sun.star.document.XDocumentInfo</code>
33cdf0e10cSrcweir * interface methods :
34cdf0e10cSrcweir * <ul>
35cdf0e10cSrcweir *  <li><code> getUserFieldCount()</code></li>
36cdf0e10cSrcweir *  <li><code> getUserFieldName()</code></li>
37cdf0e10cSrcweir *  <li><code> setUserFieldName()</code></li>
38cdf0e10cSrcweir *  <li><code> getUserFieldValue()</code></li>
39cdf0e10cSrcweir *  <li><code> setUserFieldValue()</code></li>
40cdf0e10cSrcweir * </ul> <p>
41cdf0e10cSrcweir * Test is <b> NOT </b> multithread compilant. <p>
42cdf0e10cSrcweir * @see com.sun.star.document.XDocumentInfo
43cdf0e10cSrcweir */
44cdf0e10cSrcweir public class _XDocumentInfo extends MultiMethodTest {
45cdf0e10cSrcweir 
46cdf0e10cSrcweir     public XDocumentInfo oObj = null;
47cdf0e10cSrcweir 
48cdf0e10cSrcweir     short fieldCount;
49cdf0e10cSrcweir 
50cdf0e10cSrcweir     /**
51cdf0e10cSrcweir     * Gets user field count. <p>
52cdf0e10cSrcweir     * Has <b> OK </b> status if count is positive.
53cdf0e10cSrcweir     */
_getUserFieldCount()54cdf0e10cSrcweir     public void _getUserFieldCount() {
55cdf0e10cSrcweir         fieldCount = oObj.getUserFieldCount();
56cdf0e10cSrcweir         tRes.tested("getUserFieldCount()", fieldCount >= 0);
57cdf0e10cSrcweir     }
58cdf0e10cSrcweir 
59cdf0e10cSrcweir     String[] oldNames;
60cdf0e10cSrcweir     String[] oldValues;
61cdf0e10cSrcweir 
62cdf0e10cSrcweir     /**
63cdf0e10cSrcweir     * Retrieves all user field names and stores them. <p>
64cdf0e10cSrcweir     * Has <b> OK </b> status if no exceptions were thrown and
65cdf0e10cSrcweir     * names returned are not <code>null</code> values. <p>
66cdf0e10cSrcweir     * The following method tests are to be completed successfully before :
67cdf0e10cSrcweir     * <ul>
68cdf0e10cSrcweir     *  <li> <code> getUserFieldCount() </code> : to obtain number of
69cdf0e10cSrcweir     *    fields </li>
70cdf0e10cSrcweir     * </ul>
71cdf0e10cSrcweir     */
_getUserFieldName()72cdf0e10cSrcweir     public void _getUserFieldName() {
73cdf0e10cSrcweir         requiredMethod("getUserFieldCount()");
74cdf0e10cSrcweir 
75cdf0e10cSrcweir         oldNames = new String[fieldCount];
76cdf0e10cSrcweir 
77cdf0e10cSrcweir         for (short i = 0; i < fieldCount; i++) {
78cdf0e10cSrcweir             try {
79cdf0e10cSrcweir                 oldNames[i] = oObj.getUserFieldName(i);
80cdf0e10cSrcweir                 if (oldNames[i] == null) {
81cdf0e10cSrcweir                     tRes.tested("getUserFieldName()", false);
82cdf0e10cSrcweir                     return;
83cdf0e10cSrcweir                 }
84cdf0e10cSrcweir             } catch (ArrayIndexOutOfBoundsException e) {
85cdf0e10cSrcweir                 log.println("Couldn't get an user field name at " + i);
86cdf0e10cSrcweir                 tRes.tested("getUserFieldName()", false);
87cdf0e10cSrcweir                 return;
88cdf0e10cSrcweir             }
89cdf0e10cSrcweir         }
90cdf0e10cSrcweir 
91cdf0e10cSrcweir         tRes.tested("getUserFieldName()", true);
92cdf0e10cSrcweir     }
93cdf0e10cSrcweir 
94cdf0e10cSrcweir     /**
95cdf0e10cSrcweir     * For each field its name changed and the checked if it's properly
96cdf0e10cSrcweir     * changed. Finally old names are restored.<p>
97cdf0e10cSrcweir     * Has <b> OK </b> status if names were properly changed. <p>
98cdf0e10cSrcweir     * The following method tests are to be completed successfully before :
99cdf0e10cSrcweir     * <ul>
100cdf0e10cSrcweir     *  <li> <code> getUserFieldName() </code> : to retrieve old names </li>
101cdf0e10cSrcweir     * </ul>
102cdf0e10cSrcweir     */
_setUserFieldName()103cdf0e10cSrcweir     public void _setUserFieldName() {
104cdf0e10cSrcweir         requiredMethod("getUserFieldName()");
105cdf0e10cSrcweir 
106cdf0e10cSrcweir         for (short i = 0; i < fieldCount; i++) {
107cdf0e10cSrcweir             String newName = oldNames[i] + "_new";
108cdf0e10cSrcweir 
109cdf0e10cSrcweir             try {
110cdf0e10cSrcweir                 oObj.setUserFieldName(i, newName);
111cdf0e10cSrcweir             } catch (ArrayIndexOutOfBoundsException e) {
112cdf0e10cSrcweir                 log.println("Couldn't set an user field name at " + i);
113cdf0e10cSrcweir                 tRes.tested("setUserFieldName()", false);
114cdf0e10cSrcweir                 return;
115cdf0e10cSrcweir             }
116cdf0e10cSrcweir 
117cdf0e10cSrcweir             try {
118cdf0e10cSrcweir                 if (!newName.equals(oObj.getUserFieldName(i))) {
119cdf0e10cSrcweir                     tRes.tested("setUserFieldName()", false);
120cdf0e10cSrcweir                     return;
121cdf0e10cSrcweir                 }
122cdf0e10cSrcweir             } catch (ArrayIndexOutOfBoundsException e) {
123cdf0e10cSrcweir                 log.println("Couldn't set an user field name at " + i);
124cdf0e10cSrcweir                 tRes.tested("setUserFieldName()", false);
125cdf0e10cSrcweir                 return;
126cdf0e10cSrcweir             } finally {
127cdf0e10cSrcweir                 try {
128cdf0e10cSrcweir                     oObj.setUserFieldName(i, oldNames[i]);
129cdf0e10cSrcweir                 } catch (ArrayIndexOutOfBoundsException e) {
130cdf0e10cSrcweir                     log.println("Couldn't restore an user field name at " + i);
131cdf0e10cSrcweir                     tRes.tested("setUserFieldName()", false);
132cdf0e10cSrcweir                     return;
133cdf0e10cSrcweir                 }
134cdf0e10cSrcweir             }
135cdf0e10cSrcweir         }
136cdf0e10cSrcweir 
137cdf0e10cSrcweir         tRes.tested("setUserFieldName()", true);
138cdf0e10cSrcweir     }
139cdf0e10cSrcweir 
140cdf0e10cSrcweir 
141cdf0e10cSrcweir     /**
142cdf0e10cSrcweir     * Retrieves all user field values and stores them. <p>
143cdf0e10cSrcweir     * Has <b> OK </b> status if no exceptions were thrown and
144cdf0e10cSrcweir     * values returned are not <code>null</code> values. <p>
145cdf0e10cSrcweir     * The following method tests are to be completed successfully before :
146cdf0e10cSrcweir     * <ul>
147cdf0e10cSrcweir     *  <li> <code> getUserFieldCount() </code> : to obtain number of
148cdf0e10cSrcweir     *    fields </li>
149cdf0e10cSrcweir     * </ul>
150cdf0e10cSrcweir     */
_getUserFieldValue()151cdf0e10cSrcweir     public void _getUserFieldValue() {
152cdf0e10cSrcweir         requiredMethod("getUserFieldCount()");
153cdf0e10cSrcweir 
154cdf0e10cSrcweir         oldValues = new String[fieldCount];
155cdf0e10cSrcweir 
156cdf0e10cSrcweir         for (short i = 0; i < fieldCount; i++) {
157cdf0e10cSrcweir             try {
158cdf0e10cSrcweir                 oldValues[i] = oObj.getUserFieldValue(i);
159cdf0e10cSrcweir                 if (oldValues[i] == null) {
160cdf0e10cSrcweir                     tRes.tested("getUserFieldValue()", false);
161cdf0e10cSrcweir                     return;
162cdf0e10cSrcweir                 }
163cdf0e10cSrcweir             } catch (ArrayIndexOutOfBoundsException e) {
164cdf0e10cSrcweir                 log.println("Couldn't get an user field value at " + i);
165cdf0e10cSrcweir                 tRes.tested("getUserFieldValue()", false);
166cdf0e10cSrcweir                 return;
167cdf0e10cSrcweir             }
168cdf0e10cSrcweir         }
169cdf0e10cSrcweir 
170cdf0e10cSrcweir         tRes.tested("getUserFieldValue()", true);
171cdf0e10cSrcweir     }
172cdf0e10cSrcweir 
173cdf0e10cSrcweir     /**
174cdf0e10cSrcweir     * For each field its value changed and the checked if it's properly
175cdf0e10cSrcweir     * changed. Finally old values are restored.<p>
176cdf0e10cSrcweir     * Has <b> OK </b> status if values were properly changed. <p>
177cdf0e10cSrcweir     * The following method tests are to be completed successfully before :
178cdf0e10cSrcweir     * <ul>
179cdf0e10cSrcweir     *  <li> <code> getUserFieldValue() </code> : to retrieve old values. </li>
180cdf0e10cSrcweir     * </ul>
181cdf0e10cSrcweir     */
_setUserFieldValue()182cdf0e10cSrcweir     public void _setUserFieldValue() {
183cdf0e10cSrcweir         requiredMethod("getUserFieldValue()");
184cdf0e10cSrcweir 
185cdf0e10cSrcweir         for (short i = 0; i < fieldCount; i++) {
186cdf0e10cSrcweir             String newValue = oldValues[i] + "_new";
187cdf0e10cSrcweir 
188cdf0e10cSrcweir             try {
189cdf0e10cSrcweir                 oObj.setUserFieldValue(i, newValue);
190cdf0e10cSrcweir             } catch (ArrayIndexOutOfBoundsException e) {
191cdf0e10cSrcweir                 log.println("Couldn't set an user field value at " + i);
192cdf0e10cSrcweir                 tRes.tested("setUserFieldValue()", false);
193cdf0e10cSrcweir                 return;
194cdf0e10cSrcweir             }
195cdf0e10cSrcweir 
196cdf0e10cSrcweir             try {
197cdf0e10cSrcweir                 if (!newValue.equals(oObj.getUserFieldValue(i))) {
198cdf0e10cSrcweir                     tRes.tested("setUserFieldValue()", false);
199cdf0e10cSrcweir                     return;
200cdf0e10cSrcweir                 }
201cdf0e10cSrcweir             } catch (ArrayIndexOutOfBoundsException e) {
202cdf0e10cSrcweir                 log.println("Couldn't set an user field value at " + i);
203cdf0e10cSrcweir                 tRes.tested("setUserFieldValue()", false);
204cdf0e10cSrcweir                 return;
205cdf0e10cSrcweir             } finally {
206cdf0e10cSrcweir                 try {
207cdf0e10cSrcweir                     oObj.setUserFieldValue(i, oldNames[i]);
208cdf0e10cSrcweir                 } catch (ArrayIndexOutOfBoundsException e) {
209cdf0e10cSrcweir                     log.println("Couldn't restore an user field value at " + i);
210cdf0e10cSrcweir                     tRes.tested("setUserFieldValue()", false);
211cdf0e10cSrcweir                     return;
212cdf0e10cSrcweir                 }
213cdf0e10cSrcweir             }
214cdf0e10cSrcweir         }
215cdf0e10cSrcweir 
216cdf0e10cSrcweir         tRes.tested("setUserFieldValue()", true);
217cdf0e10cSrcweir     }
218cdf0e10cSrcweir 
219cdf0e10cSrcweir }  // finish class _XDocumentInfo
220cdf0e10cSrcweir 
221