Files
loongoffice/framework/qa/complex/path_settings/PathSettingsTest.java
Pedro Giffuni 0a1d822372 Many spelling fixes: directories a* - g*.
Attempt to clean up most but certainly not all the spelling
mistakes that found home in OpenOffice through decades. We
could probably blame the international nature of the code but
it is somewhat shameful that this wasn't done  before.

(cherry picked from commit a6efc99d19d533fcf53106b6667bafba4d364370)

Conflicts:
	accessibility/bridge/org/openoffice/java/accessibility/AccessibleTextImpl.java
	accessibility/bridge/org/openoffice/java/accessibility/Component.java
	accessibility/bridge/org/openoffice/java/accessibility/Container.java
	accessibility/bridge/org/openoffice/java/accessibility/DescendantManager.java
	accessibility/bridge/org/openoffice/java/accessibility/Dialog.java
	accessibility/bridge/org/openoffice/java/accessibility/Frame.java
	accessibility/bridge/org/openoffice/java/accessibility/List.java
	accessibility/bridge/org/openoffice/java/accessibility/Menu.java
	accessibility/bridge/org/openoffice/java/accessibility/Table.java
	accessibility/bridge/org/openoffice/java/accessibility/Tree.java
	accessibility/bridge/org/openoffice/java/accessibility/Window.java
	accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx
	accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx
	accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx
	accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx
	accessibility/source/extended/accessibleiconchoicectrlentry.cxx
	accessibility/source/extended/accessiblelistboxentry.cxx
	accessibility/source/extended/accessibletablistbox.cxx
	accessibility/source/extended/accessibletablistboxtable.cxx
	accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java
	accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java
	apple_remote/AppleRemote.m
	autodoc/inc/ary/cpp/c_gate.hxx
	autodoc/inc/ary/cpp/cp_ce.hxx
	autodoc/inc/ary/cpp/cp_def.hxx
	autodoc/inc/ary/cpp/cp_type.hxx
	autodoc/inc/ary/doc/d_parametrized.hxx
	autodoc/inc/ary/idl/i_type.hxx
	autodoc/source/ary/inc/cross_refs.hxx
	autodoc/source/ary/inc/sorted_idset.hxx
	autodoc/source/display/html/outfile.hxx
	autodoc/source/display/html/pagemake.cxx
	autodoc/source/display/idl/hi_env.hxx
	autodoc/source/parser/inc/tokens/tokproct.hxx
	autodoc/source/parser_i/inc/s2_luidl/tokproct.hxx
	autodoc/source/parser_i/inc/tokens/tkp2.hxx
	automation/inc/automation/commtypes.hxx
	automation/inc/automation/simplecm.hxx
	automation/source/server/recorder.cxx
	automation/source/server/recorder.hxx
	automation/source/server/statemnt.cxx
	automation/source/simplecm/packethandler.hxx
	automation/source/simplecm/simplecm.cxx
	avmedia/source/framework/soundhandler.cxx
	basegfx/inc/basegfx/range/rangeexpander.hxx
	basic/inc/basic/sbxdef.hxx
	basic/source/classes/sbunoobj.cxx
	basic/source/classes/sbxmod.cxx
	basic/source/comp/dim.cxx
	basic/source/comp/exprgen.cxx
	basic/source/runtime/step1.cxx
	basic/source/runtime/step2.cxx
	basic/source/sbx/sbxint.cxx
	basic/source/uno/namecont.cxx
	basic/workben/mgrtest.cxx
	bean/com/sun/star/beans/LocalOfficeConnection.java
	bean/com/sun/star/beans/LocalOfficeWindow.java
	bean/com/sun/star/comp/beans/LocalOfficeConnection.java
	bean/com/sun/star/comp/beans/LocalOfficeWindow.java
	bean/com/sun/star/comp/beans/OOoBean.java
	bridges/inc/bridges/cpp_uno/bridge.hxx
	bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx
	bridges/source/cpp_uno/cc50_solaris_intel/except.cxx
	bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx
	bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx
	bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx
	bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx
	bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx
	bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx
	bridges/source/cpp_uno/gcc3_macosx_x86-64/uno2cpp.cxx
	bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx
	bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx
	bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx
	bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx
	bridges/source/cpp_uno/gcc3_os2_intel/except.cxx
	bridges/source/cpp_uno/gcc3_os2_intel/uno2cpp.cxx
	bridges/source/cpp_uno/mingw_x86-64/uno2cpp.cxx
	bridges/source/cpp_uno/msvc_win32_intel/except.cxx
	bridges/source/cpp_uno/s5abi_macosx_x86-64/except.cxx
	bridges/source/cpp_uno/shared/component.cxx
	bridges/source/jni_uno/jni_base.h
	bridges/source/jni_uno/jni_bridge.cxx
	bridges/source/jni_uno/jni_java2uno.cxx
	bridges/source/jni_uno/jni_uno2java.cxx
	canvas/inc/canvas/base/doublebitmapbase.hxx
	canvas/inc/canvas/base/floatbitmapbase.hxx
	canvas/inc/canvas/base/integerbitmapbase.hxx
	canvas/source/cairo/cairo_canvasbitmap.cxx
	canvas/source/cairo/cairo_textlayout.cxx
	chart2/source/controller/dialogs/ObjectNameProvider.cxx
	chart2/source/view/diagram/VDiagram.cxx
	chart2/source/view/main/ChartView.cxx
	cli_ure/source/native/makefile.mk
	cli_ure/source/uno_bridge/cli_data.cxx
	codemaker/source/javamaker/javatype.cxx
	comphelper/inc/comphelper/componentcontext.hxx
	comphelper/inc/comphelper/interaction.hxx
	comphelper/inc/comphelper/locale.hxx
	comphelper/inc/comphelper/string.hxx
	comphelper/source/container/embeddedobjectcontainer.cxx
	comphelper/source/misc/accessiblecontexthelper.cxx
	comphelper/source/misc/asyncnotification.cxx
	comphelper/source/misc/locale.cxx
	comphelper/source/misc/mediadescriptor.cxx
	comphelper/source/misc/numberedcollection.cxx
	comphelper/source/misc/proxyaggregation.cxx
	comphelper/source/misc/scopeguard.cxx
	comphelper/source/misc/sequenceashashmap.cxx
	configure.in
	connectivity/source/commontools/parameters.cxx
	connectivity/source/drivers/dbase/DTable.cxx
	connectivity/source/drivers/evoab2/NStatement.cxx
	connectivity/source/drivers/file/FPreparedStatement.cxx
	connectivity/source/drivers/jdbc/DatabaseMetaData.cxx
	connectivity/source/inc/flat/ETable.hxx
	connectivity/source/parse/sqlnode.cxx
	cosv/inc/cosv/persist.hxx
	cosv/inc/cosv/ploc_dir.hxx
	cosv/inc/cosv/tpl/dyn.hxx
	cppu/source/LogBridge/LogBridge.cxx
	cppu/source/uno/data.cxx
	cppuhelper/source/bootstrap.cxx
	cppuhelper/source/component_context.cxx
	cppuhelper/source/propshlp.cxx
	cppuhelper/source/servicefactory.cxx
	cpputools/source/registercomponent/registercomponent.cxx
	cui/source/customize/acccfg.cxx
	cui/source/dialogs/about.cxx
	cui/source/dialogs/commonlingui.hxx
	cui/source/dialogs/showcols.cxx
	cui/source/inc/cuihyperdlg.hxx
	cui/source/inc/cuitabline.hxx
	cui/source/options/optsave.src
	cui/source/tabpages/tpline.cxx
	cui/source/tabpages/transfrm.cxx
	dbaccess/source/core/api/CacheSet.cxx
	dbaccess/source/core/api/KeySet.cxx
	dbaccess/source/core/api/RowSet.cxx
	dbaccess/source/core/api/RowSet.hxx
	dbaccess/source/core/api/RowSetBase.cxx
	dbaccess/source/core/api/RowSetBase.hxx
	dbaccess/source/core/api/RowSetCache.cxx
	dbaccess/source/core/api/querycomposer.cxx
	dbaccess/source/ext/adabas/Acomponentmodule.hxx
	dbaccess/source/ui/app/AppControllerDnD.cxx
	dbaccess/source/ui/app/AppDetailView.cxx
	dbaccess/source/ui/browser/brwctrlr.cxx
	dbaccess/source/ui/browser/sbagrid.cxx
	dbaccess/source/ui/browser/unodatbr.cxx
	dbaccess/source/ui/dlg/AdabasStat.hxx
	dbaccess/source/ui/dlg/UserAdmin.cxx
	dbaccess/source/ui/dlg/directsql.cxx
	dbaccess/source/ui/dlg/generalpage.hxx
	dbaccess/source/ui/dlg/tablespage.cxx
	dbaccess/source/ui/inc/JoinTableView.hxx
	dbaccess/source/ui/inc/TableController.hxx
	dbaccess/source/ui/inc/UITools.hxx
	dbaccess/source/ui/inc/brwctrlr.hxx
	dbaccess/source/ui/inc/datasourcemap.hxx
	dbaccess/source/ui/querydesign/JoinTableView.cxx
	dbaccess/source/ui/querydesign/QueryDesignView.cxx
	dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
	dbaccess/source/ui/querydesign/TableWindow.cxx
	dbaccess/source/ui/querydesign/querycontroller.cxx
	dbaccess/source/ui/relationdesign/RelationTableView.cxx
	dbaccess/source/ui/tabledesign/TableController.cxx
	desktop/source/app/app.cxx
	desktop/source/app/appinit.cxx
	desktop/source/app/langselect.cxx
	desktop/source/app/officeipcthread.cxx
	desktop/source/deployment/manager/dp_extensionmanager.cxx
	desktop/source/deployment/misc/dp_misc.cxx
	desktop/source/deployment/misc/dp_resource.cxx
	desktop/source/deployment/registry/dp_backend.cxx
	desktop/source/deployment/registry/package/dp_package.cxx
	desktop/source/migration/cfgfilter.cxx
	desktop/source/migration/migration.cxx
	desktop/source/splash/splash.cxx
	desktop/win32/source/QuickStart/QuickStart.cpp
	desktop/win32/source/setup/setup.cpp
	drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
	dtrans/source/win32/clipb/MtaOleClipb.hxx
	dtrans/source/win32/clipb/WinClipbImpl.cxx
	editeng/source/editeng/editview.cxx
	editeng/source/editeng/impedit2.cxx
	editeng/source/editeng/impedit3.cxx
	editeng/source/editeng/impedit4.cxx
	editeng/source/editeng/textconv.hxx
	editeng/source/misc/unolingu.cxx
	embeddedobj/source/commonembedding/persistence.cxx
	embeddedobj/source/general/dummyobject.cxx
	embeddedobj/source/msole/olecomponent.cxx
	embeddedobj/source/msole/olepersist.cxx
	embeddedobj/test/Container1/NativeView.java
	extensions/source/bibliography/framectr.cxx
	extensions/source/macosx/spotlight/OOoContentDataParser.m
	extensions/source/macosx/spotlight/unzip.h
	extensions/source/macosx/spotlight/unzip.m
	extensions/source/oooimprovement/myconfigurationhelper.hxx
	extensions/source/propctrlr/eventhandler.cxx
	extensions/source/propctrlr/formcomponenthandler.cxx
	extensions/source/propctrlr/pcrcomponentcontext.hxx
	extensions/source/scanner/twain.cxx
	extensions/source/update/check/updatecheckconfig.hxx
	external/mingwheaders/mingw_atl_headers.patch
	extras/source/misc_config/wizard/web/layouts/source.xml.xsl
	fileaccess/source/FileAccess.cxx
	filter/inc/filter/msfilter/msocximex.hxx
	filter/inc/filter/msfilter/svxmsbas.hxx
	filter/qa/complex/filter/detection/typeDetection/Helper.java
	filter/source/config/cache/basecontainer.cxx
	filter/source/config/cache/cacheitem.hxx
	filter/source/config/cache/contenthandlerfactory.cxx
	filter/source/config/cache/filtercache.cxx
	filter/source/config/cache/filtercache.hxx
	filter/source/config/cache/filterfactory.cxx
	filter/source/config/cache/frameloaderfactory.cxx
	filter/source/config/cache/querytokenizer.hxx
	filter/source/config/cache/typedetection.cxx
	filter/source/config/cache/typedetection.hxx
	filter/source/config/cache/versions.hxx
	filter/source/config/fragments/makefile.mk
	filter/source/config/tools/merge/pyAltFCFGMerge
	filter/source/flash/swfwriter.cxx
	filter/source/flash/swfwriter1.cxx
	filter/source/msfilter/msdffimp.cxx
	filter/source/msfilter/msocximex.cxx
	filter/source/msfilter/msvbahelper.cxx
	filter/source/msfilter/svxmsbas.cxx
	filter/source/xmlfilterdetect/filterdetect.cxx
	filter/source/xslt/import/uof2/uof2odf.xsl
	filter/source/xslt/odf2xhtml/export/xhtml/body.xsl
	filter/source/xsltfilter/com/sun/star/comp/xsltfilter/Base64.java
	forms/source/xforms/convert.hxx
	forms/source/xforms/model.cxx
	fpicker/source/aqua/SalAquaFilePicker.mm
	fpicker/source/office/fpinteraction.cxx
	fpicker/source/unx/gnome/SalGtkFolderPicker.cxx
	fpicker/source/unx/kde4/KDE4FilePicker.cxx
	fpicker/source/win32/filepicker/PreviewCtrl.cxx
	fpicker/source/win32/filepicker/PreviewCtrl.hxx
	fpicker/source/win32/filepicker/VistaFilePicker.cxx
	fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx
	fpicker/source/win32/filepicker/helppopupwindow.hxx
	fpicker/source/win32/folderpicker/MtaFop.hxx
	framework/inc/classes/droptargetlistener.hxx
	framework/inc/classes/filtercache.hxx
	framework/inc/classes/filtercachedata.hxx
	framework/inc/classes/protocolhandlercache.hxx
	framework/inc/classes/servicemanager.hxx
	framework/inc/commands.h
	framework/inc/dispatch/basedispatcher.hxx
	framework/inc/dispatch/blankdispatcher.hxx
	framework/inc/dispatch/closedispatcher.hxx
	framework/inc/dispatch/createdispatcher.hxx
	framework/inc/dispatch/dispatchprovider.hxx
	framework/inc/dispatch/helpagentdispatcher.hxx
	framework/inc/dispatch/mailtodispatcher.hxx
	framework/inc/dispatch/menudispatcher.hxx
	framework/inc/dispatch/oxt_handler.hxx
	framework/inc/dispatch/popupmenudispatcher.hxx
	framework/inc/dispatch/selfdispatcher.hxx
	framework/inc/dispatch/servicehandler.hxx
	framework/inc/dispatch/startmoduledispatcher.hxx
	framework/inc/dispatch/systemexec.hxx
	framework/inc/helper/fixeddocumentproperties.hxx
	framework/inc/helper/ocomponentaccess.hxx
	framework/inc/helper/oframes.hxx
	framework/inc/helper/otasksenumeration.hxx
	framework/inc/helper/persistentwindowstate.hxx
	framework/inc/helper/statusindicator.hxx
	framework/inc/helper/statusindicatorfactory.hxx
	framework/inc/helper/tagwindowasmodified.hxx
	framework/inc/helper/titlebarupdate.hxx
	framework/inc/helper/vclstatusindicator.hxx
	framework/inc/interaction/quietinteraction.hxx
	framework/inc/jobs/helponstartup.hxx
	framework/inc/jobs/job.hxx
	framework/inc/jobs/jobdata.hxx
	framework/inc/jobs/jobexecutor.hxx
	framework/inc/loadstate.h
	framework/inc/macros/debug/assertion.hxx
	framework/inc/macros/debug/event.hxx
	framework/inc/macros/debug/filterdbg.hxx
	framework/inc/macros/debug/memorymeasure.hxx
	framework/inc/macros/debug/timemeasure.hxx
	framework/inc/macros/xserviceinfo.hxx
	framework/inc/queries.h
	framework/inc/recording/dispatchrecordersupplier.hxx
	framework/inc/services/autorecovery.hxx
	framework/inc/services/backingcomp.hxx
	framework/inc/services/contenthandlerfactory.hxx
	framework/inc/services/desktop.hxx
	framework/inc/services/detectorfactory.hxx
	framework/inc/services/frame.hxx
	framework/inc/services/frameloaderfactory.hxx
	framework/inc/services/layoutmanager.hxx
	framework/inc/services/license.hxx
	framework/inc/services/logindialog.hxx
	framework/inc/services/modulemanager.hxx
	framework/inc/services/pathsettings.hxx
	framework/inc/services/pluginframe.hxx
	framework/inc/services/substitutepathvars.hxx
	framework/inc/services/task.hxx
	framework/inc/services/taskcreatorsrv.hxx
	framework/inc/stdtypes.h
	framework/inc/threadhelp/fairrwlock.hxx
	framework/inc/threadhelp/inoncopyable.h
	framework/inc/threadhelp/itransactionmanager.h
	framework/inc/threadhelp/lockhelper.hxx
	framework/inc/threadhelp/readguard.hxx
	framework/inc/threadhelp/resetableguard.hxx
	framework/inc/threadhelp/transactionguard.hxx
	framework/inc/threadhelp/writeguard.hxx
	framework/inc/uifactory/uielementfactorymanager.hxx
	framework/inc/xml/acceleratorconfigurationreader.hxx
	framework/qa/complex/dispatches/checkdispatchapi.java
	framework/qa/complex/framework/autosave/AutoSave.java
	framework/qa/complex/framework/autosave/Protocol.java
	framework/qa/complex/framework/recovery/RecoveryTest.java
	framework/qa/complex/loadAllDocuments/StreamSimulator.java
	framework/source/accelerators/acceleratorconfiguration.cxx
	framework/source/accelerators/acceleratorexecute.cxx
	framework/source/accelerators/acceleratorexecute.hxx
	framework/source/accelerators/keymapping.cxx
	framework/source/accelerators/presethandler.cxx
	framework/source/application/framework.cxx
	framework/source/application/login.cxx
	framework/source/classes/framecontainer.cxx
	framework/source/classes/menumanager.cxx
	framework/source/classes/taskcreator.cxx
	framework/source/dispatch/closedispatcher.cxx
	framework/source/dispatch/dispatchprovider.cxx
	framework/source/dispatch/helpagentdispatcher.cxx
	framework/source/dispatch/interceptionhelper.cxx
	framework/source/dispatch/mailtodispatcher.cxx
	framework/source/dispatch/menudispatcher.cxx
	framework/source/dispatch/oxt_handler.cxx
	framework/source/dispatch/servicehandler.cxx
	framework/source/fwe/classes/framelistanalyzer.cxx
	framework/source/fwe/dispatch/interaction.cxx
	framework/source/fwe/helper/titlehelper.cxx
	framework/source/fwe/helper/undomanagerhelper.cxx
	framework/source/fwe/xml/eventsdocumenthandler.cxx
	framework/source/fwe/xml/statusbardocumenthandler.cxx
	framework/source/fwe/xml/toolboxdocumenthandler.cxx
	framework/source/fwi/classes/protocolhandlercache.cxx
	framework/source/fwi/threadhelp/lockhelper.cxx
	framework/source/fwi/threadhelp/transactionmanager.cxx
	framework/source/helper/persistentwindowstate.cxx
	framework/source/helper/statusindicatorfactory.cxx
	framework/source/helper/vclstatusindicator.cxx
	framework/source/inc/accelerators/acceleratorcache.hxx
	framework/source/inc/accelerators/acceleratorconfiguration.hxx
	framework/source/inc/accelerators/presethandler.hxx
	framework/source/inc/accelerators/storageholder.hxx
	framework/source/inc/loadenv/actionlockguard.hxx
	framework/source/inc/loadenv/loadenv.hxx
	framework/source/inc/loadenv/loadenvexception.hxx
	framework/source/inc/pattern/frame.hxx
	framework/source/inc/pattern/storages.hxx
	framework/source/inc/pattern/window.hxx
	framework/source/jobs/helponstartup.cxx
	framework/source/jobs/job.cxx
	framework/source/jobs/jobdata.cxx
	framework/source/jobs/jobdispatch.cxx
	framework/source/jobs/jobresult.cxx
	framework/source/jobs/joburl.cxx
	framework/source/jobs/shelljob.cxx
	framework/source/loadenv/loadenv.cxx
	framework/source/services/autorecovery.cxx
	framework/source/services/backingwindow.cxx
	framework/source/services/desktop.cxx
	framework/source/services/frame.cxx
	framework/source/services/modulemanager.cxx
	framework/source/services/pathsettings.cxx
	framework/source/services/substitutepathvars.cxx
	framework/source/uiconfiguration/moduleuicfgsupplier.cxx
	framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
	framework/source/uiconfiguration/uicategorydescription.cxx
	framework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx
	framework/source/uiconfiguration/windowstateconfiguration.cxx
	framework/source/uielement/uicommanddescription.cxx
	framework/source/unotypes/fwk.xml
	framework/source/xml/imagesdocumenthandler.cxx
	framework/test/test.cxx
	framework/test/test_componentenumeration.bas
	framework/test/test_statusindicatorfactory.bas
	framework/test/threadtest.cxx
	framework/test/threadtest/threadtest.cxx
	framework/test/typecfg/cfgview.cxx
	framework/test/typecfg/xml2xcd.cxx
	include/basegfx/polygon/b2dpolygon.hxx
	include/canvas/base/graphicdevicebase.hxx
	include/canvas/canvastools.hxx
	include/comphelper/configurationhelper.hxx
	include/comphelper/embeddedobjectcontainer.hxx
	include/comphelper/propagg.hxx
	include/comphelper/sequenceashashmap.hxx
	include/connectivity/sqlerror.hxx
	include/connectivity/sqlnode.hxx
	include/cppuhelper/propshlp.hxx
	include/editeng/AccessibleContextBase.hxx
	include/framework/framelistanalyzer.hxx
	sfx2/source/dialog/backingcomp.cxx
	vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx

