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 28*b1cdbd2cSJim Jagielski import com.sun.star.ui.dialogs.XControlInformation; 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski /** 31*b1cdbd2cSJim Jagielski * Testing <code>com.sun.star.ui.XControlInformation</code> 32*b1cdbd2cSJim Jagielski * interface methods : 33*b1cdbd2cSJim Jagielski * <ul> 34*b1cdbd2cSJim Jagielski * <li><code> getSupportedControls()</code></li> 35*b1cdbd2cSJim Jagielski * <li><code> isControlSupported()</code></li> 36*b1cdbd2cSJim Jagielski * <li><code> getSupportedControlProperties()</code></li> 37*b1cdbd2cSJim Jagielski * <li><code> isControlPropertySupported()</code></li> 38*b1cdbd2cSJim Jagielski * </ul> <p> 39*b1cdbd2cSJim Jagielski * 40*b1cdbd2cSJim Jagielski * @see com.sun.star.ui.XFolderPicker 41*b1cdbd2cSJim Jagielski */ 42*b1cdbd2cSJim Jagielski public class _XControlInformation extends MultiMethodTest { 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski public XControlInformation oObj = null; 45*b1cdbd2cSJim Jagielski private String[] supControls = null ; 46*b1cdbd2cSJim Jagielski private String[][] supProperties = null ; 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski /** 49*b1cdbd2cSJim Jagielski * Gets supported controls and stores them. <p> 50*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if not <code>null</code> returned. 51*b1cdbd2cSJim Jagielski */ _getSupportedControls()52*b1cdbd2cSJim Jagielski public void _getSupportedControls() { 53*b1cdbd2cSJim Jagielski supControls = oObj.getSupportedControls(); 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski tRes.tested("getSupportedControls()", supControls != null) ; 56*b1cdbd2cSJim Jagielski } 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski /** 59*b1cdbd2cSJim Jagielski * For every available control check if it is supported. 60*b1cdbd2cSJim Jagielski * Also wrong control name (non-existant and empty) are checked.<p> 61*b1cdbd2cSJim Jagielski * 62*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if <code>true</code> returned for valid 63*b1cdbd2cSJim Jagielski * control names and <code>false</code> for invalid.<p> 64*b1cdbd2cSJim Jagielski * 65*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 66*b1cdbd2cSJim Jagielski * <ul> 67*b1cdbd2cSJim Jagielski * <li> <code> getSupportedControls </code> to have 68*b1cdbd2cSJim Jagielski * valid control names</li> 69*b1cdbd2cSJim Jagielski * </ul> 70*b1cdbd2cSJim Jagielski */ _isControlSupported()71*b1cdbd2cSJim Jagielski public void _isControlSupported() { 72*b1cdbd2cSJim Jagielski requiredMethod("getSupportedControls()") ; 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski boolean result = true ; 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski log.println("Supported controls :"); 77*b1cdbd2cSJim Jagielski for (int i = 0; i < supControls.length; i++) { 78*b1cdbd2cSJim Jagielski log.println(" " + supControls[i]); 79*b1cdbd2cSJim Jagielski result &= oObj.isControlSupported(supControls[i]) ; 80*b1cdbd2cSJim Jagielski } 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski result &= !oObj.isControlSupported("SuchNameMustNotExist"); 83*b1cdbd2cSJim Jagielski result &= !oObj.isControlSupported(""); 84*b1cdbd2cSJim Jagielski 85*b1cdbd2cSJim Jagielski tRes.tested("isControlSupported()", result) ; 86*b1cdbd2cSJim Jagielski } 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski /** 89*b1cdbd2cSJim Jagielski * For each control obtains its properties and stores them. Then tries to 90*b1cdbd2cSJim Jagielski * obtain properties for control with invalid name. <p> 91*b1cdbd2cSJim Jagielski * 92*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if properties arrays are not null and exception 93*b1cdbd2cSJim Jagielski * thrown or null returned for control with invalid name <p> 94*b1cdbd2cSJim Jagielski * 95*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 96*b1cdbd2cSJim Jagielski * <ul> 97*b1cdbd2cSJim Jagielski * <li> <code> getSupportedControls </code> to have 98*b1cdbd2cSJim Jagielski * valid control names</li> 99*b1cdbd2cSJim Jagielski * </ul> 100*b1cdbd2cSJim Jagielski */ _getSupportedControlProperties()101*b1cdbd2cSJim Jagielski public void _getSupportedControlProperties() { 102*b1cdbd2cSJim Jagielski requiredMethod("getSupportedControls()") ; 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski boolean result = true; 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski supProperties = new String[supControls.length][]; 107*b1cdbd2cSJim Jagielski for (int i = 0; i < supControls.length; i++) { 108*b1cdbd2cSJim Jagielski log.println("Getting proeprties for control: " + supControls[i]); 109*b1cdbd2cSJim Jagielski try { 110*b1cdbd2cSJim Jagielski supProperties[i] = 111*b1cdbd2cSJim Jagielski oObj.getSupportedControlProperties(supControls[i]); 112*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IllegalArgumentException e) { 113*b1cdbd2cSJim Jagielski log.println("Unexpected exception:" + e); 114*b1cdbd2cSJim Jagielski result = false ; 115*b1cdbd2cSJim Jagielski } 116*b1cdbd2cSJim Jagielski result &= supProperties[i] != null; 117*b1cdbd2cSJim Jagielski } 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski try { 120*b1cdbd2cSJim Jagielski Object prop = oObj.getSupportedControlProperties("NoSuchControl") ; 121*b1cdbd2cSJim Jagielski result &= prop == null; 122*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IllegalArgumentException e) { 123*b1cdbd2cSJim Jagielski log.println("Expected exception getting properties " + 124*b1cdbd2cSJim Jagielski "for wrong control:" + e); 125*b1cdbd2cSJim Jagielski } 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski tRes.tested("getSupportedControlProperties()", true) ; 128*b1cdbd2cSJim Jagielski } 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski /** 131*b1cdbd2cSJim Jagielski * <ul> 132*b1cdbd2cSJim Jagielski * <li>For each property of each control checks if it is supported.</li> 133*b1cdbd2cSJim Jagielski * <li>For each control checks if non-existent property 134*b1cdbd2cSJim Jagielski * (with wrong name and with empty name) supported.</li> 135*b1cdbd2cSJim Jagielski * <li>Tries to check the property of non-existent control </li> 136*b1cdbd2cSJim Jagielski * </ul> 137*b1cdbd2cSJim Jagielski * <p> 138*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if <code>true</code> returned for the first case, 139*b1cdbd2cSJim Jagielski * <code>false</code> for the second, and <code>false</code> or exception 140*b1cdbd2cSJim Jagielski * for the third.<p> 141*b1cdbd2cSJim Jagielski * 142*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 143*b1cdbd2cSJim Jagielski * <ul> 144*b1cdbd2cSJim Jagielski * <li> <code> getSupportedControlProperties </code> to have a set of 145*b1cdbd2cSJim Jagielski * valid properties </li> 146*b1cdbd2cSJim Jagielski * </ul> 147*b1cdbd2cSJim Jagielski */ _isControlPropertySupported()148*b1cdbd2cSJim Jagielski public void _isControlPropertySupported() { 149*b1cdbd2cSJim Jagielski requiredMethod("getSupportedControlProperties()") ; 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski boolean result = true; 152*b1cdbd2cSJim Jagielski 153*b1cdbd2cSJim Jagielski for (int i = 0; i < supControls.length; i++) { 154*b1cdbd2cSJim Jagielski log.println("Checking proeprties for control " + supControls[i]); 155*b1cdbd2cSJim Jagielski for (int j = 0; j < supProperties[i].length; j++) { 156*b1cdbd2cSJim Jagielski log.println(" " + supProperties[i][j]); 157*b1cdbd2cSJim Jagielski try { 158*b1cdbd2cSJim Jagielski result &= oObj.isControlPropertySupported 159*b1cdbd2cSJim Jagielski (supControls[i], supProperties[i][j]) ; 160*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IllegalArgumentException e) { 161*b1cdbd2cSJim Jagielski log.println("Unexpected exception:" + e); 162*b1cdbd2cSJim Jagielski result = false ; 163*b1cdbd2cSJim Jagielski } 164*b1cdbd2cSJim Jagielski } 165*b1cdbd2cSJim Jagielski 166*b1cdbd2cSJim Jagielski try { 167*b1cdbd2cSJim Jagielski result &= !oObj.isControlPropertySupported 168*b1cdbd2cSJim Jagielski (supControls[i], "NoSuchPropertyForThisControl") ; 169*b1cdbd2cSJim Jagielski result &= !oObj.isControlPropertySupported 170*b1cdbd2cSJim Jagielski (supControls[i], "") ; 171*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IllegalArgumentException e) { 172*b1cdbd2cSJim Jagielski log.println 173*b1cdbd2cSJim Jagielski ("Unexpected exception (just false must be returned):" + e); 174*b1cdbd2cSJim Jagielski result = false ; 175*b1cdbd2cSJim Jagielski } 176*b1cdbd2cSJim Jagielski } 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski try { 179*b1cdbd2cSJim Jagielski result &= !oObj.isControlPropertySupported("NoSuchControl", "") ; 180*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IllegalArgumentException e) { 181*b1cdbd2cSJim Jagielski log.println("Expected exception: " + e); 182*b1cdbd2cSJim Jagielski } 183*b1cdbd2cSJim Jagielski 184*b1cdbd2cSJim Jagielski tRes.tested("isControlPropertySupported()", result) ; 185*b1cdbd2cSJim Jagielski } 186*b1cdbd2cSJim Jagielski } 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski 189