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.TemplateIdentifier;
26cdf0e10cSrcweir import com.sun.star.configuration.backend.XUpdateHandler;
27cdf0e10cSrcweir import com.sun.star.uno.Type;
28cdf0e10cSrcweir 
29cdf0e10cSrcweir import lib.MultiMethodTest;
30cdf0e10cSrcweir 
31cdf0e10cSrcweir import util.XLayerHandlerImpl;
32cdf0e10cSrcweir import util.XLayerImpl;
33cdf0e10cSrcweir 
34cdf0e10cSrcweir 
35cdf0e10cSrcweir /**
36cdf0e10cSrcweir  *
37cdf0e10cSrcweir  * @author  sw93809
38cdf0e10cSrcweir  */
39cdf0e10cSrcweir public class _XUpdateHandler extends MultiMethodTest {
40cdf0e10cSrcweir     public XUpdateHandler oObj;
41cdf0e10cSrcweir     protected XLayerHandlerImpl xLayerHandler = null;
42cdf0e10cSrcweir 
before()43cdf0e10cSrcweir     public void before() {
44cdf0e10cSrcweir         xLayerHandler = (XLayerHandlerImpl) tEnv.getObjRelation("LayerHandler");
45cdf0e10cSrcweir 
46cdf0e10cSrcweir         try {
47cdf0e10cSrcweir             xLayerHandler.startLayer();
48cdf0e10cSrcweir             xLayerHandler.overrideNode("org.openoffice.Setup", (short) 0,
49cdf0e10cSrcweir                                        false);
50cdf0e10cSrcweir             xLayerHandler.overrideNode("Office", (short) 0, false);
51cdf0e10cSrcweir             xLayerHandler.overrideProperty("ooSetupInstCompleted", (short) 0,
52cdf0e10cSrcweir                                            new Type(java.lang.String.class),
53cdf0e10cSrcweir                                            false);
54cdf0e10cSrcweir             xLayerHandler.setPropertyValue(new Boolean(false));
55cdf0e10cSrcweir             xLayerHandler.endProperty();
56cdf0e10cSrcweir             xLayerHandler.overrideProperty("ooSetupShowIntro", (short) 0,
57cdf0e10cSrcweir                                            new Type(java.lang.String.class),
58cdf0e10cSrcweir                                            false);
59cdf0e10cSrcweir             xLayerHandler.setPropertyValue(new Boolean(true));
60cdf0e10cSrcweir             xLayerHandler.endProperty();
61cdf0e10cSrcweir             xLayerHandler.overrideProperty("ooSetupLocales", (short) 0,
62cdf0e10cSrcweir                                            new Type(java.lang.String.class),
63cdf0e10cSrcweir                                            false);
64cdf0e10cSrcweir             xLayerHandler.setPropertyValue("en-US");
65cdf0e10cSrcweir             xLayerHandler.endProperty();
66cdf0e10cSrcweir             xLayerHandler.overrideNode("Factories", (short) 0, false);
67cdf0e10cSrcweir             xLayerHandler.addOrReplaceNode("com.sun.star.chart.ChartDocument",
68cdf0e10cSrcweir                                            (short) 0);
69cdf0e10cSrcweir             xLayerHandler.overrideProperty("ooSetupFactoryEmptyDocumentURL",
70cdf0e10cSrcweir                                            (short) 0,
71cdf0e10cSrcweir                                            new Type(java.lang.String.class),
72cdf0e10cSrcweir                                            false);
73cdf0e10cSrcweir             xLayerHandler.setPropertyValue("private:factory/schart");
74cdf0e10cSrcweir             xLayerHandler.endProperty();
75cdf0e10cSrcweir             xLayerHandler.overrideProperty("ooSetupFactoryIcon", (short) 0,
76cdf0e10cSrcweir                                            new Type(java.lang.Long.class),
77cdf0e10cSrcweir                                            false);
78cdf0e10cSrcweir             xLayerHandler.setPropertyValue(new Integer(13));
79cdf0e10cSrcweir             xLayerHandler.endProperty();
80cdf0e10cSrcweir             xLayerHandler.overrideProperty("ooSetupFactoryShortName",
81cdf0e10cSrcweir                                            (short) 0,
82cdf0e10cSrcweir                                            new Type(java.lang.String.class),
83cdf0e10cSrcweir                                            false);
84cdf0e10cSrcweir             xLayerHandler.setPropertyValue("schart");
85cdf0e10cSrcweir             xLayerHandler.setPropertyValueForLocale("TemplateFile", "en-US");
86cdf0e10cSrcweir             xLayerHandler.endProperty();
87cdf0e10cSrcweir             xLayerHandler.overrideProperty("ooSetupFactoryTemplateFile",
88cdf0e10cSrcweir                                            (short) 0,
89cdf0e10cSrcweir                                            new Type(java.lang.String.class),
90cdf0e10cSrcweir                                            false);
91cdf0e10cSrcweir             xLayerHandler.setPropertyValue("empty");
92cdf0e10cSrcweir             xLayerHandler.endProperty();
93cdf0e10cSrcweir             xLayerHandler.addProperty("ooSetupFactoryTemplateFile", (short) 0,
94cdf0e10cSrcweir                                       new Type(java.lang.String.class));
95cdf0e10cSrcweir             xLayerHandler.addPropertyWithValue("ooSetupFactoryTemplateFile",
96cdf0e10cSrcweir                                                (short) 0, "TemplateFile");
97cdf0e10cSrcweir             xLayerHandler.endNode();
98cdf0e10cSrcweir 
99cdf0e10cSrcweir             xLayerHandler.addOrReplaceNode("dropme", (short) 0);
100cdf0e10cSrcweir             xLayerHandler.overrideProperty("anyway", (short) 0,
101cdf0e10cSrcweir                                            new Type(java.lang.String.class),
102cdf0e10cSrcweir                                            false);
103cdf0e10cSrcweir             xLayerHandler.setPropertyValue("nice");
104cdf0e10cSrcweir             xLayerHandler.endProperty();
105cdf0e10cSrcweir             xLayerHandler.dropNode("dropme");
106cdf0e10cSrcweir             xLayerHandler.endNode();
107cdf0e10cSrcweir 
108cdf0e10cSrcweir             xLayerHandler.addOrReplaceNodeFromTemplate("FromTemplate",
109cdf0e10cSrcweir                                                        new com.sun.star.configuration.backend.TemplateIdentifier(
110cdf0e10cSrcweir                                                                "org.openoffice.Setup",
111cdf0e10cSrcweir                                                                "Setup"),
112cdf0e10cSrcweir                                                        (short) 0);
113cdf0e10cSrcweir             xLayerHandler.endNode();
114cdf0e10cSrcweir 
115cdf0e10cSrcweir             xLayerHandler.endNode();
116cdf0e10cSrcweir             xLayerHandler.endNode();
117cdf0e10cSrcweir             xLayerHandler.endNode();
118cdf0e10cSrcweir             xLayerHandler.endLayer();
119cdf0e10cSrcweir         } catch (com.sun.star.configuration.backend.MalformedDataException e) {
120cdf0e10cSrcweir             log.println("Unexpected Exception " + e);
121cdf0e10cSrcweir         } catch (com.sun.star.lang.WrappedTargetException e) {
122cdf0e10cSrcweir             log.println("Unexpected Exception " + e);
123cdf0e10cSrcweir         } catch (com.sun.star.uno.Exception e) {
124cdf0e10cSrcweir             log.println("Unexpected Exception " + e);
125cdf0e10cSrcweir         }
126cdf0e10cSrcweir     }
127cdf0e10cSrcweir 
_addOrReplaceNode()128cdf0e10cSrcweir     public void _addOrReplaceNode() {
129cdf0e10cSrcweir         requiredMethod("startUpdate()");
130cdf0e10cSrcweir         tRes.tested("addOrReplaceNode()", true);
131cdf0e10cSrcweir     }
132cdf0e10cSrcweir 
_addOrReplaceNodeFromTemplate()133cdf0e10cSrcweir     public void _addOrReplaceNodeFromTemplate() {
134cdf0e10cSrcweir         requiredMethod("startUpdate()");
135cdf0e10cSrcweir         tRes.tested("addOrReplaceNodeFromTemplate()", true);
136cdf0e10cSrcweir     }
137cdf0e10cSrcweir 
_addOrReplaceProperty()138cdf0e10cSrcweir     public void _addOrReplaceProperty() {
139cdf0e10cSrcweir         requiredMethod("startUpdate()");
140cdf0e10cSrcweir         tRes.tested("addOrReplaceProperty()", true);
141cdf0e10cSrcweir     }
142cdf0e10cSrcweir 
_addOrReplacePropertyWithValue()143cdf0e10cSrcweir     public void _addOrReplacePropertyWithValue() {
144cdf0e10cSrcweir         requiredMethod("startUpdate()");
145cdf0e10cSrcweir         tRes.tested("addOrReplacePropertyWithValue()", true);
146cdf0e10cSrcweir     }
147cdf0e10cSrcweir 
_endNode()148cdf0e10cSrcweir     public void _endNode() {
149cdf0e10cSrcweir         requiredMethod("startUpdate()");
150cdf0e10cSrcweir         tRes.tested("endNode()", true);
151cdf0e10cSrcweir     }
152cdf0e10cSrcweir 
_endProperty()153cdf0e10cSrcweir     public void _endProperty() {
154cdf0e10cSrcweir         requiredMethod("startUpdate()");
155cdf0e10cSrcweir         tRes.tested("endProperty()", true);
156cdf0e10cSrcweir     }
157cdf0e10cSrcweir 
_endUpdate()158cdf0e10cSrcweir     public void _endUpdate() {
159cdf0e10cSrcweir         requiredMethod("startUpdate()");
160cdf0e10cSrcweir         tRes.tested("endUpdate()", true);
161cdf0e10cSrcweir     }
162cdf0e10cSrcweir 
_modifyNode()163cdf0e10cSrcweir     public void _modifyNode() {
164cdf0e10cSrcweir         requiredMethod("startUpdate()");
165cdf0e10cSrcweir         tRes.tested("modifyNode()", true);
166cdf0e10cSrcweir     }
167cdf0e10cSrcweir 
_modifyProperty()168cdf0e10cSrcweir     public void _modifyProperty() {
169cdf0e10cSrcweir         requiredMethod("startUpdate()");
170cdf0e10cSrcweir         tRes.tested("modifyProperty()", true);
171cdf0e10cSrcweir     }
172cdf0e10cSrcweir 
_removeNode()173cdf0e10cSrcweir     public void _removeNode() {
174cdf0e10cSrcweir         requiredMethod("startUpdate()");
175cdf0e10cSrcweir         tRes.tested("removeNode()", true);
176cdf0e10cSrcweir     }
177cdf0e10cSrcweir 
_removeProperty()178cdf0e10cSrcweir     public void _removeProperty() {
179cdf0e10cSrcweir         requiredMethod("startUpdate()");
180cdf0e10cSrcweir         tRes.tested("removeProperty()", true);
181cdf0e10cSrcweir     }
182cdf0e10cSrcweir 
_resetProperty()183cdf0e10cSrcweir     public void _resetProperty() {
184cdf0e10cSrcweir         requiredMethod("startUpdate()");
185cdf0e10cSrcweir         tRes.tested("resetProperty()", true);
186cdf0e10cSrcweir     }
187cdf0e10cSrcweir 
_resetPropertyValue()188cdf0e10cSrcweir     public void _resetPropertyValue() {
189cdf0e10cSrcweir         requiredMethod("startUpdate()");
190cdf0e10cSrcweir         tRes.tested("resetPropertyValue()", true);
191cdf0e10cSrcweir     }
192cdf0e10cSrcweir 
_resetPropertyValueForLocale()193cdf0e10cSrcweir     public void _resetPropertyValueForLocale() {
194cdf0e10cSrcweir         requiredMethod("startUpdate()");
195cdf0e10cSrcweir         tRes.tested("resetPropertyValueForLocale()", true);
196cdf0e10cSrcweir     }
197cdf0e10cSrcweir 
_setPropertyValue()198cdf0e10cSrcweir     public void _setPropertyValue() {
199cdf0e10cSrcweir         requiredMethod("startUpdate()");
200cdf0e10cSrcweir         tRes.tested("setPropertyValue()", true);
201cdf0e10cSrcweir     }
202cdf0e10cSrcweir 
_setPropertyValueForLocale()203cdf0e10cSrcweir     public void _setPropertyValueForLocale() {
204cdf0e10cSrcweir         requiredMethod("startUpdate()");
205cdf0e10cSrcweir         tRes.tested("setPropertyValueForLocale()", true);
206cdf0e10cSrcweir     }
207cdf0e10cSrcweir 
_startUpdate()208cdf0e10cSrcweir     public void _startUpdate() {
209cdf0e10cSrcweir         boolean res = true;
210cdf0e10cSrcweir 
211cdf0e10cSrcweir         try {
212cdf0e10cSrcweir             XLayerImpl xLayer = (XLayerImpl) tEnv.getObjRelation("Layer");
213cdf0e10cSrcweir             log.println("Layer called (before): " + xLayer.hasBeenCalled());
214cdf0e10cSrcweir             oObj.startUpdate();
215cdf0e10cSrcweir             oObj.addOrReplaceNode("whatever", (short) 0);
216cdf0e10cSrcweir             oObj.addOrReplaceNodeFromTemplate("Office", (short) 0,
217cdf0e10cSrcweir                                               new TemplateIdentifier());
218cdf0e10cSrcweir             oObj.addOrReplaceProperty("prop", (short) 0,
219cdf0e10cSrcweir                                       new Type(java.lang.String.class));
220cdf0e10cSrcweir             oObj.addOrReplacePropertyWithValue("prop2", (short) 0, "this");
221cdf0e10cSrcweir             oObj.modifyProperty("ooSetupFactoryIcon", (short) 0, (short) 0,
222cdf0e10cSrcweir                                 new Type(java.lang.String.class));
223cdf0e10cSrcweir             oObj.resetPropertyValue();
224cdf0e10cSrcweir             oObj.resetPropertyValueForLocale("en-US");
225cdf0e10cSrcweir             oObj.endProperty();
226cdf0e10cSrcweir             oObj.modifyProperty("ooSetupFactoryEmptyDocumentURL", (short) 0,
227cdf0e10cSrcweir                                 (short) 0, new Type(java.lang.String.class));
228cdf0e10cSrcweir             oObj.setPropertyValue("newValue");
229cdf0e10cSrcweir             oObj.setPropertyValueForLocale("newValue-US", "de-DE");
230cdf0e10cSrcweir             oObj.endProperty();
231cdf0e10cSrcweir             oObj.removeProperty("ooSetupShowIntro");
232cdf0e10cSrcweir             oObj.modifyNode("org.openoffice.Setup", (short) 0, (short) 0, true);
233cdf0e10cSrcweir             oObj.removeNode("whatever");
234cdf0e10cSrcweir             oObj.resetProperty("prop");
235cdf0e10cSrcweir             oObj.endNode();
236cdf0e10cSrcweir             oObj.endNode();
237cdf0e10cSrcweir             oObj.endNode();
238cdf0e10cSrcweir             oObj.endUpdate();
239cdf0e10cSrcweir 
240cdf0e10cSrcweir             log.println("Layer called (after): " + xLayer.hasBeenCalled());
241cdf0e10cSrcweir 
242cdf0e10cSrcweir             res = xLayer.hasBeenCalled();
243cdf0e10cSrcweir         } catch (com.sun.star.configuration.backend.MalformedDataException e) {
244cdf0e10cSrcweir             log.println("Unexpected exception " + e.getMessage());
245cdf0e10cSrcweir             res = false;
246cdf0e10cSrcweir         } catch (com.sun.star.lang.IllegalAccessException e) {
247cdf0e10cSrcweir             log.println("Unexpected exception " + e.getMessage());
248cdf0e10cSrcweir             res = false;
249cdf0e10cSrcweir         } catch (com.sun.star.lang.WrappedTargetException e) {
250cdf0e10cSrcweir             log.println("Unexpected exception " + e.getMessage());
251cdf0e10cSrcweir             res = false;
252cdf0e10cSrcweir         }
253cdf0e10cSrcweir 
254cdf0e10cSrcweir         tRes.tested("startUpdate()", res);
255cdf0e10cSrcweir     }
256cdf0e10cSrcweir }
257