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