1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski package ifc.ui.dialogs; 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski import lib.MultiMethodTest; 27*b1cdbd2cSJim Jagielski import lib.Status; 28*b1cdbd2cSJim Jagielski import lib.StatusException; 29*b1cdbd2cSJim Jagielski import util.ValueChanger; 30*b1cdbd2cSJim Jagielski import util.ValueComparer; 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski import com.sun.star.ui.dialogs.XFilePickerControlAccess; 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski /** 35*b1cdbd2cSJim Jagielski * Testing <code>com.sun.star.ui.XFilePickerControlAccess</code> 36*b1cdbd2cSJim Jagielski * interface methods : 37*b1cdbd2cSJim Jagielski * <ul> 38*b1cdbd2cSJim Jagielski * <li><code> setValue()</code></li> 39*b1cdbd2cSJim Jagielski * <li><code> getValue()</code></li> 40*b1cdbd2cSJim Jagielski * <li><code> setLabel()</code></li> 41*b1cdbd2cSJim Jagielski * <li><code> getLabel()</code></li> 42*b1cdbd2cSJim Jagielski * <li><code> getFocused()</code></li> 43*b1cdbd2cSJim Jagielski * <li><code> enableControl()</code></li> 44*b1cdbd2cSJim Jagielski * </ul> <p> 45*b1cdbd2cSJim Jagielski * This test needs the following object relations : 46*b1cdbd2cSJim Jagielski * <ul> 47*b1cdbd2cSJim Jagielski * <li> <code>'XFilePickerControlAccess.ControlID'</code> (of type 48*b1cdbd2cSJim Jagielski * <code>Short</code>) : control identifier in the extended 49*b1cdbd2cSJim Jagielski * FilePicker dialog. </li> 50*b1cdbd2cSJim Jagielski * <li> <code>'XFilePickerControlAccess.ControlValue'</code> (of type 51*b1cdbd2cSJim Jagielski * <code>Object</code>) <b>optional</b> (but mostly desireable 52*b1cdbd2cSJim Jagielski * since the control has emtpy initial value): 53*b1cdbd2cSJim Jagielski * the value which can set for the control . </li> 54*b1cdbd2cSJim Jagielski * <ul> <p> 55*b1cdbd2cSJim Jagielski * Test is <b> NOT </b> multithread compilant. <p> 56*b1cdbd2cSJim Jagielski * @see com.sun.star.ui.XFilePickerControlAccess 57*b1cdbd2cSJim Jagielski */ 58*b1cdbd2cSJim Jagielski public class _XFilePickerControlAccess extends MultiMethodTest { 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski public XFilePickerControlAccess oObj = null; 61*b1cdbd2cSJim Jagielski private short cntlID = -1 ; 62*b1cdbd2cSJim Jagielski private Object oldVal = null ; 63*b1cdbd2cSJim Jagielski private String oldLab = null ; 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski /** 66*b1cdbd2cSJim Jagielski * Retrieves object relations. 67*b1cdbd2cSJim Jagielski * @throws StatusException If one of relations not found. 68*b1cdbd2cSJim Jagielski */ before()69*b1cdbd2cSJim Jagielski public void before() { 70*b1cdbd2cSJim Jagielski Short ID = (Short) tEnv.getObjRelation 71*b1cdbd2cSJim Jagielski ("XFilePickerControlAccess.ControlID") ; 72*b1cdbd2cSJim Jagielski if (ID == null) { 73*b1cdbd2cSJim Jagielski log.println("!!! Relation not found !!!") ; 74*b1cdbd2cSJim Jagielski throw new StatusException(Status.failed("Relation not found")) ; 75*b1cdbd2cSJim Jagielski } 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski cntlID = ID.shortValue() ; 78*b1cdbd2cSJim Jagielski } 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski /** 81*b1cdbd2cSJim Jagielski * Gets the value of the control and stores it. <p> 82*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if no runtime exceptions occured. 83*b1cdbd2cSJim Jagielski */ _getValue()84*b1cdbd2cSJim Jagielski public void _getValue() { 85*b1cdbd2cSJim Jagielski boolean result = true ; 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski try { 88*b1cdbd2cSJim Jagielski oldVal = oObj.getValue(cntlID,(short)0); 89*b1cdbd2cSJim Jagielski } catch (Exception e) { 90*b1cdbd2cSJim Jagielski e.printStackTrace(log) ; 91*b1cdbd2cSJim Jagielski result = false ; 92*b1cdbd2cSJim Jagielski } 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski tRes.tested("getValue()", result) ; 95*b1cdbd2cSJim Jagielski } 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielski /** 98*b1cdbd2cSJim Jagielski * Changes the value gotten by <code>getValue</code> method, 99*b1cdbd2cSJim Jagielski * or gets the value from relation if it exits. 100*b1cdbd2cSJim Jagielski * Sets this value and then check if it was properly set. <p> 101*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if <code>getValue</code> method returns 102*b1cdbd2cSJim Jagielski * the same value which was set. <p> 103*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 104*b1cdbd2cSJim Jagielski * <ul> 105*b1cdbd2cSJim Jagielski * <li> <code> getValue </code> </li> 106*b1cdbd2cSJim Jagielski * </ul> 107*b1cdbd2cSJim Jagielski */ _setValue()108*b1cdbd2cSJim Jagielski public void _setValue() { 109*b1cdbd2cSJim Jagielski requiredMethod("getValue()") ; 110*b1cdbd2cSJim Jagielski boolean result = true ; 111*b1cdbd2cSJim Jagielski 112*b1cdbd2cSJim Jagielski Object newVal = tEnv.getObjRelation 113*b1cdbd2cSJim Jagielski ("XFilePickerControlAccess.ControlValue"); 114*b1cdbd2cSJim Jagielski if (newVal == null) { 115*b1cdbd2cSJim Jagielski newVal = ValueChanger.changePValue(oldVal) ; 116*b1cdbd2cSJim Jagielski } 117*b1cdbd2cSJim Jagielski 118*b1cdbd2cSJim Jagielski Object getVal = null ; 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski try { 121*b1cdbd2cSJim Jagielski oObj.setValue(cntlID, (short)0 , newVal) ; 122*b1cdbd2cSJim Jagielski getVal = oObj.getValue(cntlID,(short)0) ; 123*b1cdbd2cSJim Jagielski } catch (Exception e) { 124*b1cdbd2cSJim Jagielski e.printStackTrace(log) ; 125*b1cdbd2cSJim Jagielski result = false ; 126*b1cdbd2cSJim Jagielski } 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski result &= ValueComparer.equalValue(newVal, getVal) ; 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski tRes.tested("setValue()", result) ; 131*b1cdbd2cSJim Jagielski } 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski /** 134*b1cdbd2cSJim Jagielski * Gets the label of the control and stores it. <p> 135*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if no runtime exceptions occured. 136*b1cdbd2cSJim Jagielski */ _getLabel()137*b1cdbd2cSJim Jagielski public void _getLabel() { 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielski try { 140*b1cdbd2cSJim Jagielski oldLab = oObj.getLabel(cntlID); 141*b1cdbd2cSJim Jagielski } catch (Exception e) { 142*b1cdbd2cSJim Jagielski e.printStackTrace(log) ; 143*b1cdbd2cSJim Jagielski } 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski tRes.tested("getLabel()", oldLab != null) ; 146*b1cdbd2cSJim Jagielski } 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski /** 149*b1cdbd2cSJim Jagielski * Changes the label gotten by <code>getLabel</code> method, 150*b1cdbd2cSJim Jagielski * set this label and then check if it was properly set. <p> 151*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if <code>getLael</code> method returns 152*b1cdbd2cSJim Jagielski * the same value which was set. <p> 153*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 154*b1cdbd2cSJim Jagielski * <ul> 155*b1cdbd2cSJim Jagielski * <li> <code> getLabel </code> </li> 156*b1cdbd2cSJim Jagielski * </ul> 157*b1cdbd2cSJim Jagielski */ _setLabel()158*b1cdbd2cSJim Jagielski public void _setLabel() { 159*b1cdbd2cSJim Jagielski requiredMethod("getLabel()") ; 160*b1cdbd2cSJim Jagielski boolean result = true ; 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski String newVal = oldLab + "_" ; 163*b1cdbd2cSJim Jagielski String getVal = null ; 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski try { 166*b1cdbd2cSJim Jagielski oObj.setLabel(cntlID, newVal) ; 167*b1cdbd2cSJim Jagielski getVal = oObj.getLabel(cntlID) ; 168*b1cdbd2cSJim Jagielski } catch (Exception e) { 169*b1cdbd2cSJim Jagielski e.printStackTrace(log) ; 170*b1cdbd2cSJim Jagielski result = false ; 171*b1cdbd2cSJim Jagielski } 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielski result &= newVal.equals(getVal) ; 174*b1cdbd2cSJim Jagielski 175*b1cdbd2cSJim Jagielski tRes.tested("setLabel()", result) ; 176*b1cdbd2cSJim Jagielski } 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski /** 179*b1cdbd2cSJim Jagielski * Disables and then enables the control. Can be checked only 180*b1cdbd2cSJim Jagielski * interactively. <p> 181*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if no runtime exceptions occured. 182*b1cdbd2cSJim Jagielski */ _enableControl()183*b1cdbd2cSJim Jagielski public void _enableControl() { 184*b1cdbd2cSJim Jagielski boolean result = true ; 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski try { 187*b1cdbd2cSJim Jagielski oObj.enableControl(cntlID, false) ; 188*b1cdbd2cSJim Jagielski oObj.enableControl(cntlID, true) ; 189*b1cdbd2cSJim Jagielski } catch (Exception e) { 190*b1cdbd2cSJim Jagielski e.printStackTrace(log) ; 191*b1cdbd2cSJim Jagielski result = false ; 192*b1cdbd2cSJim Jagielski } 193*b1cdbd2cSJim Jagielski 194*b1cdbd2cSJim Jagielski tRes.tested("enableControl()", result) ; 195*b1cdbd2cSJim Jagielski } 196*b1cdbd2cSJim Jagielski } 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski 199