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.configuration.backend; 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielski import com.sun.star.configuration.backend.XLayer; 26*b1cdbd2cSJim Jagielski import com.sun.star.configuration.backend.XLayerHandler; 27*b1cdbd2cSJim Jagielski import com.sun.star.io.XActiveDataSink; 28*b1cdbd2cSJim Jagielski import com.sun.star.io.XInputStream; 29*b1cdbd2cSJim Jagielski import com.sun.star.lang.XMultiServiceFactory; 30*b1cdbd2cSJim Jagielski import com.sun.star.ucb.XSimpleFileAccess; 31*b1cdbd2cSJim Jagielski import com.sun.star.uno.Type; 32*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski import lib.MultiMethodTest; 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski import util.XLayerHandlerImpl; 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski public class _XLayerHandler extends MultiMethodTest { 40*b1cdbd2cSJim Jagielski public XLayerHandler oObj = null; 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski /** this method contains the logic for all test methods 43*b1cdbd2cSJim Jagielski * the others will be passed OK if this one is 44*b1cdbd2cSJim Jagielski */ _endLayer()45*b1cdbd2cSJim Jagielski public void _endLayer() { 46*b1cdbd2cSJim Jagielski boolean res = false; 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski try { 49*b1cdbd2cSJim Jagielski oObj.startLayer(); 50*b1cdbd2cSJim Jagielski oObj.overrideNode("org.openoffice.Setup", (short) 0, false); 51*b1cdbd2cSJim Jagielski oObj.overrideNode("Office", (short) 0, false); 52*b1cdbd2cSJim Jagielski oObj.overrideProperty("ooSetupInstCompleted", (short) 0, 53*b1cdbd2cSJim Jagielski new Type(java.lang.String.class), false); 54*b1cdbd2cSJim Jagielski oObj.setPropertyValue(new Boolean(false)); 55*b1cdbd2cSJim Jagielski oObj.endProperty(); 56*b1cdbd2cSJim Jagielski oObj.overrideProperty("ooSetupShowIntro", (short) 0, 57*b1cdbd2cSJim Jagielski new Type(java.lang.String.class), false); 58*b1cdbd2cSJim Jagielski oObj.setPropertyValue(new Boolean(true)); 59*b1cdbd2cSJim Jagielski oObj.endProperty(); 60*b1cdbd2cSJim Jagielski oObj.overrideProperty("ooSetupLocales", (short) 0, 61*b1cdbd2cSJim Jagielski new Type(java.lang.String.class), false); 62*b1cdbd2cSJim Jagielski oObj.setPropertyValue("en-US"); 63*b1cdbd2cSJim Jagielski oObj.endProperty(); 64*b1cdbd2cSJim Jagielski oObj.overrideNode("Factories", (short) 0, false); 65*b1cdbd2cSJim Jagielski oObj.addOrReplaceNode("com.sun.star.chart.ChartDocument", 66*b1cdbd2cSJim Jagielski (short) 0); 67*b1cdbd2cSJim Jagielski oObj.overrideProperty("ooSetupFactoryEmptyDocumentURL", (short) 0, 68*b1cdbd2cSJim Jagielski new Type(java.lang.String.class), false); 69*b1cdbd2cSJim Jagielski oObj.setPropertyValue("private:factory/schart"); 70*b1cdbd2cSJim Jagielski oObj.endProperty(); 71*b1cdbd2cSJim Jagielski oObj.overrideProperty("ooSetupFactoryIcon", (short) 0, 72*b1cdbd2cSJim Jagielski new Type(java.lang.Long.class), false); 73*b1cdbd2cSJim Jagielski oObj.setPropertyValue(new Integer(13)); 74*b1cdbd2cSJim Jagielski oObj.endProperty(); 75*b1cdbd2cSJim Jagielski oObj.overrideProperty("ooSetupFactoryShortName", (short) 0, 76*b1cdbd2cSJim Jagielski new Type(java.lang.String.class), false); 77*b1cdbd2cSJim Jagielski oObj.setPropertyValue("schart"); 78*b1cdbd2cSJim Jagielski oObj.setPropertyValueForLocale("TemplateFile", "en-US"); 79*b1cdbd2cSJim Jagielski oObj.endProperty(); 80*b1cdbd2cSJim Jagielski oObj.overrideProperty("ooSetupFactoryTemplateFile", (short) 0, 81*b1cdbd2cSJim Jagielski new Type(java.lang.String.class), false); 82*b1cdbd2cSJim Jagielski oObj.setPropertyValue("empty"); 83*b1cdbd2cSJim Jagielski oObj.endProperty(); 84*b1cdbd2cSJim Jagielski oObj.addProperty("ooSetupFactoryTemplateFile", (short) 0, 85*b1cdbd2cSJim Jagielski new Type(java.lang.String.class)); 86*b1cdbd2cSJim Jagielski oObj.addPropertyWithValue("ooSetupFactoryTemplateFile", (short) 0, 87*b1cdbd2cSJim Jagielski "TemplateFile"); 88*b1cdbd2cSJim Jagielski oObj.endNode(); 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski oObj.addOrReplaceNode("dropme", (short) 0); 91*b1cdbd2cSJim Jagielski oObj.overrideProperty("anyway", (short) 0, 92*b1cdbd2cSJim Jagielski new Type(java.lang.String.class), false); 93*b1cdbd2cSJim Jagielski oObj.setPropertyValue("nice"); 94*b1cdbd2cSJim Jagielski oObj.endProperty(); 95*b1cdbd2cSJim Jagielski oObj.dropNode("dropme"); 96*b1cdbd2cSJim Jagielski oObj.endNode(); 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski oObj.addOrReplaceNodeFromTemplate("FromTemplate", 99*b1cdbd2cSJim Jagielski new com.sun.star.configuration.backend.TemplateIdentifier( 100*b1cdbd2cSJim Jagielski "org.openoffice.Setup", 101*b1cdbd2cSJim Jagielski "Setup"), (short) 0); 102*b1cdbd2cSJim Jagielski oObj.endNode(); 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski oObj.endNode(); 105*b1cdbd2cSJim Jagielski oObj.endNode(); 106*b1cdbd2cSJim Jagielski oObj.endNode(); 107*b1cdbd2cSJim Jagielski oObj.endLayer(); 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski Object LayerParser = ((XMultiServiceFactory) tParam.getMSF()).createInstance( 110*b1cdbd2cSJim Jagielski "com.sun.star.comp.configuration.backend.xml.LayerParser"); 111*b1cdbd2cSJim Jagielski 112*b1cdbd2cSJim Jagielski XActiveDataSink xSink = (XActiveDataSink) UnoRuntime.queryInterface( 113*b1cdbd2cSJim Jagielski XActiveDataSink.class, LayerParser); 114*b1cdbd2cSJim Jagielski Object fileacc = ((XMultiServiceFactory) tParam.getMSF()).createInstance( 115*b1cdbd2cSJim Jagielski "com.sun.star.comp.ucb.SimpleFileAccess"); 116*b1cdbd2cSJim Jagielski XSimpleFileAccess simpleAccess = (XSimpleFileAccess) UnoRuntime.queryInterface( 117*b1cdbd2cSJim Jagielski XSimpleFileAccess.class, 118*b1cdbd2cSJim Jagielski fileacc); 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski String filename = util.utils.getOfficeTemp( 121*b1cdbd2cSJim Jagielski (XMultiServiceFactory) tParam.getMSF()) + 122*b1cdbd2cSJim Jagielski "LayerWriter.xcu"; 123*b1cdbd2cSJim Jagielski log.println("Going to parse: " + filename); 124*b1cdbd2cSJim Jagielski 125*b1cdbd2cSJim Jagielski XInputStream xStream = simpleAccess.openFileRead(filename); 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski xSink.setInputStream(xStream); 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski XLayer xLayer = (XLayer) UnoRuntime.queryInterface(XLayer.class, 130*b1cdbd2cSJim Jagielski LayerParser); 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski XLayerHandlerImpl xLayerHandler = new XLayerHandlerImpl(); 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski xLayer.readData(xLayerHandler); 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski res = xLayerHandler.getCalls().equals(getExpected()); 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski if (!res) { 139*b1cdbd2cSJim Jagielski log.println("#### Getting: "); 140*b1cdbd2cSJim Jagielski log.println(xLayerHandler.getCalls()); 141*b1cdbd2cSJim Jagielski log.println("#### Expected: "); 142*b1cdbd2cSJim Jagielski log.println(getExpected()); 143*b1cdbd2cSJim Jagielski } 144*b1cdbd2cSJim Jagielski } catch (com.sun.star.configuration.backend.MalformedDataException e) { 145*b1cdbd2cSJim Jagielski log.println("Unexpected Exception " + e); 146*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.WrappedTargetException e) { 147*b1cdbd2cSJim Jagielski log.println("Unexpected Exception " + e); 148*b1cdbd2cSJim Jagielski } catch (com.sun.star.uno.Exception e) { 149*b1cdbd2cSJim Jagielski log.println("Unexpected Exception " + e); 150*b1cdbd2cSJim Jagielski } 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski tRes.tested("endLayer()", res); 153*b1cdbd2cSJim Jagielski } 154*b1cdbd2cSJim Jagielski _addOrReplaceNode()155*b1cdbd2cSJim Jagielski public void _addOrReplaceNode() { 156*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 157*b1cdbd2cSJim Jagielski tRes.tested("addOrReplaceNode()", true); 158*b1cdbd2cSJim Jagielski } 159*b1cdbd2cSJim Jagielski _addOrReplaceNodeFromTemplate()160*b1cdbd2cSJim Jagielski public void _addOrReplaceNodeFromTemplate() { 161*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 162*b1cdbd2cSJim Jagielski tRes.tested("addOrReplaceNodeFromTemplate()", true); 163*b1cdbd2cSJim Jagielski } 164*b1cdbd2cSJim Jagielski _addProperty()165*b1cdbd2cSJim Jagielski public void _addProperty() { 166*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 167*b1cdbd2cSJim Jagielski tRes.tested("addProperty()", true); 168*b1cdbd2cSJim Jagielski } 169*b1cdbd2cSJim Jagielski _addPropertyWithValue()170*b1cdbd2cSJim Jagielski public void _addPropertyWithValue() { 171*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 172*b1cdbd2cSJim Jagielski tRes.tested("addPropertyWithValue()", true); 173*b1cdbd2cSJim Jagielski } 174*b1cdbd2cSJim Jagielski _dropNode()175*b1cdbd2cSJim Jagielski public void _dropNode() { 176*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 177*b1cdbd2cSJim Jagielski tRes.tested("dropNode()", true); 178*b1cdbd2cSJim Jagielski } 179*b1cdbd2cSJim Jagielski _endNode()180*b1cdbd2cSJim Jagielski public void _endNode() { 181*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 182*b1cdbd2cSJim Jagielski tRes.tested("endNode()", true); 183*b1cdbd2cSJim Jagielski } 184*b1cdbd2cSJim Jagielski _endProperty()185*b1cdbd2cSJim Jagielski public void _endProperty() { 186*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 187*b1cdbd2cSJim Jagielski tRes.tested("endProperty()", true); 188*b1cdbd2cSJim Jagielski } 189*b1cdbd2cSJim Jagielski _overrideNode()190*b1cdbd2cSJim Jagielski public void _overrideNode() { 191*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 192*b1cdbd2cSJim Jagielski tRes.tested("overrideNode()", true); 193*b1cdbd2cSJim Jagielski } 194*b1cdbd2cSJim Jagielski _overrideProperty()195*b1cdbd2cSJim Jagielski public void _overrideProperty() { 196*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 197*b1cdbd2cSJim Jagielski tRes.tested("overrideProperty()", true); 198*b1cdbd2cSJim Jagielski } 199*b1cdbd2cSJim Jagielski _setPropertyValue()200*b1cdbd2cSJim Jagielski public void _setPropertyValue() { 201*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 202*b1cdbd2cSJim Jagielski tRes.tested("setPropertyValue()", true); 203*b1cdbd2cSJim Jagielski } 204*b1cdbd2cSJim Jagielski _setPropertyValueForLocale()205*b1cdbd2cSJim Jagielski public void _setPropertyValueForLocale() { 206*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 207*b1cdbd2cSJim Jagielski tRes.tested("setPropertyValueForLocale()", true); 208*b1cdbd2cSJim Jagielski } 209*b1cdbd2cSJim Jagielski _startLayer()210*b1cdbd2cSJim Jagielski public void _startLayer() { 211*b1cdbd2cSJim Jagielski requiredMethod("endLayer()"); 212*b1cdbd2cSJim Jagielski tRes.tested("startLayer()", true); 213*b1cdbd2cSJim Jagielski } 214*b1cdbd2cSJim Jagielski getExpected()215*b1cdbd2cSJim Jagielski protected String getExpected() { 216*b1cdbd2cSJim Jagielski String ls = System.getProperty("line.separator"); 217*b1cdbd2cSJim Jagielski String expected = "startLayer();" + ls; 218*b1cdbd2cSJim Jagielski expected += ("overrideNode(org.openoffice.Setup,0,false);" + ls); 219*b1cdbd2cSJim Jagielski expected += ("overrideNode(Office,0,false);" + ls); 220*b1cdbd2cSJim Jagielski expected += ("overrideProperty(ooSetupInstCompleted,0,Type[string],false);" + ls); 221*b1cdbd2cSJim Jagielski expected += ("setPropertyValue(false);" + ls); 222*b1cdbd2cSJim Jagielski expected += ("endProperty();" + ls); 223*b1cdbd2cSJim Jagielski expected += ("overrideProperty(ooSetupShowIntro,0,Type[string],false);" + ls); 224*b1cdbd2cSJim Jagielski expected += ("setPropertyValue(true);" + ls); 225*b1cdbd2cSJim Jagielski expected += ("endProperty();" + ls); 226*b1cdbd2cSJim Jagielski expected += ("overrideProperty(ooSetupLocales,0,Type[string],false);" + ls); 227*b1cdbd2cSJim Jagielski expected += ("setPropertyValue(en-US);" + ls); 228*b1cdbd2cSJim Jagielski expected += ("endProperty();" + ls); 229*b1cdbd2cSJim Jagielski expected += ("overrideNode(Factories,0,false);" + ls); 230*b1cdbd2cSJim Jagielski expected += ("addOrReplace(com.sun.star.chart.ChartDocument,0);" + ls); 231*b1cdbd2cSJim Jagielski expected += ("overrideProperty(ooSetupFactoryEmptyDocumentURL,0,Type[string],false);" + ls); 232*b1cdbd2cSJim Jagielski expected += ("setPropertyValue(private:factory/schart);" + ls); 233*b1cdbd2cSJim Jagielski expected += ("endProperty();" + ls); 234*b1cdbd2cSJim Jagielski expected += ("overrideProperty(ooSetupFactoryIcon,0,Type[hyper],false);" + ls); 235*b1cdbd2cSJim Jagielski expected += ("setPropertyValue(13);" + ls); 236*b1cdbd2cSJim Jagielski expected += ("endProperty();" + ls); 237*b1cdbd2cSJim Jagielski expected += ("overrideProperty(ooSetupFactoryShortName,0,Type[string],false);" + ls); 238*b1cdbd2cSJim Jagielski expected += ("setPropertyValue(schart);" + ls); 239*b1cdbd2cSJim Jagielski expected += ("setPropertyValueForLocale(TemplateFile,en-US);" + ls); 240*b1cdbd2cSJim Jagielski expected += ("endProperty();" + ls); 241*b1cdbd2cSJim Jagielski expected += ("overrideProperty(ooSetupFactoryTemplateFile,0,Type[string],false);" + ls); 242*b1cdbd2cSJim Jagielski expected += ("setPropertyValue(empty);" + ls); 243*b1cdbd2cSJim Jagielski expected += ("endProperty();" + ls); 244*b1cdbd2cSJim Jagielski expected += ("addProperty(ooSetupFactoryTemplateFile,0,Type[string]);" + ls); 245*b1cdbd2cSJim Jagielski expected += ("addPropertyWithValue(ooSetupFactoryTemplateFile,0,TemplateFile);" + ls); 246*b1cdbd2cSJim Jagielski expected += ("endNode();" + ls); 247*b1cdbd2cSJim Jagielski expected += ("addOrReplace(dropme,0);" + ls); 248*b1cdbd2cSJim Jagielski expected += ("overrideProperty(anyway,0,Type[string],false);" + ls); 249*b1cdbd2cSJim Jagielski expected += ("setPropertyValue(nice);" + ls); 250*b1cdbd2cSJim Jagielski expected += ("endProperty();" + ls); 251*b1cdbd2cSJim Jagielski expected += ("dropNode(dropme);" + ls); 252*b1cdbd2cSJim Jagielski expected += ("endNode();" + ls); 253*b1cdbd2cSJim Jagielski expected += ("addOrReplace(FromTemplate,0);" + ls); 254*b1cdbd2cSJim Jagielski expected += ("endNode();" + ls); 255*b1cdbd2cSJim Jagielski expected += ("endNode();" + ls); 256*b1cdbd2cSJim Jagielski expected += ("endNode();" + ls); 257*b1cdbd2cSJim Jagielski expected += ("endNode();" + ls); 258*b1cdbd2cSJim Jagielski expected += ("endLayer();" + ls); 259*b1cdbd2cSJim Jagielski 260*b1cdbd2cSJim Jagielski return expected; 261*b1cdbd2cSJim Jagielski } 262*b1cdbd2cSJim Jagielski }