Change-Id: I2618bf83c0e30f68f23ff25f6eb466df04d34c6d
2014-04-30 12:13:36 +01:00

972 lines
34 KiB
Java

/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
package complex.path_settings;
import com.sun.star.beans.Property;
import com.sun.star.beans.UnknownPropertyException;
import com.sun.star.beans.XFastPropertySet;
import com.sun.star.beans.XPropertySet;
import com.sun.star.beans.XPropertiesChangeListener;
import com.sun.star.beans.XPropertyChangeListener;
import com.sun.star.beans.XVetoableChangeListener;
import com.sun.star.lang.WrappedTargetException;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.AnyConverter;
import com.sun.star.util.thePathSettings;
// ---------- junit imports -----------------
import java.util.ArrayList;
import java.util.StringTokenizer;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openoffice.test.OfficeConnection;
import static org.junit.Assert.*;
public class PathSettingsTest
{
// the test object: an instance of the tested service
private static Object aPathSettings = null;
// the properties of the service
private static Property[] xPropertyInfoOfPathSettings = null;
private static String[] aPathSettingNames = null;
private static String[] availablePropNames = new String[]
{
"Addin",
"AutoCorrect",
"AutoText",
"Backup",
"Basic",
"Bitmap",
"Config",
"Dictionary",
"Favorite",
"Filter",
"Fingerprint",
"Gallery",
"Graphic",
"Help",
"Linguistic",
"Module",
"Palette",
"Plugin",
"Storage",
"Temp",
"Template",
"UIConfig",
"UserConfig",
"Work",
};
// every path name from availablePropNames exist in this characteristics
// name
// name_internal
// name_user
// name_writable
private static String[] availablePropNameExtensions = new String[]
{
"",
"_internal",
"_user",
"_writable"
};
private static String[] aPathSettingValues = null;
ArrayList<Property> aListOfWorkingProperty;
/**
* A function to tell the framework, which test functions are available.
* Right now, it's only 'checkComplexTemplateState'.
* @return All test methods.
*/
// public String[] getTestMethodNames() {
// return new String[]{"checkXFastPropertySet",
// "checkXMultiPropertySet",
// "checkXPropertySet"
// };
// }
/**
* Initialize before the tests start: this has to be done only once.
* This methods sets the 'aPathSettings' and 'xPropertyInfoOfPathSettings' variables.
*/
@Before
public void before()
{
try
{
aPathSettings = thePathSettings.get(connection.getComponentContext());
assertNotNull("Can't instantiate com.sun.star.util.thePathSettings.", aPathSettings);
// System.out.println("Implementation: " + util.utils.getImplName(aPathSettings));
// System.out.println("Service: ");
util.dbg.getSuppServices(aPathSettings);
final XPropertySet xPropSet_of_PathSettings = UnoRuntime.queryInterface(XPropertySet.class, aPathSettings);
xPropertyInfoOfPathSettings = xPropSet_of_PathSettings.getPropertySetInfo().getProperties();
aPathSettingNames = new String[xPropertyInfoOfPathSettings.length];
aPathSettingValues = new String[xPropertyInfoOfPathSettings.length];
aListOfWorkingProperty = new ArrayList<Property>();
// get intitial values and create new ones
for (int i = 0; i < xPropertyInfoOfPathSettings.length; i++)
{
final String sName = xPropertyInfoOfPathSettings[i].Name;
// System.out.println(sName);
aPathSettingNames[i] = sName;
Object o = xPropSet_of_PathSettings.getPropertyValue(sName);
String sValue = convertToString(o);
aPathSettingValues[i] = sValue;
aListOfWorkingProperty.add(xPropertyInfoOfPathSettings[i]);
}
}
catch (com.sun.star.uno.Exception e)
{
System.out.println(e.getClass().getName());
System.out.println("Message: " + e.getMessage());
// fail("Could not create an instance of the test object.");
}
catch (Exception e)
{
fail("What exception?");
}
}
private String convertToString(Object o)
{
String sValue = "";
try
{
if (AnyConverter.isString(o))
{
sValue = AnyConverter.toString(o);
}
else if (AnyConverter.isArray(o))
{
Object oValueList = AnyConverter.toArray(o);
String[] aValueList = (String[]) oValueList;
String sValues = "";
for (int j = 0; j < aValueList.length; j++)
{
if (sValues.length() > 0)
{
sValues += ";";
}
sValues += aValueList[j];
}
sValue = sValues;
}
else
{
System.out.println("Can't convert Object to String");
}
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
/* ignore */
}
return sValue;
}
/**
* Simple existence test, if this fails, the Lists must update
*/
@Test
public void checkInternalListConsistence()
{
// check if all Properties are in the internal test list
for (int i = 0; i < xPropertyInfoOfPathSettings.length; i++)
{
final String sName = xPropertyInfoOfPathSettings[i].Name;
boolean bOccur = checkIfNameExistsInList(sName, availablePropNames, availablePropNameExtensions);
assertTrue("TEST IS WRONG, Name:='" + sName + "' doesn't exist in internal Test list.", bOccur);
}
// check if all properties in the internal list also exist in real life
for (int i = 0; i < availablePropNames.length; i++)
{
final String aListName = availablePropNames[i];
for (int j = 0; j < availablePropNameExtensions.length; j++)
{
final String aSubListName = availablePropNameExtensions[j];
final String aName = aListName + aSubListName;
boolean bOccur = checkIfNameExistsInList(aName, aPathSettingNames, new String[]
{
""
} /* list must not empty! */);
assertTrue("TEST IS WRONG, Name:='" + aName + "' from the internal test list do not occur in real life path settings.", bOccur);
}
}
}
/**
* Simple O(n^n) check if a given String (_sNameMustOccur) exist in the given list(+SubList) values.
* @param _sNameMustOccur
* @param _aList
* @param _aSubList
* @return true, if name occur
*/
private boolean checkIfNameExistsInList(String _sNameMustOccur, String[] _aList, String[] _aSubList)
{
for (int i = 0; i < _aList.length; i++)
{
final String aListName = _aList[i];
for (int j = 0; j < _aSubList.length; j++)
{
final String aSubListName = _aSubList[j];
final String aName = aListName + aSubListName;
if (aName.equals(_sNameMustOccur))
{
return true;
}
}
}
return false;
}
/**
* Shows the path settings
* @throws UnknownPropertyException
* @throws WrappedTargetException
*/
@Test
public void showPathSettings() throws UnknownPropertyException, WrappedTargetException
{
System.out.println("\n---- All properties ----");
final XPropertySet xPropSet_of_PathSettings = UnoRuntime.queryInterface(XPropertySet.class, aPathSettings);
// for (int i = 0; i < xPropertyInfoOfPathSettings.length; i++)
for (int i = 0; i < aListOfWorkingProperty.size(); i++)
{
final String sName = aListOfWorkingProperty.get(i).Name;
// aPathSettingWorkingNames[i] = sName;
// System.out.print("PathSettings: Name:=");
System.out.print(sName);
Object o = xPropSet_of_PathSettings.getPropertyValue(sName);
// System.out.println("#### Object: '" + o.getClass().getName() + "' - '" + o.toString() + "'");
try
{
final String sValue = AnyConverter.toString(o);
// aPathSettingValues[i] = sValue;
// System.out.println("#### String " + sValue);
// System.out.println("Property Name: " + sName);
// System.out.println("Property Value: " + sValue);
// System.out.print(" ==> ");
// System.out.print(sValue);
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
// System.out.print(" FAILED ");
}
System.out.println();
}
System.out.println("---- Finish showing properties ----\n");
}
private boolean checkPaths(Object _o, Object _o2)
{
String sLeftPath = "";
String sRightPath = "";
if (AnyConverter.isArray(_o))
{
try
{
Object oValues = AnyConverter.toArray(_o);
sLeftPath = convertToString(oValues);
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
}
}
else if (AnyConverter.isString(_o))
{
try
{
sLeftPath = AnyConverter.toString(_o);
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
}
}
if (AnyConverter.isArray(_o2))
{
try
{
Object oValues = AnyConverter.toArray(_o2);
sRightPath = convertToString(oValues);
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
}
}
else if (AnyConverter.isString(_o2))
{
try
{
sRightPath = AnyConverter.toString(_o2);
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
}
}
return checkPaths(sLeftPath, sRightPath);
}
/**
* Check 2 given paths if the _aOtherPath exists in _aPath, _aPath could be a list separated by ';'
* @param _aPath
* @param _aOtherPath
* @return true, if _aOtherPath found
*/
private boolean checkPaths(String _aPath, String _aOtherPath)
{
if (_aOtherPath.contains(";"))
{
StringTokenizer aToken = new StringTokenizer(_aOtherPath, ";");
int nCount = 0;
int nFound = 0;
while (aToken.hasMoreElements())
{
String sPath = (String)aToken.nextElement();
nCount ++;
if (checkPaths(_aPath, sPath))
{
nFound++;
}
}
if (nFound == nCount)
{
return true;
}
}
else if(_aPath.contains(";"))
{
StringTokenizer aToken = new StringTokenizer(_aPath, ";");
while (aToken.hasMoreElements())
{
String sToken = (String)aToken.nextElement();
if (sToken.equals(_aOtherPath))
{
return true;
}
}
return false;
}
else if (_aPath.equals(_aOtherPath))
{
return true;
}
return false;
}
/**
* This tests the XFastPropertySet interface implementation.
*/
@Test
public void checkXFastPropertySet()
{
System.out.println("---- Testing the XFastPropertySet interface ----");
// do for all properties
// xPropertyInfoOfPathSettings.length
for (int i = 0; i < aListOfWorkingProperty.size(); i++)
{
final Property property = aListOfWorkingProperty.get(i); // xPropertyInfoOfPathSettings[i];
String name = property.Name;
// get property name and initial value
System.out.println("Test property with name: " + name);
boolean bResult;
if (name.endsWith("_writable"))
{
bResult = checkStringProperty(property);
}
else if (name.endsWith("_user"))
{
bResult = checkStringListProperty(property);
}
else if (name.endsWith("_internal"))
{
bResult = checkStringListProperty(property);
}
else
{
// old path settings
bResult = checkStringProperty(property);
}
System.out.print(" Test of property " + name + " finished");
if (bResult)
{
System.out.println(" [ok]");
}
else
{
System.out.println(" [FAILED]");
}
System.out.println();
}
System.out.println("---- Test of XFastPropertySet finished ----\n");
}
private boolean checkStringListProperty(Property property)
{
// creating instances
boolean bResult = true;
XFastPropertySet xFPS = UnoRuntime.queryInterface(XFastPropertySet.class, aPathSettings);
String name = property.Name;
int handle = property.Handle;
Object oValue;
try
{
oValue = xFPS.getFastPropertyValue(handle);
}
catch (UnknownPropertyException ex)
{
return false;
}
catch (WrappedTargetException ex)
{
return false;
}
if (!AnyConverter.isArray(oValue))
{
System.out.println(" Internal error, type wrong. PathSetting property with name:" + name + " should be an array.");
return false;
}
String val;
try
{
Object oValues = AnyConverter.toArray(oValue);
final String[] aValues = (String[])oValues;
// aNewValues contains a deep copy of aValues
String[] aNewValues = new String[aValues.length];
System.arraycopy(aValues, 0, aNewValues, 0, aValues.length);
if (aValues.length > 0)
{
val = aValues[0];
}
else
{
val = null;
aNewValues = new String[1]; // create a String list
}
System.out.println(" Property has initial value: '" + val + "'");
// set to a new correct value
String newVal = changeToCorrectValue(val);
assertFalse("newVal must not equal val.", newVal.equals(val));
System.out.println(" Try to change to a correct value '" + newVal + "'");
aNewValues[0] = newVal;
try
{
try
{
xFPS.setFastPropertyValue(handle, aNewValues);
}
catch (com.sun.star.lang.WrappedTargetException e)
{
System.out.println(" FAIL: setFastPropertyValue(handle:=" + handle + ", name:='" + name + "')" + e.getMessage());
bResult = false;
}
// Property_internal can't change we will not arrive bejond this line
// check the change
Object oObj = xFPS.getFastPropertyValue(handle);
if (!checkPaths(oObj, aNewValues))
{
System.out.println(" FAIL: Did not change value on property " + name + ".");
bResult = false;
}
// set back to initial setting
System.out.println(" Try to check");
try
{
xFPS.setFastPropertyValue(handle, oValue);
}
catch (com.sun.star.beans.PropertyVetoException e)
{
// should not occur
System.out.println(" FAIL: PropertyVetoException caught: " + e.getMessage());
bResult = false;
}
}
catch (com.sun.star.beans.PropertyVetoException e)
{
if (!name.endsWith("_internal"))
{
// should not occur
System.out.println(" FAIL: PropertyVetoException caught: " + e.getMessage());
bResult = false;
}
else
{
System.out.println(" OK: PropertyVetoException caught: " + e.getMessage() + " it seems not allowed to change internal values.");
}
}
// check if changed
Object checkVal3 = xFPS.getFastPropertyValue(handle);
if (!checkPaths(checkVal3, oValues))
{
System.out.println(" FAIL: Can't change value back to original on property " + name);
bResult = false;
}
}
catch (com.sun.star.uno.Exception e)
{
System.out.println(" FAIL: getFastPropertyValue(handle:=" + handle + ", name:='" + name + "')" + e.getMessage());
bResult = false;
}
return bResult;
}
private boolean checkStringProperty(Property property)
{
boolean bResult = true;
XFastPropertySet xFPS = UnoRuntime.queryInterface(XFastPropertySet.class, aPathSettings);
String name = property.Name;
int handle = property.Handle;
Object oValue;
try
{
oValue = xFPS.getFastPropertyValue(handle);
}
catch (UnknownPropertyException ex)
{
return false;
}
catch (WrappedTargetException ex)
{
return false;
}
try
{
String val = "";
val = AnyConverter.toString(oValue);
System.out.println(" Property has initial value: '" + val + "'");
// set to a new correct value
String newVal = changeToCorrectValue(val);
System.out.println(" Try to change to a correct value '" + newVal + "'");
xFPS.setFastPropertyValue(handle, newVal);
// check the change
String checkVal = (String) xFPS.getFastPropertyValue(handle);
if (!checkPaths(checkVal, newVal))
{
System.out.println(" FAIL: Did not change value on property " + name + ".");
bResult = false;
}
newVal = changeToIncorrectValue(val);
System.out.println(" Try to change to incorrect value '" + newVal + "'");
try
{
xFPS.setFastPropertyValue(handle, newVal);
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
System.out.println(" Correctly thrown Exception caught.");
}
// check if changed
String checkVal2 = (String) xFPS.getFastPropertyValue(handle);
if (!checkPaths(checkVal2, checkVal))
{
System.out.println(" FAIL: Value did change on property " + name + " though it should not have.");
bResult = false;
}
else
{
System.out.println(" OK: Incorrect value was not set.");
}
// set back to initial setting
System.out.println(" Set back to initial value.");
try
{
xFPS.setFastPropertyValue(handle, val);
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
System.out.println(" IllegalArgumentException caught: " + e.getMessage());
bResult = false;
}
// check if changed
String checkVal3 = (String) xFPS.getFastPropertyValue(handle);
if (!checkVal3.equals(val))
{
if (!checkPaths(checkVal3, val))
{
System.out.println(" FAIL: Can't change value back to original on property " + name);
System.out.println(" Value is: " + checkVal3);
bResult = false;
}
else
{
System.out.println(" OK: the pathsettings contains the original path.");
System.out.println(" Value is: " + checkVal3);
System.out.println(" Value should be: " + val);
}
}
else
{
System.out.println(" OK: Change value back to original on property " + name);
}
}
catch (com.sun.star.uno.Exception e)
{
System.out.println(" FAIL: getFastPropertyValue(handle:=" + handle + ", name:='" + name + "')" + e.getMessage());
bResult = false;
}
return bResult;
}
/**
* This tests the XMultiPropertySet interface implementation.
*/
// The test checkXMultiPropertySet() has been marked as outdated!
// @Test
// public void checkXMultiPropertySet()
// {
// System.out.println("---- Testing the XMultiPropertySet interface ----");
// XMultiPropertySet xMPS = UnoRuntime.queryInterface(XMultiPropertySet.class, aPathSettings);
//
// // xPropertyInfoOfPathSettings.length
// String[] propertiesToTest = new String[1];
// propertiesToTest[0] = availablePropNames[0];
//
// String[] correctVals = new String[propertiesToTest.length];
// String[] incorrectVals = new String[propertiesToTest.length];
//
// String[] aPathSettingWorkingNames = null;
// aPathSettingWorkingNames = new String[propertiesToTest.length];
//
// // get intitial values and create new ones
// for (int i = 0; i < propertiesToTest.length; i++)
// {
// // Property aProp = aListOfWorkingProperty.get(i);
// final String sName = propertiesToTest[i];
// final String sValue = getPropertyValueAsString(sName);
// aPathSettingWorkingNames[i] = sName;
// correctVals[i] = changeToCorrectValue(sValue);
// incorrectVals[i] = changeToIncorrectValue(sValue);
// }
//
// try
// {
// // add a change listener
// MyChangeListener mListener = new MyChangeListener();
// xMPS.addPropertiesChangeListener(aPathSettingWorkingNames, mListener);
//
// // first change xPropertyInfoOfPathSettings to correct values
// System.out.println("Change to correct values.");
// xMPS.setPropertyValues(aPathSettingWorkingNames, correctVals);
// assertTrue("Could not change to correct values with XMultiPropertySet.",
// verifyPropertySet(xMPS, aPathSettingWorkingNames, correctVals) > 0);
//
// // second, change to incorrect values: expect an exception
// System.out.println("Try to change to incorrect values.");
// try
// {
// xMPS.setPropertyValues(aPathSettingWorkingNames, incorrectVals);
// }
// catch (com.sun.star.lang.IllegalArgumentException r)
// {
// System.out.println("Correctly thrown Exception caught.");
// }
// assertTrue("Did change to incorrect values with XMultiPropertySet,"
// + " but should not have.",
// verifyPropertySet(xMPS, aPathSettingWorkingNames, correctVals) > 0);
//
// // third, change back to initial values
// System.out.println("Change back to initial values.");
// xMPS.setPropertyValues(aPathSettingWorkingNames, aPathSettingValues);
// assertTrue("Could not change back to initial values with"
// + " XMultiPropertySet.",
// verifyPropertySet(xMPS, aPathSettingWorkingNames, aPathSettingValues) > 0);
//
// // fire the event for the listener
// System.out.println("Fire event.");
// xMPS.firePropertiesChangeEvent(aPathSettingWorkingNames, mListener);
// assertTrue("Event was not fired on XMultiPropertySet.",
// mListener.changePropertiesEventFired());
// }
// catch (com.sun.star.uno.Exception e)
// {
//// e.printStackTrace();
// System.out.println(e.getClass().getName());
// System.out.println("Message: " + e.getMessage());
// fail("Unexpected exception on XMultiPropertySet.");
// }
//
// // test finished
// System.out.println("---- Test of XMultiPropertySet finished ----\n");
// }
/**
* Verify if the values of xPropSet_of_PathSettings are the same as vals.
* @param xPropSet_of_PathSettings A XMultiPropertySet.
* @param aPathSettingWorkingNames An array with property names.
* @param vals An array with values of the properties
* @return -1 if none are equal, 1 if all are equal, 0 if some were equal
* and some not.
* @throws com.sun.star.lang.IllegalArgumentException
*/
// private int verifyPropertySet(XMultiPropertySet xProp,
// String[] propNames, String[] vals)
// {
// int ret = 0;
// if (vals.length != propNames.length)
// {
// System.out.println("Length of array parameters must be equal.");
// return ret;
// }
// for (int i = 0; i < vals.length; i++)
// {
// Object[] objs = xProp.getPropertyValues(new String[]
// {
// propNames[i]
// });
// String retVal = (String) objs[0];
// boolean nCheck = retVal.equals(vals[i]);
// if (!nCheck)
// {
// System.out.println("Property '" + propNames[i]
// + "' was supposed to have value:");
// System.out.println(vals[i]);
// System.out.println("but has value:");
// System.out.println(retVal);
// }
// // initialize
// if (i == 0)
// {
// ret = nCheck ? 1 : -1;
// continue;
// }
// // return 0 if equal state changes compared to initial value
// if ((nCheck && ret < 0) || (!nCheck && ret > 0))
// {
// ret = 0;
// }
// }
// return ret;
// }
// ____________________
/**
* This tests the XPropertySet interface implementation.
*/
// The test checkXPropertySet() has been marked as outdated!
// @Test
// public void checkXPropertySet()
// {
// System.out.println("---- Testing the XPropertySet interface ----");
//
// XPropertySet xPS = UnoRuntime.queryInterface(XPropertySet.class, aPathSettings);
//
// MyChangeListener mListener1 = new MyChangeListener();
// MyChangeListener mListener2 = new MyChangeListener();
//
// for (int i = 0; i < xPropertyInfoOfPathSettings.length; i++)
// {
// // adding listeners
// String name = aPathSettingNames[i];
// System.out.println("Testing property '" + name + "'");
// try
// {
// System.out.println("Add 2 Listeners.");
// xPS.addPropertyChangeListener(name, mListener1);
// xPS.addVetoableChangeListener(name, mListener1);
// xPS.addPropertyChangeListener(name, mListener2);
// xPS.addVetoableChangeListener(name, mListener2);
//
// // change the property
// System.out.println("Change value.");
// String changeVal = changeToCorrectValue(aPathSettingValues[i]);
// xPS.setPropertyValue(name, changeVal);
// String newVal = (String) xPS.getPropertyValue(name);
//
// assertTrue("Value did not change on property " + name + ".",
// newVal.equals(changeVal));
//
// assertTrue("Listener 1 was not called.", checkListener(mListener1));
// assertTrue("Listener 2 was not called.", checkListener(mListener2));
//
// mListener1.resetListener();
// mListener2.resetListener();
//
// System.out.println("Remove Listener 1.");
//
// xPS.removePropertyChangeListener(name, mListener1);
// xPS.removeVetoableChangeListener(name, mListener1);
//
// // change the property
// System.out.println("Change value back.");
// xPS.setPropertyValue(name, aPathSettingValues[i]);
// newVal = (String) xPS.getPropertyValue(name);
// assertTrue("Value did not change on property " + name,
// newVal.equals(aPathSettingValues[i]));
//
// assertTrue("Listener was called, although it was removed on"
// + " property " + name + ".", !checkListener(mListener1));
// assertTrue("Listener 2 was not called on property " + name + ".",
// checkListener(mListener2));
// }
// catch (com.sun.star.uno.Exception e)
// {
// System.out.println(e.getClass().getName());
// System.out.println("Message: " + e.getMessage());
// fail("Unexpcted exception on property " + name);
// }
// System.out.println("Finish testing property '" + aPathSettingNames[i] + "'\n");
// }
// System.out.println("---- Test of XPropertySet finished ----\n");
//
// }
// private boolean checkListener(MyChangeListener ml)
// {
// return ml.changePropertyEventFired()
// || ml.changePropertiesEventFired()
// || ml.vetoableChangeEventFired();
// }
/**
* Change the given String to a correct path URL.
* @return The changed path URL.
*/
private String changeToCorrectValue(String path)
{
// the simplest possibility
if (path == null || path.equals(""))
{
String sTempDir = System.getProperty("java.io.tmpdir");
sTempDir = util.utils.getFullURL(sTempDir);
return sTempDir; // "file:///tmp";
}
return graphical.FileHelper.appendPath(path, "tmp");
}
/**
* Change the given String to an incorrect path URL.
* @return The changed path URL.
*/
private String changeToIncorrectValue(String path)
{
// return an illegal path
return "fileblablabla";
}
/**
* Listener implementation which sets a flag when
* listener was called.
*/
public class MyChangeListener implements XPropertiesChangeListener,
XPropertyChangeListener,
XVetoableChangeListener
{
private boolean propChanged = false;
private boolean propertiesChanged = false;
private boolean vetoableChanged = false;
public void propertiesChange(
com.sun.star.beans.PropertyChangeEvent[] e)
{
propertiesChanged = true;
}
public void vetoableChange(com.sun.star.beans.PropertyChangeEvent pE)
throws com.sun.star.beans.PropertyVetoException
{
vetoableChanged = true;
}
public void propertyChange(com.sun.star.beans.PropertyChangeEvent pE)
{
propChanged = true;
}
public void disposing(com.sun.star.lang.EventObject eventObject)
{
}
public void resetListener()
{
propChanged = false;
propertiesChanged = false;
vetoableChanged = false;
}
public boolean changePropertyEventFired()
{
return propChanged;
}
public boolean changePropertiesEventFired()
{
return propertiesChanged;
}
public boolean vetoableChangeEventFired()
{
return vetoableChanged;
}
}
// setup and close connections
@BeforeClass
public static void setUpConnection() throws Exception
{
System.out.println("setUpConnection()");
connection.setUp();
}
@AfterClass
public static void tearDownConnection()
throws InterruptedException, com.sun.star.uno.Exception
{
System.out.println("tearDownConnection()");
connection.tearDown();
}
private static final OfficeConnection connection = new OfficeConnection();
}