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 package ifc.registry; 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielski import lib.MultiMethodTest; 26*b1cdbd2cSJim Jagielski import lib.Status; 27*b1cdbd2cSJim Jagielski import lib.StatusException; 28*b1cdbd2cSJim Jagielski import util.RegistryTools; 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski import com.sun.star.lang.XMultiServiceFactory; 31*b1cdbd2cSJim Jagielski import com.sun.star.registry.InvalidRegistryException; 32*b1cdbd2cSJim Jagielski import com.sun.star.registry.XRegistryKey; 33*b1cdbd2cSJim Jagielski import com.sun.star.registry.XSimpleRegistry; 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski /** 37*b1cdbd2cSJim Jagielski * Testing <code>com.sun.star.registry.XSimpleRegistry</code> 38*b1cdbd2cSJim Jagielski * interface methods : 39*b1cdbd2cSJim Jagielski * <ul> 40*b1cdbd2cSJim Jagielski * <li><code> getURL()</code></li> 41*b1cdbd2cSJim Jagielski * <li><code> open()</code></li> 42*b1cdbd2cSJim Jagielski * <li><code> isValid()</code></li> 43*b1cdbd2cSJim Jagielski * <li><code> close()</code></li> 44*b1cdbd2cSJim Jagielski * <li><code> destroy()</code></li> 45*b1cdbd2cSJim Jagielski * <li><code> getRootKey()</code></li> 46*b1cdbd2cSJim Jagielski * <li><code> isReadOnly()</code></li> 47*b1cdbd2cSJim Jagielski * <li><code> mergeKey()</code></li> 48*b1cdbd2cSJim Jagielski * </ul> <p> 49*b1cdbd2cSJim Jagielski * This test needs the following object relations : 50*b1cdbd2cSJim Jagielski * <ul> 51*b1cdbd2cSJim Jagielski * <li> <code>'NR'</code> <b>optional</b> (of type <code>String</code>): 52*b1cdbd2cSJim Jagielski * if this object relation isn't null than the testing component 53*b1cdbd2cSJim Jagielski * doesn't support some methods of the interface 54*b1cdbd2cSJim Jagielski * (<code>open(), close(), destroy()</code>)</li> 55*b1cdbd2cSJim Jagielski * <li> <code>'XSimpleRegistry.open'</code> (of type <code>String</code>): 56*b1cdbd2cSJim Jagielski * The full system path to the registry file which is opened and modified. 57*b1cdbd2cSJim Jagielski * </li> 58*b1cdbd2cSJim Jagielski * <li> <code>'XSimpleRegistry.destroy'</code> (of type <code>String</code>): 59*b1cdbd2cSJim Jagielski * The full system path to the registry fiel which is destroyed. 60*b1cdbd2cSJim Jagielski * </li> 61*b1cdbd2cSJim Jagielski * <li> <code>'XSimpleRegistry.merge'</code> (of type <code>String</code>): 62*b1cdbd2cSJim Jagielski * The full system path to the registry file which is merged with the 63*b1cdbd2cSJim Jagielski * registry tested. 64*b1cdbd2cSJim Jagielski * </li> 65*b1cdbd2cSJim Jagielski * </ul> <p> 66*b1cdbd2cSJim Jagielski * @see com.sun.star.registry.XSimpleRegistry 67*b1cdbd2cSJim Jagielski */ 68*b1cdbd2cSJim Jagielski public class _XSimpleRegistry extends MultiMethodTest { 69*b1cdbd2cSJim Jagielski public XSimpleRegistry oObj = null; 70*b1cdbd2cSJim Jagielski protected String nr = null; 71*b1cdbd2cSJim Jagielski protected boolean configuration = false; 72*b1cdbd2cSJim Jagielski protected String openF = null; 73*b1cdbd2cSJim Jagielski protected String destroyF = null; 74*b1cdbd2cSJim Jagielski protected String mergeF = null; 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski /** 77*b1cdbd2cSJim Jagielski * Retrieves object relations. 78*b1cdbd2cSJim Jagielski * @throws StatusException If one of required relations not found. 79*b1cdbd2cSJim Jagielski */ before()80*b1cdbd2cSJim Jagielski protected void before() { 81*b1cdbd2cSJim Jagielski if (tEnv.getObjRelation("configuration") != null) { 82*b1cdbd2cSJim Jagielski configuration = true; 83*b1cdbd2cSJim Jagielski } 84*b1cdbd2cSJim Jagielski 85*b1cdbd2cSJim Jagielski nr = (String) tEnv.getObjRelation("NR"); 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski openF = (String) tEnv.getObjRelation("XSimpleRegistry.open"); 88*b1cdbd2cSJim Jagielski 89*b1cdbd2cSJim Jagielski if (openF == null) { 90*b1cdbd2cSJim Jagielski throw new StatusException(Status.failed( 91*b1cdbd2cSJim Jagielski "Relation 'XSimpleRegistry.open' not found")); 92*b1cdbd2cSJim Jagielski } 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski destroyF = (String) tEnv.getObjRelation("XSimpleRegistry.destroy"); 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski if (destroyF == null) { 97*b1cdbd2cSJim Jagielski throw new StatusException(Status.failed( 98*b1cdbd2cSJim Jagielski "Relation 'XSimpleRegistry.destroy' not found")); 99*b1cdbd2cSJim Jagielski } 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski mergeF = (String) tEnv.getObjRelation("XSimpleRegistry.merge"); 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski if (mergeF == null) { 104*b1cdbd2cSJim Jagielski throw new StatusException(Status.failed( 105*b1cdbd2cSJim Jagielski "Relation 'XSimpleRegistry.merge' not found")); 106*b1cdbd2cSJim Jagielski } 107*b1cdbd2cSJim Jagielski } 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski /** 110*b1cdbd2cSJim Jagielski * If the method is supported opens the registry key with the URL 111*b1cdbd2cSJim Jagielski * from <code>'XSimpleRegistry.open'</code> relation, then closes it. <p> 112*b1cdbd2cSJim Jagielski * 113*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the method isn't supported by the component 114*b1cdbd2cSJim Jagielski * (the object relation <code>'NR'</code> isn't null) or no exceptions were 115*b1cdbd2cSJim Jagielski * thrown during open/close operations. <p> 116*b1cdbd2cSJim Jagielski */ _open()117*b1cdbd2cSJim Jagielski public void _open() { 118*b1cdbd2cSJim Jagielski if (nr != null) { 119*b1cdbd2cSJim Jagielski log.println("'open()' isn't supported by '" + nr + "'"); 120*b1cdbd2cSJim Jagielski tRes.tested("open()", true); 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski return; 123*b1cdbd2cSJim Jagielski } 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski log.println("Trying to open registry :" + openF); 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski try { 128*b1cdbd2cSJim Jagielski oObj.open(openF, false, true); 129*b1cdbd2cSJim Jagielski oObj.close(); 130*b1cdbd2cSJim Jagielski } catch (InvalidRegistryException e) { 131*b1cdbd2cSJim Jagielski e.printStackTrace(log); 132*b1cdbd2cSJim Jagielski tRes.tested("open()", false); 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski return; 135*b1cdbd2cSJim Jagielski } 136*b1cdbd2cSJim Jagielski 137*b1cdbd2cSJim Jagielski tRes.tested("open()", true); 138*b1cdbd2cSJim Jagielski } 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski /** 141*b1cdbd2cSJim Jagielski * Test opens the registry key with the URL from 142*b1cdbd2cSJim Jagielski * <code>'XSimpleRegistry.open'</code> relation not only for read, 143*b1cdbd2cSJim Jagielski * calls the method, checks returned value and closes the registry. <p> 144*b1cdbd2cSJim Jagielski * 145*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if returned value is false and no exceptions were 146*b1cdbd2cSJim Jagielski * thrown. <p> 147*b1cdbd2cSJim Jagielski */ _isReadOnly()148*b1cdbd2cSJim Jagielski public void _isReadOnly() { 149*b1cdbd2cSJim Jagielski boolean result = false; 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski try { 152*b1cdbd2cSJim Jagielski openReg(oObj, openF, false, true); 153*b1cdbd2cSJim Jagielski result = !oObj.isReadOnly(); 154*b1cdbd2cSJim Jagielski closeReg(oObj); 155*b1cdbd2cSJim Jagielski } catch (InvalidRegistryException e) { 156*b1cdbd2cSJim Jagielski e.printStackTrace(log); 157*b1cdbd2cSJim Jagielski result = false; 158*b1cdbd2cSJim Jagielski } 159*b1cdbd2cSJim Jagielski 160*b1cdbd2cSJim Jagielski tRes.tested("isReadOnly()", result); 161*b1cdbd2cSJim Jagielski } 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski /** 164*b1cdbd2cSJim Jagielski * Test opens the registry key with the URL from 165*b1cdbd2cSJim Jagielski * <code>'XSimpleRegistry.open'</code> relation, calls the method, 166*b1cdbd2cSJim Jagielski * checks returned value and closes the registry key. <p> 167*b1cdbd2cSJim Jagielski * 168*b1cdbd2cSJim Jagielski * Has <b>OK</b> status if returned value isn't null and no exceptions were 169*b1cdbd2cSJim Jagielski * thrown. <p> 170*b1cdbd2cSJim Jagielski */ _getRootKey()171*b1cdbd2cSJim Jagielski public void _getRootKey() { 172*b1cdbd2cSJim Jagielski boolean result = false; 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim Jagielski try { 175*b1cdbd2cSJim Jagielski openReg(oObj, openF, false, true); 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski XRegistryKey rootKey = oObj.getRootKey(); 178*b1cdbd2cSJim Jagielski result = rootKey != null; 179*b1cdbd2cSJim Jagielski closeReg(oObj); 180*b1cdbd2cSJim Jagielski } catch (InvalidRegistryException e) { 181*b1cdbd2cSJim Jagielski e.printStackTrace(log); 182*b1cdbd2cSJim Jagielski result = false; 183*b1cdbd2cSJim Jagielski } 184*b1cdbd2cSJim Jagielski 185*b1cdbd2cSJim Jagielski tRes.tested("getRootKey()", result); 186*b1cdbd2cSJim Jagielski } 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski /** 189*b1cdbd2cSJim Jagielski * Merges the current registry with the registry from URL got from 190*b1cdbd2cSJim Jagielski * <code>'XSimpleRegistry.merge'</code> relation under 'MergeKey' key. 191*b1cdbd2cSJim Jagielski * Then the keys of these two registries retrieved : 192*b1cdbd2cSJim Jagielski * <ul> 193*b1cdbd2cSJim Jagielski * <li> Root key from 'XSimpleRegistry.merge' registry </li> 194*b1cdbd2cSJim Jagielski * <li> 'MergeKey' key from the current registry </li> 195*b1cdbd2cSJim Jagielski * </ul> 196*b1cdbd2cSJim Jagielski * Then these two keys are recursively compared. <p> 197*b1cdbd2cSJim Jagielski * 198*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the method isn't supported by the component 199*b1cdbd2cSJim Jagielski * (the object relation <code>'NR'</code> isn't null) 200*b1cdbd2cSJim Jagielski * or 201*b1cdbd2cSJim Jagielski * if it's supported and after successfull merging the keys mentioned 202*b1cdbd2cSJim Jagielski * above are recursively equal. <p> 203*b1cdbd2cSJim Jagielski */ _mergeKey()204*b1cdbd2cSJim Jagielski public void _mergeKey() { 205*b1cdbd2cSJim Jagielski if (configuration) { 206*b1cdbd2cSJim Jagielski log.println( 207*b1cdbd2cSJim Jagielski "You can't merge into this registry. It's just a wrapper for a configuration node, which has a fixed structure which can not be modified"); 208*b1cdbd2cSJim Jagielski tRes.tested("mergeKey()", true); 209*b1cdbd2cSJim Jagielski 210*b1cdbd2cSJim Jagielski return; 211*b1cdbd2cSJim Jagielski } 212*b1cdbd2cSJim Jagielski 213*b1cdbd2cSJim Jagielski if (nr != null) { 214*b1cdbd2cSJim Jagielski log.println("'mergeKey()' isn't supported by '" + nr + "'"); 215*b1cdbd2cSJim Jagielski tRes.tested("mergeKey()", true); 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski return; 218*b1cdbd2cSJim Jagielski } 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski openReg(oObj, openF, false, true); 221*b1cdbd2cSJim Jagielski 222*b1cdbd2cSJim Jagielski try { 223*b1cdbd2cSJim Jagielski RegistryTools.printRegistryInfo(oObj.getRootKey(), log); 224*b1cdbd2cSJim Jagielski oObj.mergeKey("MergeKey", mergeF); 225*b1cdbd2cSJim Jagielski RegistryTools.printRegistryInfo(oObj.getRootKey(), log); 226*b1cdbd2cSJim Jagielski } catch (com.sun.star.registry.MergeConflictException e) { 227*b1cdbd2cSJim Jagielski e.printStackTrace(log); 228*b1cdbd2cSJim Jagielski tRes.tested("mergeKey()", false); 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski return; 231*b1cdbd2cSJim Jagielski } catch (com.sun.star.registry.InvalidRegistryException e) { 232*b1cdbd2cSJim Jagielski e.printStackTrace(log); 233*b1cdbd2cSJim Jagielski tRes.tested("mergeKey()", false); 234*b1cdbd2cSJim Jagielski 235*b1cdbd2cSJim Jagielski return; 236*b1cdbd2cSJim Jagielski } 237*b1cdbd2cSJim Jagielski 238*b1cdbd2cSJim Jagielski boolean isEqual = false; 239*b1cdbd2cSJim Jagielski XSimpleRegistry reg = null; 240*b1cdbd2cSJim Jagielski 241*b1cdbd2cSJim Jagielski try { 242*b1cdbd2cSJim Jagielski reg = RegistryTools.createRegistryService((XMultiServiceFactory) tParam.getMSF()); 243*b1cdbd2cSJim Jagielski } catch (com.sun.star.uno.Exception e) { 244*b1cdbd2cSJim Jagielski log.print("Can't create registry service: "); 245*b1cdbd2cSJim Jagielski e.printStackTrace(log); 246*b1cdbd2cSJim Jagielski tRes.tested("mergeKey()", false); 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski return; 249*b1cdbd2cSJim Jagielski } 250*b1cdbd2cSJim Jagielski 251*b1cdbd2cSJim Jagielski openReg(reg, mergeF, false, true); 252*b1cdbd2cSJim Jagielski 253*b1cdbd2cSJim Jagielski try { 254*b1cdbd2cSJim Jagielski XRegistryKey key = oObj.getRootKey().openKey("MergeKey"); 255*b1cdbd2cSJim Jagielski XRegistryKey mergeKey = reg.getRootKey(); 256*b1cdbd2cSJim Jagielski isEqual = RegistryTools.compareKeyTrees(key, mergeKey); 257*b1cdbd2cSJim Jagielski } catch (com.sun.star.registry.InvalidRegistryException e) { 258*b1cdbd2cSJim Jagielski log.print("Can't get root key: "); 259*b1cdbd2cSJim Jagielski e.printStackTrace(log); 260*b1cdbd2cSJim Jagielski tRes.tested("mergeKey()", false); 261*b1cdbd2cSJim Jagielski 262*b1cdbd2cSJim Jagielski return; 263*b1cdbd2cSJim Jagielski } 264*b1cdbd2cSJim Jagielski 265*b1cdbd2cSJim Jagielski closeReg(reg); 266*b1cdbd2cSJim Jagielski closeReg(oObj); 267*b1cdbd2cSJim Jagielski 268*b1cdbd2cSJim Jagielski tRes.tested("mergeKey()", isEqual); 269*b1cdbd2cSJim Jagielski } 270*b1cdbd2cSJim Jagielski 271*b1cdbd2cSJim Jagielski /** 272*b1cdbd2cSJim Jagielski * Test opens the registry key with the URL from 273*b1cdbd2cSJim Jagielski * <code>'XSimpleRegistry.open'</code> relation, calls the method, 274*b1cdbd2cSJim Jagielski * checks returned value and closes the registry key. <p> 275*b1cdbd2cSJim Jagielski * 276*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if returned value isn't null and if length of the 277*b1cdbd2cSJim Jagielski * returned string is greater than 0. <p> 278*b1cdbd2cSJim Jagielski */ _getURL()279*b1cdbd2cSJim Jagielski public void _getURL() { 280*b1cdbd2cSJim Jagielski openReg(oObj, openF, false, true); 281*b1cdbd2cSJim Jagielski 282*b1cdbd2cSJim Jagielski String url = oObj.getURL(); 283*b1cdbd2cSJim Jagielski closeReg(oObj); 284*b1cdbd2cSJim Jagielski log.println("Getting URL: " + url+";"); 285*b1cdbd2cSJim Jagielski tRes.tested("getURL()", (url != null)); 286*b1cdbd2cSJim Jagielski } 287*b1cdbd2cSJim Jagielski 288*b1cdbd2cSJim Jagielski /** 289*b1cdbd2cSJim Jagielski * Test checks value returned by the object relation <code>'NR'</code>, 290*b1cdbd2cSJim Jagielski * opens the registry key with the URL from 291*b1cdbd2cSJim Jagielski * <code>XSimpleRegistry.open'</code> relation, calls the method 292*b1cdbd2cSJim Jagielski * and checks the validity of the registry key. <p> 293*b1cdbd2cSJim Jagielski * 294*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the registry key isn't valid after the method 295*b1cdbd2cSJim Jagielski * call, or if the method isn't supported by the component (the object 296*b1cdbd2cSJim Jagielski * relation <code>'NR'</code> isn't null). <p> 297*b1cdbd2cSJim Jagielski */ _close()298*b1cdbd2cSJim Jagielski public void _close() { 299*b1cdbd2cSJim Jagielski if (nr != null) { 300*b1cdbd2cSJim Jagielski log.println("'close()' isn't supported by '" + nr + "'"); 301*b1cdbd2cSJim Jagielski tRes.tested("close()", true); 302*b1cdbd2cSJim Jagielski 303*b1cdbd2cSJim Jagielski return; 304*b1cdbd2cSJim Jagielski } 305*b1cdbd2cSJim Jagielski 306*b1cdbd2cSJim Jagielski try { 307*b1cdbd2cSJim Jagielski oObj.open(openF, false, true); 308*b1cdbd2cSJim Jagielski oObj.close(); 309*b1cdbd2cSJim Jagielski } catch (com.sun.star.registry.InvalidRegistryException e) { 310*b1cdbd2cSJim Jagielski e.printStackTrace(log); 311*b1cdbd2cSJim Jagielski tRes.tested("close()", false); 312*b1cdbd2cSJim Jagielski 313*b1cdbd2cSJim Jagielski return; 314*b1cdbd2cSJim Jagielski } 315*b1cdbd2cSJim Jagielski 316*b1cdbd2cSJim Jagielski tRes.tested("close()", !oObj.isValid()); 317*b1cdbd2cSJim Jagielski } 318*b1cdbd2cSJim Jagielski 319*b1cdbd2cSJim Jagielski /** 320*b1cdbd2cSJim Jagielski * Test checks value returned by the object relation <code>'NR'</code>, 321*b1cdbd2cSJim Jagielski * opens the registry key with the URL from 322*b1cdbd2cSJim Jagielski * <code>'XSimpleRegistry.destroy'</code> relation, calls the method 323*b1cdbd2cSJim Jagielski * and checks the validity of the registry key. <p> 324*b1cdbd2cSJim Jagielski * 325*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the registry key isn't valid after the method 326*b1cdbd2cSJim Jagielski * call, or if the method isn't supported by the component (the object 327*b1cdbd2cSJim Jagielski * relation <code>'NR'</code> isn't null). <p> 328*b1cdbd2cSJim Jagielski */ _destroy()329*b1cdbd2cSJim Jagielski public void _destroy() { 330*b1cdbd2cSJim Jagielski if (configuration) { 331*b1cdbd2cSJim Jagielski log.println( 332*b1cdbd2cSJim Jagielski "This registry is a wrapper for a configuration access. It can not be destroyed."); 333*b1cdbd2cSJim Jagielski tRes.tested("destroy()", true); 334*b1cdbd2cSJim Jagielski 335*b1cdbd2cSJim Jagielski return; 336*b1cdbd2cSJim Jagielski } 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski if (nr != null) { 339*b1cdbd2cSJim Jagielski log.println("'destroy()' isn't supported by '" + nr + "'"); 340*b1cdbd2cSJim Jagielski tRes.tested("destroy()", true); 341*b1cdbd2cSJim Jagielski 342*b1cdbd2cSJim Jagielski return; 343*b1cdbd2cSJim Jagielski } 344*b1cdbd2cSJim Jagielski 345*b1cdbd2cSJim Jagielski try { 346*b1cdbd2cSJim Jagielski oObj.open(destroyF, false, true); 347*b1cdbd2cSJim Jagielski oObj.destroy(); 348*b1cdbd2cSJim Jagielski } catch (com.sun.star.registry.InvalidRegistryException e) { 349*b1cdbd2cSJim Jagielski e.printStackTrace(log); 350*b1cdbd2cSJim Jagielski tRes.tested("destroy()", false); 351*b1cdbd2cSJim Jagielski 352*b1cdbd2cSJim Jagielski return; 353*b1cdbd2cSJim Jagielski } 354*b1cdbd2cSJim Jagielski 355*b1cdbd2cSJim Jagielski tRes.tested("destroy()", !oObj.isValid()); 356*b1cdbd2cSJim Jagielski } 357*b1cdbd2cSJim Jagielski 358*b1cdbd2cSJim Jagielski /** 359*b1cdbd2cSJim Jagielski * Test opens the registry key with the URL from 360*b1cdbd2cSJim Jagielski * <code>'XSimpleRegistry.open'</code> relation, calls the method, 361*b1cdbd2cSJim Jagielski * checks returned value and closes the registry key. <p> 362*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if returned value is true. <p> 363*b1cdbd2cSJim Jagielski */ _isValid()364*b1cdbd2cSJim Jagielski public void _isValid() { 365*b1cdbd2cSJim Jagielski boolean valid = true; 366*b1cdbd2cSJim Jagielski 367*b1cdbd2cSJim Jagielski openReg(oObj, openF, false, true); 368*b1cdbd2cSJim Jagielski valid = oObj.isValid(); 369*b1cdbd2cSJim Jagielski closeReg(oObj); 370*b1cdbd2cSJim Jagielski 371*b1cdbd2cSJim Jagielski tRes.tested("isValid()", valid); 372*b1cdbd2cSJim Jagielski } 373*b1cdbd2cSJim Jagielski 374*b1cdbd2cSJim Jagielski /** 375*b1cdbd2cSJim Jagielski * Method calls <code>close()</code> of the interface 376*b1cdbd2cSJim Jagielski * <code>com.sun.star.registry.XRegistryKey</code>. <p> 377*b1cdbd2cSJim Jagielski * @param reg interface <code>com.sun.star.registry.XRegistryKey</code> 378*b1cdbd2cSJim Jagielski * @param url specifies the complete URL to access the data source 379*b1cdbd2cSJim Jagielski * @param arg1 specifies if the data source should be opened for read only 380*b1cdbd2cSJim Jagielski * @param arg2 specifies if the data source should be created if it does not 381*b1cdbd2cSJim Jagielski * already exist 382*b1cdbd2cSJim Jagielski */ openReg(XSimpleRegistry reg, String url, boolean arg1, boolean arg2)383*b1cdbd2cSJim Jagielski public void openReg(XSimpleRegistry reg, String url, boolean arg1, 384*b1cdbd2cSJim Jagielski boolean arg2) { 385*b1cdbd2cSJim Jagielski if (nr == null) { 386*b1cdbd2cSJim Jagielski try { 387*b1cdbd2cSJim Jagielski reg.open(url, arg1, arg2); 388*b1cdbd2cSJim Jagielski } catch (com.sun.star.registry.InvalidRegistryException e) { 389*b1cdbd2cSJim Jagielski log.print("Couldn't open registry:"); 390*b1cdbd2cSJim Jagielski e.printStackTrace(log); 391*b1cdbd2cSJim Jagielski } 392*b1cdbd2cSJim Jagielski } 393*b1cdbd2cSJim Jagielski } 394*b1cdbd2cSJim Jagielski 395*b1cdbd2cSJim Jagielski /** 396*b1cdbd2cSJim Jagielski * Method calls <code>close()</code> of the interface 397*b1cdbd2cSJim Jagielski * <code>com.sun.star.registry.XRegistryKey</code>. <p> 398*b1cdbd2cSJim Jagielski * @param reg <code>com.sun.star.registry.XRegistryKey</code> 399*b1cdbd2cSJim Jagielski */ closeReg(XSimpleRegistry reg)400*b1cdbd2cSJim Jagielski public void closeReg(XSimpleRegistry reg) { 401*b1cdbd2cSJim Jagielski if (nr == null) { 402*b1cdbd2cSJim Jagielski try { 403*b1cdbd2cSJim Jagielski reg.close(); 404*b1cdbd2cSJim Jagielski } catch (com.sun.star.registry.InvalidRegistryException e) { 405*b1cdbd2cSJim Jagielski log.print("Couldn't close registry:"); 406*b1cdbd2cSJim Jagielski e.printStackTrace(log); 407*b1cdbd2cSJim Jagielski } 408*b1cdbd2cSJim Jagielski } 409*b1cdbd2cSJim Jagielski } 410*b1cdbd2cSJim Jagielski } 411