summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lange [tl] <tl@openoffice.org>2010-11-05 09:37:44 +0100
committerThomas Lange [tl] <tl@openoffice.org>2010-11-05 09:37:44 +0100
commitab888545f46b366d936103d14a2b9861516983d5 (patch)
tree47f68eaff0f6bfb86fc0ef0aaea636037bde4508
parent8dac74497064f146cc2a3d1fc393969dce754556 (diff)
parentc6855c9a268d45364f3d7e951c101b256eb9df7d (diff)
cws tlmath01: merge with DEV300_m92
-rw-r--r--avmedia/inc/helpids.hrc26
-rw-r--r--basic/inc/basic/sbmod.hxx8
-rw-r--r--basic/inc/basic/sbstar.hxx1
-rw-r--r--basic/inc/basic/ttstrhlp.hxx4
-rw-r--r--basic/source/app/basic.src64
-rw-r--r--basic/source/classes/sbxmod.cxx49
-rw-r--r--configmgr/source/components.cxx84
-rw-r--r--configmgr/source/components.hxx8
-rw-r--r--configmgr/source/configurationprovider.cxx16
-rw-r--r--connectivity/source/parse/sqlbison.y2
-rw-r--r--desktop/inc/app.hxx1
-rw-r--r--desktop/prj/build.lst1
-rw-r--r--desktop/qa/deployment_misc/makefile.mk16
-rw-r--r--desktop/qa/deployment_misc/test_dp_version.cxx9
-rw-r--r--desktop/qa/deployment_misc/version.map2
-rw-r--r--desktop/scripts/soffice.sh2
-rw-r--r--desktop/scripts/unopkg.sh2
-rw-r--r--desktop/source/app/app.cxx32
-rw-r--r--desktop/source/app/desktop.src1
-rw-r--r--desktop/source/deployment/gui/dp_gui_dependencydialog.src2
-rw-r--r--[-rwxr-xr-x]desktop/source/deployment/gui/dp_gui_dialog.src3
-rw-r--r--desktop/source/deployment/gui/dp_gui_dialog2.src4
-rw-r--r--[-rwxr-xr-x]desktop/source/deployment/gui/dp_gui_extlistbox.cxx0
-rw-r--r--desktop/source/deployment/gui/dp_gui_updatedialog.src3
-rw-r--r--desktop/source/deployment/gui/dp_gui_updateinstalldialog.src1
-rw-r--r--desktop/source/deployment/manager/dp_commandenvironments.cxx38
-rw-r--r--desktop/source/deployment/manager/dp_commandenvironments.hxx23
-rw-r--r--desktop/source/deployment/manager/dp_extensionmanager.cxx416
-rw-r--r--desktop/source/deployment/manager/dp_extensionmanager.hxx17
-rw-r--r--desktop/source/inc/helpid.hrc71
-rw-r--r--desktop/source/migration/wizard.src11
-rw-r--r--editeng/inc/editeng/svxrtf.hxx19
-rw-r--r--editeng/inc/helpid.hrc71
-rw-r--r--editeng/inc/pch/precompiled_editeng.hxx1
-rw-r--r--editeng/source/editeng/editdoc.cxx4
-rw-r--r--editeng/source/editeng/editdoc.hxx7
-rw-r--r--editeng/source/editeng/editdoc2.cxx10
-rwxr-xr-xediteng/source/editeng/impedit2.cxx74
-rw-r--r--editeng/source/editeng/impedit3.cxx6
-rwxr-xr-xediteng/source/editeng/impedit4.cxx16
-rw-r--r--editeng/source/misc/svxacorr.cxx30
-rw-r--r--editeng/source/misc/txtrange.cxx22
-rw-r--r--editeng/source/rtf/makefile.mk2
-rw-r--r--editeng/source/rtf/rtfitem.cxx18
-rw-r--r--editeng/source/rtf/svxrtf.cxx50
-rw-r--r--formula/inc/formula/IFunctionDescription.hxx2
-rw-r--r--formula/inc/formula/formdata.hxx6
-rw-r--r--formula/inc/formula/formula.hxx8
-rw-r--r--formula/inc/helpids.hrc50
-rw-r--r--formula/source/ui/dlg/FormulaHelper.cxx2
-rw-r--r--formula/source/ui/dlg/formdlgs.src12
-rw-r--r--formula/source/ui/dlg/formula.cxx77
-rw-r--r--formula/source/ui/dlg/funcpage.cxx12
-rw-r--r--formula/source/ui/dlg/funcpage.hxx2
-rw-r--r--formula/source/ui/dlg/funcutl.cxx4
-rw-r--r--formula/source/ui/dlg/parawin.cxx12
-rw-r--r--formula/source/ui/dlg/parawin.src17
-rw-r--r--formula/util/hidother.src4
-rw-r--r--fpicker/source/office/OfficeControlAccess.cxx44
-rw-r--r--fpicker/source/office/iodlg.hrc20
-rw-r--r--fpicker/source/office/iodlg.src15
-rw-r--r--framework/inc/framework.hrc8
-rw-r--r--framework/inc/helpid.hrc22
-rw-r--r--framework/inc/uielement/commandinfo.hxx2
-rw-r--r--framework/inc/uielement/toolbarmerger.hxx1
-rw-r--r--framework/inc/uielement/toolbarsmenucontroller.hxx2
-rw-r--r--framework/prj/build.lst34
-rw-r--r--framework/qa/complex/ModuleManager/CheckXModuleManager.java137
-rw-r--r--framework/qa/complex/ModuleManager/makefile.mk69
-rw-r--r--framework/qa/complex/XUserInputInterception/EventTest.java169
-rw-r--r--framework/qa/complex/XUserInputInterception/makefile.mk142
-rw-r--r--framework/qa/complex/accelerators/AcceleratorsConfigurationTest.java593
-rw-r--r--framework/qa/complex/accelerators/KeyMapping.java (renamed from framework/qa/complex/accelerators/helper/KeyMapping.java)2
-rw-r--r--framework/qa/complex/accelerators/helper/makefile.mk4
-rw-r--r--framework/qa/complex/accelerators/makefile.mk73
-rwxr-xr-xframework/qa/complex/api_internal/CheckAPI.java103
-rwxr-xr-xframework/qa/complex/api_internal/makefile.mk73
-rwxr-xr-xframework/qa/complex/broken_document/LoadDocument.java75
-rw-r--r--framework/qa/complex/broken_document/TestDocument.java41
-rwxr-xr-xframework/qa/complex/broken_document/makefile.mk67
-rwxr-xr-xframework/qa/complex/broken_document/test_documents/dbf.dbf.emf (renamed from framework/qa/complex/broken_document/dbf.dbf.emf)0
-rw-r--r--framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java381
-rw-r--r--framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java138
-rw-r--r--framework/qa/complex/contextMenuInterceptor/makefile.mk66
-rw-r--r--framework/qa/complex/contextMenuInterceptor/space-metal.jpgbin0 -> 4313 bytes
-rwxr-xr-xframework/qa/complex/desktop/DesktopTerminate.java157
-rwxr-xr-xframework/qa/complex/desktop/makefile.mk67
-rw-r--r--framework/qa/complex/dispatches/Interceptor.java (renamed from framework/qa/complex/dispatches/helper/Interceptor.java)83
-rw-r--r--framework/qa/complex/dispatches/checkdispatchapi.java330
-rw-r--r--framework/qa/complex/dispatches/helper/makefile.mk9
-rw-r--r--framework/qa/complex/dispatches/makefile.mk141
-rwxr-xr-xframework/qa/complex/disposing/GetServiceWhileDisposingOffice.java86
-rwxr-xr-xframework/qa/complex/disposing/makefile.mk61
-rw-r--r--framework/qa/complex/framework/autosave/AutoSave.java123
-rw-r--r--framework/qa/complex/framework/autosave/ConfigHelper.java37
-rw-r--r--framework/qa/complex/framework/autosave/makefile.mk138
-rw-r--r--framework/qa/complex/framework/recovery/RecoveryTest.java10
-rwxr-xr-xframework/qa/complex/imageManager/CheckImageManager.java174
-rwxr-xr-xframework/qa/complex/imageManager/_XComponent.java (renamed from framework/qa/complex/imageManager/interfaces/_XComponent.java)32
-rwxr-xr-xframework/qa/complex/imageManager/_XImageManager.java (renamed from framework/qa/complex/imageManager/interfaces/_XImageManager.java)17
-rwxr-xr-xframework/qa/complex/imageManager/_XInitialization.java (renamed from framework/qa/complex/imageManager/interfaces/_XInitialization.java)13
-rwxr-xr-xframework/qa/complex/imageManager/_XTypeProvider.java (renamed from framework/qa/complex/imageManager/interfaces/_XTypeProvider.java)21
-rwxr-xr-xframework/qa/complex/imageManager/_XUIConfiguration.java (renamed from framework/qa/complex/imageManager/interfaces/_XUIConfiguration.java)13
-rwxr-xr-xframework/qa/complex/imageManager/_XUIConfigurationPersistence.java (renamed from framework/qa/complex/imageManager/interfaces/_XUIConfigurationPersistence.java)19
-rwxr-xr-xframework/qa/complex/imageManager/interfaces/makefile.mk16
-rwxr-xr-xframework/qa/complex/imageManager/makefile.mk122
-rw-r--r--framework/qa/complex/loadAllDocuments/CheckXComponentLoader.java449
-rw-r--r--framework/qa/complex/loadAllDocuments/InteractionHandler.java (renamed from framework/qa/complex/loadAllDocuments/helper/InteractionHandler.java)2
-rw-r--r--framework/qa/complex/loadAllDocuments/StatusIndicator.java (renamed from framework/qa/complex/loadAllDocuments/helper/StatusIndicator.java)2
-rw-r--r--framework/qa/complex/loadAllDocuments/StreamSimulator.java (renamed from framework/qa/complex/loadAllDocuments/helper/StreamSimulator.java)2
-rw-r--r--framework/qa/complex/loadAllDocuments/TestDocument.java41
-rw-r--r--framework/qa/complex/loadAllDocuments/helper/makefile.mk9
-rw-r--r--framework/qa/complex/loadAllDocuments/makefile.mk145
-rw-r--r--framework/qa/complex/loadAllDocuments/testdocuments/password_check.sxw (renamed from framework/qa/complex/loadAllDocuments/password_check.sxw)bin5128 -> 5128 bytes
-rwxr-xr-xframework/qa/complex/path_settings/PathSettingsTest.java1236
-rwxr-xr-xframework/qa/complex/path_settings/makefile.mk70
-rwxr-xr-xframework/qa/complex/path_substitution/PathSubstitutionTest.java229
-rwxr-xr-xframework/qa/complex/path_substitution/makefile.mk127
-rwxr-xr-xframework/qa/complex/sequence/CheckSequenceOfEnum.java95
-rwxr-xr-xframework/qa/complex/sequence/makefile.mk98
-rwxr-xr-xframework/qa/unoapi/framework.sce4
-rw-r--r--framework/source/classes/resource.src4
-rw-r--r--framework/source/layoutmanager/layoutmanager.cxx4
-rw-r--r--framework/source/services/backingwindow.cxx26
-rw-r--r--framework/source/services/menudocumenthandler.cxx903
-rw-r--r--framework/source/services/pathsettings.cxx7
-rw-r--r--framework/source/uielement/macrosmenucontroller.cxx7
-rw-r--r--framework/source/uielement/menubarmanager.cxx3
-rw-r--r--framework/source/uielement/statusbarmanager.cxx10
-rw-r--r--framework/source/uielement/toolbarmanager.cxx14
-rw-r--r--framework/source/uielement/toolbarmerger.cxx10
-rw-r--r--framework/source/uielement/toolbarsmenucontroller.cxx15
-rw-r--r--linguistic/prj/build.lst4
-rw-r--r--linguistic/qa/complex/linguistic/HangulHanjaConversion.java122
-rw-r--r--linguistic/qa/complex/linguistic/TestDocument.java41
-rw-r--r--linguistic/qa/complex/linguistic/makefile.mk60
-rw-r--r--officecfg/registry/data/org/openoffice/VCL.xcu68
-rw-r--r--sfx2/inc/pch/precompiled_sfx2.hxx1
-rw-r--r--sfx2/inc/sfx2/basedlgs.hxx3
-rw-r--r--sfx2/inc/sfx2/dispatch.hxx4
-rw-r--r--sfx2/inc/sfx2/filedlghelper.hxx3
-rw-r--r--sfx2/inc/sfx2/mnumgr.hxx2
-rw-r--r--sfx2/inc/sfx2/msg.hxx5
-rw-r--r--sfx2/inc/sfx2/opengrf.hxx5
-rw-r--r--sfx2/inc/sfx2/passwd.hxx2
-rw-r--r--sfx2/inc/sfx2/sfxcommands.h345
-rw-r--r--sfx2/inc/sfx2/sfxdlg.hxx4
-rw-r--r--sfx2/inc/sfx2/sfxsids.hrc1
-rw-r--r--sfx2/inc/sfx2/titledockwin.hxx4
-rw-r--r--sfx2/inc/sfxhelp.hxx12
-rw-r--r--sfx2/prj/build.lst6
-rw-r--r--sfx2/qa/complex/CheckGlobalEventBroadcaster_writer1.java243
-rw-r--r--sfx2/qa/complex/docinfo/DocumentProperties.java438
-rw-r--r--sfx2/qa/complex/docinfo/makefile.mk41
-rw-r--r--sfx2/qa/complex/framework/CheckGlobalEventBroadcaster_writer1.java281
-rw-r--r--sfx2/qa/complex/framework/DialogThread.java (renamed from sfx2/qa/complex/DocHelper/DialogThread.java)0
-rw-r--r--sfx2/qa/complex/framework/DocHelper/makefile.mk (renamed from sfx2/qa/complex/DocHelper/makefile.mk)11
-rw-r--r--sfx2/qa/complex/framework/DocumentMetadataAccessTest.java (renamed from sfx2/qa/complex/DocumentMetadataAccessTest.java)563
-rw-r--r--sfx2/qa/complex/framework/DocumentPropertiesTest.java (renamed from sfx2/qa/complex/DocumentMetaData.java)295
-rw-r--r--sfx2/qa/complex/framework/TestDocument.java39
-rw-r--r--sfx2/qa/complex/framework/WriterHelper.java (renamed from sfx2/qa/complex/DocHelper/WriterHelper.java)71
-rw-r--r--sfx2/qa/complex/framework/makefile.mk (renamed from sfx2/qa/complex/makefile.mk)48
-rw-r--r--sfx2/qa/complex/framework/testdocuments/CUSTOM.odt (renamed from sfx2/qa/complex/testdocuments/CUSTOM.odt)bin1021 -> 1021 bytes
-rw-r--r--sfx2/qa/complex/framework/testdocuments/TEST.odt (renamed from sfx2/qa/complex/testdocuments/TEST.odt)bin13803 -> 13803 bytes
-rw-r--r--sfx2/qa/complex/framework/testdocuments/TESTRDFA.odt (renamed from sfx2/qa/complex/testdocuments/TESTRDFA.odt)bin7540 -> 7540 bytes
-rw-r--r--sfx2/qa/complex/framework/testdocuments/empty.rdf13
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/StandaloneDocumentInfoUnitTest.java66
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/Test01.java37
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/TestHelper.java14
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/makefile.mk69
-rw-r--r--sfx2/qa/unoapi/sfx.sce2
-rw-r--r--[-rwxr-xr-x]sfx2/sdi/sfx.sdi2
-rw-r--r--sfx2/source/appl/app.src163
-rw-r--r--sfx2/source/appl/appcfg.cxx18
-rw-r--r--sfx2/source/appl/appserv.cxx7
-rw-r--r--sfx2/source/appl/appuno.cxx1
-rw-r--r--sfx2/source/appl/dde.src4
-rw-r--r--sfx2/source/appl/newhelp.cxx6
-rw-r--r--sfx2/source/appl/newhelp.src12
-rw-r--r--sfx2/source/appl/opengrf.cxx7
-rw-r--r--sfx2/source/appl/sfxhelp.cxx583
-rwxr-xr-x[-rw-r--r--]sfx2/source/control/dispatch.cxx25
-rw-r--r--sfx2/source/control/msg.cxx15
-rw-r--r--sfx2/source/dialog/about.cxx5
-rw-r--r--sfx2/source/dialog/alienwarn.src1
-rw-r--r--sfx2/source/dialog/basedlgs.cxx59
-rw-r--r--[-rwxr-xr-x]sfx2/source/dialog/dinfdlg.src41
-rw-r--r--sfx2/source/dialog/dinfedt.src4
-rw-r--r--sfx2/source/dialog/dockwin.cxx53
-rw-r--r--sfx2/source/dialog/filedlghelper.cxx55
-rw-r--r--sfx2/source/dialog/filedlgimpl.hxx3
-rw-r--r--sfx2/source/dialog/mgetempl.src6
-rw-r--r--sfx2/source/dialog/newstyle.src4
-rw-r--r--sfx2/source/dialog/passwd.src3
-rw-r--r--sfx2/source/dialog/printopt.src22
-rw-r--r--sfx2/source/dialog/recfloat.src1
-rw-r--r--sfx2/source/dialog/srchdlg.src6
-rw-r--r--sfx2/source/dialog/tabdlg.cxx10
-rw-r--r--sfx2/source/dialog/taskpane.cxx17
-rw-r--r--sfx2/source/dialog/templdlg.cxx44
-rw-r--r--sfx2/source/dialog/templdlg.src10
-rw-r--r--sfx2/source/dialog/titledockwin.cxx2
-rw-r--r--sfx2/source/dialog/versdlg.src10
-rw-r--r--sfx2/source/doc/applet.cxx383
-rw-r--r--sfx2/source/doc/doc.hrc1
-rw-r--r--sfx2/source/doc/doc.src8
-rw-r--r--sfx2/source/doc/doctdlg.src8
-rw-r--r--sfx2/source/doc/docvor.src7
-rw-r--r--sfx2/source/doc/iframe.cxx2
-rw-r--r--sfx2/source/doc/makefile.mk2
-rw-r--r--sfx2/source/doc/new.src18
-rw-r--r--sfx2/source/doc/objcont.cxx11
-rw-r--r--sfx2/source/doc/querytemplate.cxx4
-rw-r--r--sfx2/source/inc/applet.hxx122
-rw-r--r--[-rwxr-xr-x]sfx2/source/inc/helpid.hrc621
-rw-r--r--sfx2/source/inc/workwin.hxx4
-rw-r--r--sfx2/source/menu/menu.src7
-rwxr-xr-xsfx2/source/menu/mnumgr.cxx5
-rw-r--r--sfx2/source/menu/virtmenu.cxx25
-rw-r--r--sfx2/source/statbar/stbitem.cxx5
-rw-r--r--sfx2/source/view/frame2.cxx10
-rw-r--r--sfx2/source/view/sfxbasecontroller.cxx2
-rw-r--r--sfx2/source/view/viewimp.hxx33
-rw-r--r--sfx2/source/view/viewprn.cxx44
-rw-r--r--sfx2/source/view/viewsh.cxx137
-rw-r--r--sfx2/util/hidother.src62
-rw-r--r--svx/inc/fmhelp.hrc164
-rw-r--r--svx/inc/globlmn_tmpl.hrc202
-rw-r--r--svx/inc/helpid.hrc500
-rw-r--r--svx/inc/pch/precompiled_svx.hxx1
-rw-r--r--svx/inc/pfiledlg.hxx2
-rwxr-xr-xsvx/inc/svx/dialogs.hrc4
-rw-r--r--svx/inc/svx/exthelpid.hrc17
-rw-r--r--svx/inc/svx/simptabl.hxx2
-rw-r--r--svx/inc/svx/svxcommands.h604
-rw-r--r--svx/inc/svx/svxdlg.hxx8
-rw-r--r--svx/prj/d.lst1
-rw-r--r--svx/qa/unoapi/knownissues.xcl3
-rw-r--r--svx/sdi/svx.sdi27
-rw-r--r--svx/source/dialog/bmpmask.src17
-rw-r--r--svx/source/dialog/contdlg.src2
-rw-r--r--svx/source/dialog/docrecovery.cxx1
-rw-r--r--svx/source/dialog/docrecovery.src19
-rw-r--r--svx/source/dialog/fntctrl.cxx14
-rw-r--r--svx/source/dialog/fontwork.src7
-rw-r--r--svx/source/dialog/hdft.src18
-rw-r--r--svx/source/dialog/hyprlink.src4
-rw-r--r--svx/source/dialog/imapdlg.src4
-rw-r--r--svx/source/dialog/optgrid.src17
-rw-r--r--svx/source/dialog/passwd.src3
-rw-r--r--svx/source/dialog/pfiledlg.cxx5
-rw-r--r--svx/source/dialog/rubydialog.src14
-rw-r--r--svx/source/dialog/sendreportunx.cxx2
-rw-r--r--svx/source/dialog/srchdlg.cxx2
-rw-r--r--svx/source/dialog/srchdlg.src33
-rw-r--r--svx/source/engine3d/float3d.src72
-rw-r--r--svx/source/fmcomp/fmgridif.cxx13
-rw-r--r--svx/source/fmcomp/gridctrl.src44
-rw-r--r--svx/source/form/datanavi.src35
-rw-r--r--svx/source/form/filtnav.src10
-rw-r--r--svx/source/form/fmexpl.src65
-rw-r--r--svx/source/form/fmshimp.cxx6
-rw-r--r--svx/source/form/fmsrcimp.cxx22
-rw-r--r--svx/source/form/formshell.src7
-rw-r--r--svx/source/gallery2/gallery.src2
-rw-r--r--svx/source/gengal/gengal.sh6
-rw-r--r--svx/source/inc/fmsrcimp.hxx14
-rw-r--r--svx/source/intro/iso.src2
-rw-r--r--svx/source/intro/ooo.src2
-rw-r--r--svx/source/stbctrls/insctrl.cxx1
-rw-r--r--svx/source/stbctrls/pszctrl.cxx19
-rw-r--r--svx/source/stbctrls/xmlsecctrl.cxx6
-rw-r--r--svx/source/tbxctrls/extrusioncontrols.src5
-rw-r--r--svx/source/tbxctrls/fontworkgallery.src5
-rw-r--r--svx/source/tbxctrls/grafctrl.cxx5
-rw-r--r--svx/source/tbxctrls/lboxctrl.src1
-rw-r--r--svx/source/tbxctrls/makefile.mk1
-rw-r--r--svx/source/tbxctrls/tbxdraw.src265
-rw-r--r--svx/source/toolbars/extrusionbar.src59
-rw-r--r--svx/source/toolbars/fontworkbar.src34
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.src8
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.src4
-rw-r--r--svx/source/unodraw/UnoNameItemTable.cxx30
-rw-r--r--svx/source/unodraw/UnoNamespaceMap.cxx10
-rw-r--r--svx/source/unodraw/unomtabl.cxx44
-rw-r--r--svx/source/unodraw/unoprov.cxx4
-rw-r--r--svx/source/unodraw/unoshap2.cxx9
-rw-r--r--svx/source/unodraw/unoshape.cxx14
-rw-r--r--svx/source/xoutdev/xattr.cxx66
-rw-r--r--svx/util/hidother.src5
-rw-r--r--ucb/prj/build.lst4
-rwxr-xr-xucb/qa/complex/tdoc/CheckContentProvider.java247
-rwxr-xr-xucb/qa/complex/tdoc/CheckTransientDocumentsContent.java81
-rwxr-xr-xucb/qa/complex/tdoc/CheckTransientDocumentsContentProvider.java83
-rwxr-xr-xucb/qa/complex/tdoc/CheckTransientDocumentsDocumentContent.java94
-rw-r--r--ucb/qa/complex/tdoc/TestDocument.java39
-rwxr-xr-xucb/qa/complex/tdoc/_XChild.java (renamed from ucb/qa/complex/tdoc/interfaces/_XChild.java)2
-rwxr-xr-xucb/qa/complex/tdoc/_XCommandInfoChangeNotifier.java (renamed from ucb/qa/complex/tdoc/interfaces/_XCommandInfoChangeNotifier.java)2
-rwxr-xr-xucb/qa/complex/tdoc/_XCommandProcessor.java (renamed from ucb/qa/complex/tdoc/interfaces/_XCommandProcessor.java)2
-rwxr-xr-xucb/qa/complex/tdoc/_XComponent.java (renamed from ucb/qa/complex/tdoc/interfaces/_XComponent.java)2
-rwxr-xr-xucb/qa/complex/tdoc/_XContent.java (renamed from ucb/qa/complex/tdoc/interfaces/_XContent.java)2
-rwxr-xr-xucb/qa/complex/tdoc/_XPropertiesChangeNotifier.java (renamed from ucb/qa/complex/tdoc/interfaces/_XPropertiesChangeNotifier.java)2
-rwxr-xr-xucb/qa/complex/tdoc/_XPropertyContainer.java (renamed from ucb/qa/complex/tdoc/interfaces/_XPropertyContainer.java)2
-rwxr-xr-xucb/qa/complex/tdoc/_XPropertySetInfoChangeNotifier.java (renamed from ucb/qa/complex/tdoc/interfaces/_XPropertySetInfoChangeNotifier.java)2
-rwxr-xr-xucb/qa/complex/tdoc/_XServiceInfo.java (renamed from ucb/qa/complex/tdoc/interfaces/_XServiceInfo.java)2
-rwxr-xr-xucb/qa/complex/tdoc/_XTypeProvider.java (renamed from ucb/qa/complex/tdoc/interfaces/_XTypeProvider.java)2
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/makefile.mk4
-rwxr-xr-xucb/qa/complex/tdoc/makefile.mk83
-rw-r--r--ucb/qa/complex/tdoc/test_documents/Iterator.sxw (renamed from ucb/qa/complex/test_documents/Iterator.sxw)bin5627 -> 5627 bytes
-rw-r--r--ucb/qa/complex/tdoc/test_documents/chinese.sxw (renamed from ucb/qa/complex/test_documents/chinese.sxw)bin5757 -> 5757 bytes
-rw-r--r--ucb/qa/complex/tdoc/test_documents/filter.sxw (renamed from ucb/qa/complex/test_documents/filter.sxw)bin14359 -> 14359 bytes
-rwxr-xr-xucb/qa/complex/ucb/UCB.java171
-rwxr-xr-xucb/qa/complex/ucb/makefile.mk58
-rw-r--r--ucb/source/ucp/gio/gio_provider.cxx8
-rw-r--r--uui/source/cookiedg.src5
-rw-r--r--uui/source/fltdlg.src1
-rw-r--r--[-rwxr-xr-x]uui/source/ids.hrc37
-rw-r--r--[-rwxr-xr-x]uui/source/masterpasscrtdlg.src2
-rw-r--r--uui/source/masterpassworddlg.src1
-rw-r--r--[-rwxr-xr-x]uui/source/nameclashdlg.src3
-rw-r--r--uui/source/newerverwarn.src1
-rw-r--r--[-rwxr-xr-x]uui/source/passworddlg.src2
-rw-r--r--uui/source/secmacrowarnings.src2
-rw-r--r--uui/source/sslwarndlg.src2
-rw-r--r--uui/source/unknownauthdlg.src4
-rw-r--r--xmloff/qa/unoapi/knownissues.xcl9
-rw-r--r--xmloff/source/core/SettingsExportHelper.cxx8
-rw-r--r--xmloff/source/core/xmlehelp.cxx2
-rw-r--r--xmloff/source/core/xmlexp.cxx2
-rw-r--r--xmloff/source/core/xmluconv.cxx4
-rw-r--r--xmloff/source/draw/sdxmlexp.cxx16
-rw-r--r--xmloff/source/draw/sdxmlimp.cxx4
-rw-r--r--xmloff/source/draw/shapeexport3.cxx4
-rw-r--r--xmloff/source/draw/shapeexport4.cxx50
-rw-r--r--xmloff/source/draw/xexptran.cxx48
-rw-r--r--xmloff/source/style/MarkerStyle.cxx6
-rw-r--r--xmloff/source/style/fonthdl.cxx6
-rw-r--r--xmloff/source/style/xmlnumi.cxx10
-rw-r--r--xmloff/source/text/XMLTextMarkImportContext.cxx5
-rw-r--r--xmloff/source/text/txtparae.cxx2
-rw-r--r--xmloff/source/transform/FormPropOASISTContext.cxx2
-rw-r--r--xmloff/source/transform/PropertyActionsOOo.cxx4
-rw-r--r--xmloff/source/transform/TransformerBase.cxx10
343 files changed, 9764 insertions, 8532 deletions
diff --git a/avmedia/inc/helpids.hrc b/avmedia/inc/helpids.hrc
index 1f7ffb6172..a16eaa6ce9 100644
--- a/avmedia/inc/helpids.hrc
+++ b/avmedia/inc/helpids.hrc
@@ -28,19 +28,17 @@
#ifndef _AVMEDIA_HELPIDS_HRC
#define _AVMEDIA_HELPIDS_HRC
-#include <svl/solar.hrc>
-
-#define HID_AVMEDIA_TOOLBOXITEM_PLAY (HID_AVMEDIA_START+0)
-#define HID_AVMEDIA_TOOLBOXITEM_PAUSE (HID_AVMEDIA_START+1)
-#define HID_AVMEDIA_TOOLBOXITEM_STOP (HID_AVMEDIA_START+2)
-#define HID_AVMEDIA_TOOLBOXITEM_MUTE (HID_AVMEDIA_START+3)
-#define HID_AVMEDIA_TOOLBOXITEM_LOOP (HID_AVMEDIA_START+4)
-#define HID_AVMEDIA_TOOLBOXITEM_OPEN (HID_AVMEDIA_START+5)
-#define HID_AVMEDIA_TOOLBOXITEM_INSERT (HID_AVMEDIA_START+6)
-#define HID_AVMEDIA_ZOOMLISTBOX (HID_AVMEDIA_START+7)
-#define HID_AVMEDIA_TIMESLIDER (HID_AVMEDIA_START+8)
-#define HID_AVMEDIA_TIMEEDIT (HID_AVMEDIA_START+9)
-#define HID_AVMEDIA_VOLUMESLIDER (HID_AVMEDIA_START+10)
-#define HID_AVMEDIA_PLAYERWINDOW (HID_AVMEDIA_START+11)
+#define HID_AVMEDIA_TOOLBOXITEM_PLAY "AVMEDIA_HID_AVMEDIA_TOOLBOXITEM_PLAY"
+#define HID_AVMEDIA_TOOLBOXITEM_PAUSE "AVMEDIA_HID_AVMEDIA_TOOLBOXITEM_PAUSE"
+#define HID_AVMEDIA_TOOLBOXITEM_STOP "AVMEDIA_HID_AVMEDIA_TOOLBOXITEM_STOP"
+#define HID_AVMEDIA_TOOLBOXITEM_MUTE "AVMEDIA_HID_AVMEDIA_TOOLBOXITEM_MUTE"
+#define HID_AVMEDIA_TOOLBOXITEM_LOOP "AVMEDIA_HID_AVMEDIA_TOOLBOXITEM_LOOP"
+#define HID_AVMEDIA_TOOLBOXITEM_OPEN "AVMEDIA_HID_AVMEDIA_TOOLBOXITEM_OPEN"
+#define HID_AVMEDIA_TOOLBOXITEM_INSERT "AVMEDIA_HID_AVMEDIA_TOOLBOXITEM_INSERT"
+#define HID_AVMEDIA_ZOOMLISTBOX "AVMEDIA_HID_AVMEDIA_ZOOMLISTBOX"
+#define HID_AVMEDIA_TIMESLIDER "AVMEDIA_HID_AVMEDIA_TIMESLIDER"
+#define HID_AVMEDIA_TIMEEDIT "AVMEDIA_HID_AVMEDIA_TIMEEDIT"
+#define HID_AVMEDIA_VOLUMESLIDER "AVMEDIA_HID_AVMEDIA_VOLUMESLIDER"
+#define HID_AVMEDIA_PLAYERWINDOW "AVMEDIA_HID_AVMEDIA_PLAYERWINDOW"
#endif // _AVMEDIA_HELPIDS_HRC
diff --git a/basic/inc/basic/sbmod.hxx b/basic/inc/basic/sbmod.hxx
index ae52ca4046..d3813ad696 100644
--- a/basic/inc/basic/sbmod.hxx
+++ b/basic/inc/basic/sbmod.hxx
@@ -35,10 +35,12 @@
#include <rtl/ustring.hxx>
#include <vector>
+#include <deque>
+
class SbMethod;
class SbProperty;
class SbiRuntime;
-class SbiBreakpoints;
+typedef std::deque< USHORT > SbiBreakpoints;
class SbiImage;
class SbProcedureProperty;
class SbIfaceMapperMethod;
@@ -115,8 +117,8 @@ public:
const SbxObject* FindType( String aTypeName ) const;
virtual BOOL IsBreakable( USHORT nLine ) const;
- virtual USHORT GetBPCount() const;
- virtual USHORT GetBP( USHORT n ) const;
+ virtual size_t GetBPCount() const;
+ virtual USHORT GetBP( size_t n ) const;
virtual BOOL IsBP( USHORT nLine ) const;
virtual BOOL SetBP( USHORT nLine );
virtual BOOL ClearBP( USHORT nLine );
diff --git a/basic/inc/basic/sbstar.hxx b/basic/inc/basic/sbstar.hxx
index 299b1e19eb..9ad0294c30 100644
--- a/basic/inc/basic/sbstar.hxx
+++ b/basic/inc/basic/sbstar.hxx
@@ -44,7 +44,6 @@ class SbiInstance; // runtime instance
class SbiRuntime; // currently running procedure
class SbiImage; // compiled image
class BasicLibInfo; // info block for basic manager
-class SbiBreakpoints;
class SbTextPortions;
class SbMethod;
class BasicManager;
diff --git a/basic/inc/basic/ttstrhlp.hxx b/basic/inc/basic/ttstrhlp.hxx
index 4eb42f3a3e..b971d5c1d1 100644
--- a/basic/inc/basic/ttstrhlp.hxx
+++ b/basic/inc/basic/ttstrhlp.hxx
@@ -31,6 +31,8 @@
#define CByteString( constAsciiStr ) ByteString( RTL_CONSTASCII_STRINGPARAM ( constAsciiStr ) )
#define CUniString( constAsciiStr ) UniString( RTL_CONSTASCII_USTRINGPARAM ( constAsciiStr ) )
+#define Str2Id( Str ) rtl::OUStringToOString( Str, RTL_TEXTENCODING_ASCII_US )
+#define Id2Str( Id ) String( rtl::OStringToOUString( Id, RTL_TEXTENCODING_ASCII_US ) )
#define StartKenn CUniString("%")
#define EndKenn CUniString("%")
@@ -42,7 +44,7 @@
#define TabKenn ( StartKenn.AppendAscii("Tab") )
#define MakeStringParam(Type,aText) ( Type.AppendAscii("=").Append( aText ).Append( EndKenn ) )
#define MakeStringNumber(Type,nNumber) MakeStringParam (Type, UniString::CreateFromInt32(nNumber))
-#define UIdString(aID) MakeStringParam(UIdKenn,aID.GetText())
+#define UIdString(aID) MakeStringParam(UIdKenn,String(rtl::OStringToOUString( aID, RTL_TEXTENCODING_ASCII_US )))
#define MethodString(nNumber) MakeStringNumber(MethodKenn,nNumber)
#define TypeString(nNumber) MakeStringNumber(TypeKenn,nNumber)
#define SlotString(nNumber) MakeStringNumber(SlotKenn,nNumber)
diff --git a/basic/source/app/basic.src b/basic/source/app/basic.src
index d93ca2fa23..045dec2683 100644
--- a/basic/source/app/basic.src
+++ b/basic/source/app/basic.src
@@ -29,6 +29,7 @@
#include "resids.hrc"
ModalDialog RID_CALLDLG {
+ HelpID = "basic:ModalDialog:RID_CALLDLG";
PosSize = MAP_SYSFONT (18,18,142,142);
SVLook = TRUE;
MOVEABLE = TRUE;
@@ -43,11 +44,13 @@ ModalDialog RID_CALLDLG {
PosSize = MAP_SYSFONT (10,70,120,8);
};
Edit RID_RETVAL {
+ HelpID = "basic:Edit:RID_CALLDLG:RID_RETVAL";
PosSize = MAP_SYSFONT (10,85,120,12);
Border = TRUE;
TabStop = TRUE;
};
ListBox RID_PARAMS {
+ HelpID = "basic:ListBox:RID_CALLDLG:RID_PARAMS";
PosSize = MAP_SYSFONT (10,25,120,40);
TabStop = TRUE;
Border = TRUE;
@@ -61,6 +64,7 @@ ModalDialog RID_CALLDLG {
};
ModalDialog IDD_ABOUT_DIALOG {
+ HelpID = "basic:ModalDialog:IDD_ABOUT_DIALOG";
Pos = MAP_APPFONT( 58, 17 );
Size = MAP_APPFONT( 155, 106 );
SVLook = TRUE;
@@ -107,6 +111,7 @@ ModalDialog IDD_ABOUT_DIALOG {
};
ModalDialog IDD_TT_ABOUT_DIALOG {
+ HelpID = "basic:ModalDialog:IDD_TT_ABOUT_DIALOG";
Pos = MAP_APPFONT( 58, 17 );
Size = MAP_APPFONT( 120, 81 );
SVLook = TRUE;
@@ -138,6 +143,7 @@ ModalDialog IDD_TT_ABOUT_DIALOG {
};
ModalDialog IDD_FIND_DIALOG {
+ HelpID = "basic:ModalDialog:IDD_FIND_DIALOG";
Pos = MAP_APPFONT( 69, 30 );
Size = MAP_APPFONT( 185, 70 );
SVLook = TRUE;
@@ -150,6 +156,7 @@ ModalDialog IDD_FIND_DIALOG {
TEXT[ en-US ] = "~Text";
};
Edit RID_FIND {
+ HelpID = "basic:Edit:IDD_FIND_DIALOG:RID_FIND";
BORDER = TRUE;
Pos = MAP_APPFONT( 40, 8 );
Size = MAP_APPFONT( 135, 12 );
@@ -172,6 +179,7 @@ ModalDialog IDD_FIND_DIALOG {
};
ModalDialog IDD_REPLACE_DIALOG {
+ HelpID = "basic:ModalDialog:IDD_REPLACE_DIALOG";
Pos = MAP_APPFONT( 69, 30 );
Size = MAP_APPFONT( 185, 88 );
SVLook = TRUE;
@@ -188,12 +196,14 @@ ModalDialog IDD_REPLACE_DIALOG {
TEXT[ en-US ] = "~Replace by";
};
Edit RID_FIND {
+ HelpID = "basic:Edit:IDD_REPLACE_DIALOG:RID_FIND";
BORDER = TRUE;
Pos = MAP_APPFONT( 65, 8 );
Size = MAP_APPFONT( 110, 12 );
TABSTOP = TRUE;
};
Edit RID_REPLACE {
+ HelpID = "basic:Edit:IDD_REPLACE_DIALOG:RID_REPLACE";
BORDER = TRUE;
Pos = MAP_APPFONT( 65, 28 );
Size = MAP_APPFONT( 110, 12 );
@@ -718,6 +728,7 @@ Menu RID_HELP {
};
};
ModelessDialog IDD_PRINT_DIALOG {
+ HelpID = "basic:ModelessDialog:IDD_PRINT_DIALOG";
Pos = MAP_APPFONT( 83, 42 );
Size = MAP_APPFONT( 171, 94 );
MOVEABLE = TRUE;
@@ -784,6 +795,7 @@ TabDialog IDD_OPTIONS_DLG
TabPage RID_TP_GENERIC {
+ HelpID = "basic:TabPage:RID_TP_GENERIC";
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT( 244, 100 );
@@ -793,6 +805,7 @@ TabPage RID_TP_GENERIC {
Text[ en-US ] = "Area";
};
ComboBox RID_CB_AREA {
+ HelpID = "basic:ComboBox:RID_TP_GENERIC:RID_CB_AREA";
HScroll = TRUE;
VScroll = TRUE;
AutoHScroll = TRUE;
@@ -803,12 +816,14 @@ TabPage RID_TP_GENERIC {
DropDown = TRUE;
};
PushButton RID_PB_NEW_AREA {
+ HelpID = "basic:PushButton:RID_TP_GENERIC:RID_PB_NEW_AREA";
Pos = MAP_APPFONT( 144, 12 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
Text[ en-US ] = "New";
};
PushButton RID_PD_DEL_AREA {
+ HelpID = "basic:PushButton:RID_TP_GENERIC:RID_PD_DEL_AREA";
Pos = MAP_APPFONT( 188, 12 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
@@ -820,6 +835,7 @@ TabPage RID_TP_GENERIC {
Text[ en-US ] = "Setting";
};
ComboBox RID_CB_VALUE {
+ HelpID = "basic:ComboBox:RID_TP_GENERIC:RID_CB_VALUE";
HScroll = TRUE;
VScroll = TRUE;
AutoHScroll = TRUE;
@@ -829,6 +845,7 @@ TabPage RID_TP_GENERIC {
TabStop = TRUE;
};
PushButton RID_PB_SELECT_FILE {
+ HelpID = "basic:PushButton:RID_TP_GENERIC:RID_PB_SELECT_FILE";
Pos = MAP_APPFONT( 188, 48 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
@@ -837,12 +854,14 @@ TabPage RID_TP_GENERIC {
Hide = TRUE;
};
PushButton RID_PB_NEW_VALUE {
+ HelpID = "basic:PushButton:RID_TP_GENERIC:RID_PB_NEW_VALUE";
Pos = MAP_APPFONT( 188, 48 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
Text[ en-US ] = "New";
};
PushButton RID_PB_DEL_VALUE {
+ HelpID = "basic:PushButton:RID_TP_GENERIC:RID_PB_DEL_VALUE";
Pos = MAP_APPFONT( 188, 64 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
@@ -852,6 +871,7 @@ TabPage RID_TP_GENERIC {
TabPage RID_TP_PROFILE {
+ HelpID = "basic:TabPage:RID_TP_PROFILE";
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT( 244, 100 );
@@ -861,6 +881,7 @@ TabPage RID_TP_PROFILE {
Text[ en-US ] = "Profile";
};
ComboBox RID_CB_PROFILE {
+ HelpID = "basic:ComboBox:RID_TP_PROFILE:RID_CB_PROFILE";
HScroll = TRUE;
VScroll = TRUE;
AutoHScroll = TRUE;
@@ -871,12 +892,14 @@ TabPage RID_TP_PROFILE {
DropDown = TRUE;
};
PushButton RID_PB_NEW_PROFILE {
+ HelpID = "basic:PushButton:RID_TP_PROFILE:RID_PB_NEW_PROFILE";
Pos = MAP_APPFONT( 144, 2 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
Text[ en-US ] = "New";
};
PushButton RID_PD_DEL_PROFILE {
+ HelpID = "basic:PushButton:RID_TP_PROFILE:RID_PD_DEL_PROFILE";
Pos = MAP_APPFONT( 188, 2 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
@@ -898,6 +921,7 @@ TabPage RID_TP_PROFILE {
Text[ en-US ] = "Base directory";
};
CheckBox HID_CHECK {
+ HelpID = "basic:CheckBox:RID_TP_PROFILE:HID_CHECK";
Pos = MAP_APPFONT( 7, 58 );
Size = MAP_APPFONT( 86, 12 );
Text[ en-US ] = "Default HID directory";
@@ -905,52 +929,61 @@ TabPage RID_TP_PROFILE {
Hide = FALSE;
};
Edit LOG_NAME {
+ HelpID = "basic:Edit:RID_TP_PROFILE:LOG_NAME";
Border = TRUE;
Pos = MAP_APPFONT( 97, 26 );
Size = MAP_APPFONT( 116, 12 );
TabStop = TRUE;
};
Edit BASIS_NAME {
+ HelpID = "basic:Edit:RID_TP_PROFILE:BASIS_NAME";
Border = TRUE;
Pos = MAP_APPFONT( 97, 42 );
Size = MAP_APPFONT( 116, 12 );
TabStop = TRUE;
};
Edit HID_NAME {
+ HelpID = "basic:Edit:RID_TP_PROFILE:HID_NAME";
Border = TRUE;
Pos = MAP_APPFONT( 97, 58 );
Size = MAP_APPFONT( 116, 12 );
TabStop = TRUE;
};
PushButton LOG_SET {
+ HelpID = "basic:PushButton:RID_TP_PROFILE:LOG_SET";
Pos = MAP_APPFONT( 217, 26 );
Size = MAP_APPFONT( 12, 12 );
TabStop = TRUE;
Text[ en-US ] = "...";
};
PushButton BASIS_SET {
+ HelpID = "basic:PushButton:RID_TP_PROFILE:BASIS_SET";
Pos = MAP_APPFONT( 217, 42 );
Size = MAP_APPFONT( 12, 12 );
TabStop = TRUE;
Text[ en-US ] = "...";
};
PushButton HID_SET {
+ HelpID = "basic:PushButton:RID_TP_PROFILE:HID_SET";
Pos = MAP_APPFONT( 217, 58 );
Size = MAP_APPFONT( 12, 12 );
TabStop = TRUE;
Text[ en-US ] = "...";
};
CheckBox CB_AUTORELOAD {
+ HelpID = "basic:CheckBox:RID_TP_PROFILE:CB_AUTORELOAD";
Pos = MAP_APPFONT( 7, 74 );
Size = MAP_APPFONT( 115, 12 );
Text[ en-US ] = "AutoReload";
};
CheckBox CB_AUTOSAVE {
+ HelpID = "basic:CheckBox:RID_TP_PROFILE:CB_AUTOSAVE";
Pos = MAP_APPFONT( 7, 87 );
Size = MAP_APPFONT( 115, 12 );
Text[ en-US ] = "Save before execute";
};
CheckBox CB_STOPONSYNTAXERRORS {
+ HelpID = "basic:CheckBox:RID_TP_PROFILE:CB_STOPONSYNTAXERRORS";
Pos = MAP_APPFONT( 132, 74 );
Size = MAP_APPFONT( 115, 12 );
Text[ en-US ] = "Stop on Syntax Errors";
@@ -958,6 +991,7 @@ TabPage RID_TP_PROFILE {
};
TabPage RID_TP_CRASH {
+ HelpID = "basic:TabPage:RID_TP_CRASH";
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT( 244, 100 );
@@ -967,6 +1001,7 @@ TabPage RID_TP_CRASH {
Text[ en-US ] = "Crashreport";
};
CheckBox CB_USEPROXY {
+ HelpID = "basic:CheckBox:RID_TP_CRASH:CB_USEPROXY";
Pos = MAP_APPFONT( 8, 12 );
Size = MAP_APPFONT( 120, 12 );
Text[ en-US ] = "Use Proxy";
@@ -977,6 +1012,7 @@ TabPage RID_TP_CRASH {
Text[ en-US ] = "Host";
};
Edit ED_CRHOST {
+ HelpID = "basic:Edit:RID_TP_CRASH:ED_CRHOST";
Border = TRUE;
Pos = MAP_APPFONT( 43+12, 12+13 );
Size = MAP_APPFONT( 80, 12 );
@@ -988,6 +1024,7 @@ TabPage RID_TP_CRASH {
Text[ en-US ] = "Port";
};
NumericField NF_CRPORT {
+ HelpID = "basic:NumericField:RID_TP_CRASH:NF_CRPORT";
Border = TRUE;
Pos = MAP_APPFONT( 43+12, 12+13+16 );
Size = MAP_APPFONT( 40, 12 );
@@ -1001,6 +1038,7 @@ TabPage RID_TP_CRASH {
Last = 0xffff;
};
CheckBox CB_ALLOWCONTACT {
+ HelpID = "basic:CheckBox:RID_TP_CRASH:CB_ALLOWCONTACT";
Pos = MAP_APPFONT( 8, 12+13+16+16 );
Size = MAP_APPFONT( 120, 12 );
Text[ en-US ] = "Allow Contact";
@@ -1011,6 +1049,7 @@ TabPage RID_TP_CRASH {
Text[ en-US ] = "EMail";
};
Edit ED_EMAIL {
+ HelpID = "basic:Edit:RID_TP_CRASH:ED_EMAIL";
Border = TRUE;
Pos = MAP_APPFONT( 43+12, 12+13+16+16+13 );
Size = MAP_APPFONT( 80, 12 );
@@ -1020,6 +1059,7 @@ TabPage RID_TP_CRASH {
TabPage RID_TP_MISC {
+ HelpID = "basic:TabPage:RID_TP_MISC";
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT( 244, 100 );
@@ -1034,6 +1074,7 @@ TabPage RID_TP_MISC {
Text[ en-US ] = "Host";
};
Edit ED_HOST {
+ HelpID = "basic:Edit:RID_TP_MISC:ED_HOST";
Border = TRUE;
Pos = MAP_APPFONT( 43, 12);
Size = MAP_APPFONT( 80, 12 );
@@ -1045,6 +1086,7 @@ TabPage RID_TP_MISC {
Text[ en-US ] = "Testtool Port";
};
NumericField NF_TTPORT {
+ HelpID = "basic:NumericField:RID_TP_MISC:NF_TTPORT";
Border = TRUE;
Pos = MAP_APPFONT( 191, 12);
Size = MAP_APPFONT( 40, 12 );
@@ -1063,6 +1105,7 @@ TabPage RID_TP_MISC {
Text[ en-US ] = "Remote UNO Port";
};
NumericField NF_UNOPORT {
+ HelpID = "basic:NumericField:RID_TP_MISC:NF_UNOPORT";
Border = TRUE;
Pos = MAP_APPFONT( 191, 12+15);
Size = MAP_APPFONT( 40, 12 );
@@ -1087,6 +1130,7 @@ TabPage RID_TP_MISC {
Text[ en-US ] = "Server Timeout";
};
TimeField SERVER_TIMEOUT {
+ HelpID = "basic:TimeField:RID_TP_MISC:SERVER_TIMEOUT";
Border = TRUE;
Pos = MAP_APPFONT( 83, 50 );
Size = MAP_APPFONT( 40, 12 );
@@ -1102,6 +1146,7 @@ TabPage RID_TP_MISC {
Text[ en-US ] = "Max LRU Files";
};
NumericField TF_MAX_LRU {
+ HelpID = "basic:NumericField:RID_TP_MISC:TF_MAX_LRU";
Border = TRUE;
Pos = MAP_APPFONT( 191, 50);
Size = MAP_APPFONT( 40, 12 );
@@ -1118,12 +1163,14 @@ TabPage RID_TP_MISC {
Text[ en-US ] = "OOo Program Dir";
};
Edit ED_PROGDIR {
+ HelpID = "basic:Edit:RID_TP_MISC:ED_PROGDIR";
Border = TRUE;
Pos = MAP_APPFONT( 83, 50+15 );
Size = MAP_APPFONT( 219-83-4, 12 );
TabStop = TRUE;
};
PushButton PB_PROGDIR {
+ HelpID = "basic:PushButton:RID_TP_MISC:PB_PROGDIR";
Pos = MAP_APPFONT( 219, 50+15 );
Size = MAP_APPFONT( 12, 12 );
TabStop = TRUE;
@@ -1133,6 +1180,7 @@ TabPage RID_TP_MISC {
TabPage RID_TP_FONT {
+ HelpID = "basic:TabPage:RID_TP_FONT";
Hide = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT( 244, 100 );
@@ -1142,6 +1190,7 @@ TabPage RID_TP_FONT {
Text[ en-US ] = "Type";
};
ComboBox CB_FONTNAME {
+ HelpID = "basic:ComboBox:RID_TP_FONT:CB_FONTNAME";
Pos = MAP_APPFONT( 4, 12 );
Size = MAP_APPFONT( 123, 12*4 );
Sort = TRUE;
@@ -1153,6 +1202,7 @@ TabPage RID_TP_FONT {
Text[ en-US ] = "Typeface";
};
ComboBox CB_FONTSTYLE {
+ HelpID = "basic:ComboBox:RID_TP_FONT:CB_FONTSTYLE";
Pos = MAP_APPFONT( 131, 12 );
Size = MAP_APPFONT( 65, 12*4 );
AutoHScroll = TRUE;
@@ -1163,6 +1213,7 @@ TabPage RID_TP_FONT {
Text[ en-US ] = "Size";
};
MetricBox MB_FONTSIZE {
+ HelpID = "basic:MetricBox:RID_TP_FONT:MB_FONTSIZE";
Pos = MAP_APPFONT( 200, 12 );
Size = MAP_APPFONT( 29, 12*4 );
AutoHScroll = TRUE;
@@ -1178,6 +1229,7 @@ TabPage RID_TP_FONT {
FloatingWindow IDD_DISPLAY_HID {
+ HelpID = "basic:FloatingWindow:IDD_DISPLAY_HID";
OutputSize = TRUE;
SVLook = TRUE;
Size = MAP_APPFONT( 261, 160 );
@@ -1204,6 +1256,7 @@ FloatingWindow IDD_DISPLAY_HID {
Text[ en-US ] = "Controls";
};
MultiListBox RID_MLB_CONTROLS {
+ HelpID = "basic:MultiListBox:IDD_DISPLAY_HID:RID_MLB_CONTROLS";
Border = TRUE;
AutoHScroll = TRUE;
Pos = MAP_APPFONT( 4, 28 );
@@ -1216,6 +1269,7 @@ FloatingWindow IDD_DISPLAY_HID {
Text[ en-US ] = "Slots";
};
MultiListBox RID_MLB_SLOTS {
+ HelpID = "basic:MultiListBox:IDD_DISPLAY_HID:RID_MLB_SLOTS";
Border = TRUE;
AutoHScroll = TRUE;
Pos = MAP_APPFONT( 4, 132 );
@@ -1223,12 +1277,14 @@ FloatingWindow IDD_DISPLAY_HID {
TabStop = TRUE;
};
PushButton RID_PB_KOPIEREN {
+ HelpID = "basic:PushButton:IDD_DISPLAY_HID:RID_PB_KOPIEREN";
Pos = MAP_APPFONT( 216, 28 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
Text[ en-US ] = "Copy";
};
PushButton RID_PB_BENENNEN {
+ HelpID = "basic:PushButton:IDD_DISPLAY_HID:RID_PB_BENENNEN";
Pos = MAP_APPFONT( 216, 44 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
@@ -1236,6 +1292,7 @@ FloatingWindow IDD_DISPLAY_HID {
Text[ en-US ] = "Name";
};
PushButton RID_PB_SELECTALL {
+ HelpID = "basic:PushButton:IDD_DISPLAY_HID:RID_PB_SELECTALL";
Pos = MAP_APPFONT( 216, 44 );
Size = MAP_APPFONT( 40, 12 );
TabStop = TRUE;
@@ -1356,6 +1413,7 @@ ImageList RID_IMGLST_LAYOUT
};
ModelessDialog IDD_EDIT_VAR {
+ HelpID = "basic:ModelessDialog:IDD_EDIT_VAR";
Pos = MAP_APPFONT( 0, 0 );
Size = MAP_APPFONT( 171, 87 );
Moveable = TRUE;
@@ -1386,6 +1444,7 @@ ModelessDialog IDD_EDIT_VAR {
Text[ en-US ] = "Previous contents";
};
RadioButton RID_RB_NEW_BOOL_T {
+ HelpID = "basic:RadioButton:IDD_EDIT_VAR:RID_RB_NEW_BOOL_T";
Hide = TRUE;
Pos = MAP_APPFONT( 53, 37 );
Size = MAP_APPFONT( 40, 12 );
@@ -1393,6 +1452,7 @@ ModelessDialog IDD_EDIT_VAR {
Text[ en-US ] = "True";
};
RadioButton RID_RB_NEW_BOOL_F {
+ HelpID = "basic:RadioButton:IDD_EDIT_VAR:RID_RB_NEW_BOOL_F";
Hide = TRUE;
Pos = MAP_APPFONT( 98, 37 );
Size = MAP_APPFONT( 40, 12 );
@@ -1400,6 +1460,7 @@ ModelessDialog IDD_EDIT_VAR {
Text[ en-US ] = "False";
};
NumericField RID_NF_NEW_INTEGER {
+ HelpID = "basic:NumericField:IDD_EDIT_VAR:RID_NF_NEW_INTEGER";
Border = TRUE;
Hide = TRUE;
Pos = MAP_APPFONT( 53, 37 );
@@ -1414,6 +1475,7 @@ ModelessDialog IDD_EDIT_VAR {
SpinSize = 10;
};
NumericField RID_NF_NEW_LONG {
+ HelpID = "basic:NumericField:IDD_EDIT_VAR:RID_NF_NEW_LONG";
Border = TRUE;
Hide = TRUE;
Pos = MAP_APPFONT( 53, 37 );
@@ -1428,6 +1490,7 @@ ModelessDialog IDD_EDIT_VAR {
SpinSize = 10;
};
Edit RID_ED_NEW_STRING {
+ HelpID = "basic:Edit:IDD_EDIT_VAR:RID_ED_NEW_STRING";
Hide = TRUE;
Border = TRUE;
Pos = MAP_APPFONT( 53, 37 );
@@ -1449,6 +1512,7 @@ ModelessDialog IDD_EDIT_VAR {
};
FloatingWindow LOAD_CONF {
+ HelpID = "basic:FloatingWindow:LOAD_CONF";
SVLook = TRUE;
Pos = MAP_APPFONT( 66, 23 );
Size = MAP_APPFONT( 156, 51 );
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index 834d7316a2..b3fbd26caa 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -444,11 +444,7 @@ TYPEINIT1(SbJScriptMethod,SbMethod)
TYPEINIT1(SbObjModule,SbModule)
TYPEINIT1(SbUserFormModule,SbObjModule)
-SV_DECL_VARARR(SbiBreakpoints,USHORT,4,4)
-SV_IMPL_VARARR(SbiBreakpoints,USHORT)
-
-
-SV_IMPL_VARARR(HighlightPortions, HighlightPortion)
+typedef std::vector<HighlightPortion> HighlightPortions;
bool getDefaultVBAMode( StarBASIC* pb )
{
@@ -1478,15 +1474,15 @@ BOOL SbModule::IsBreakable( USHORT nLine ) const
return FALSE;
}
-USHORT SbModule::GetBPCount() const
+size_t SbModule::GetBPCount() const
{
- return pBreaks ? pBreaks->Count() : 0;
+ return pBreaks ? pBreaks->size() : 0;
}
-USHORT SbModule::GetBP( USHORT n ) const
+USHORT SbModule::GetBP( size_t n ) const
{
- if( pBreaks && n < pBreaks->Count() )
- return pBreaks->GetObject( n );
+ if( pBreaks && n < pBreaks->size() )
+ return pBreaks->operator[]( n );
else
return 0;
}
@@ -1495,11 +1491,9 @@ BOOL SbModule::IsBP( USHORT nLine ) const
{
if( pBreaks )
{
- const USHORT* p = pBreaks->GetData();
- USHORT n = pBreaks->Count();
- for( USHORT i = 0; i < n; i++, p++ )
+ for( size_t i = 0; i < pBreaks->size(); i++ )
{
- USHORT b = *p;
+ USHORT b = pBreaks->operator[]( i );
if( b == nLine )
return TRUE;
if( b < nLine )
@@ -1515,18 +1509,16 @@ BOOL SbModule::SetBP( USHORT nLine )
return FALSE;
if( !pBreaks )
pBreaks = new SbiBreakpoints;
- const USHORT* p = pBreaks->GetData();
- USHORT n = pBreaks->Count();
- USHORT i;
- for( i = 0; i < n; i++, p++ )
+ size_t i;
+ for( i = 0; i < pBreaks->size(); i++ )
{
- USHORT b = *p;
+ USHORT b = pBreaks->operator[]( i );
if( b == nLine )
return TRUE;
if( b < nLine )
break;
}
- pBreaks->Insert( &nLine, 1, i );
+ pBreaks->insert( pBreaks->begin() + i, nLine );
// #38568: Zur Laufzeit auch hier SbDEBUG_BREAK setzen
if( pINST && pINST->pRun )
@@ -1540,19 +1532,19 @@ BOOL SbModule::ClearBP( USHORT nLine )
BOOL bRes = FALSE;
if( pBreaks )
{
- const USHORT* p = pBreaks->GetData();
- USHORT n = pBreaks->Count();
- for( USHORT i = 0; i < n; i++, p++ )
+ for( size_t i = 0; i < pBreaks->size(); i++ )
{
- USHORT b = *p;
+ USHORT b = pBreaks->operator[]( i );
if( b == nLine )
{
- pBreaks->Remove( i, 1 ); bRes = TRUE; break;
+ pBreaks->erase( pBreaks->begin() + i );
+ bRes = TRUE;
+ break;
}
if( b < nLine )
break;
}
- if( !pBreaks->Count() )
+ if( pBreaks->empty() )
delete pBreaks, pBreaks = NULL;
}
return bRes;
@@ -1560,7 +1552,8 @@ BOOL SbModule::ClearBP( USHORT nLine )
void SbModule::ClearAllBP()
{
- delete pBreaks; pBreaks = NULL;
+ delete pBreaks;
+ pBreaks = NULL;
}
void
@@ -1588,7 +1581,7 @@ BOOL SbModule::LoadData( SvStream& rStrm, USHORT nVer )
Clear();
if( !SbxObject::LoadData( rStrm, 1 ) )
return FALSE;
- // Sicherheitshalber...
+ // Precaution...
SetFlag( SBX_EXTSEARCH | SBX_GBLSEARCH );
BYTE bImage;
rStrm >> bImage;
diff --git a/configmgr/source/components.cxx b/configmgr/source/components.cxx
index 14102f5628..32478e9681 100644
--- a/configmgr/source/components.cxx
+++ b/configmgr/source/components.cxx
@@ -29,6 +29,7 @@
#include "sal/config.h"
#include <algorithm>
+#include <cstddef>
#include <list>
#include "com/sun/star/beans/Optional.hpp"
@@ -43,8 +44,11 @@
#include "com/sun/star/uno/RuntimeException.hpp"
#include "com/sun/star/uno/XComponentContext.hpp"
#include "com/sun/star/uno/XInterface.hpp"
+#include "osl/conditn.hxx"
#include "osl/diagnose.h"
#include "osl/file.hxx"
+#include "osl/mutex.hxx"
+#include "osl/thread.hxx"
#include "rtl/bootstrap.hxx"
#include "rtl/logfile.h"
#include "rtl/ref.hxx"
@@ -53,10 +57,12 @@
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
+#include "salhelper/simplereferenceobject.hxx"
#include "additions.hxx"
#include "components.hxx"
#include "data.hxx"
+#include "lock.hxx"
#include "modifications.hxx"
#include "node.hxx"
#include "nodemap.hxx"
@@ -148,6 +154,66 @@ static Components * singleton = 0;
}
+class Components::WriteThread:
+ public osl::Thread, public salhelper::SimpleReferenceObject
+{
+public:
+ static void * operator new(std::size_t size)
+ { return Thread::operator new(size); }
+
+ static void operator delete(void * pointer)
+ { Thread::operator delete(pointer); }
+
+ WriteThread(
+ rtl::Reference< WriteThread > * reference, Components & components,
+ rtl::OUString const & url, Data const & data);
+
+ void flush() { delay_.set(); }
+
+private:
+ virtual ~WriteThread() {}
+
+ virtual void SAL_CALL run();
+
+ virtual void SAL_CALL onTerminated() { release(); }
+
+ rtl::Reference< WriteThread > * reference_;
+ Components & components_;
+ rtl::OUString url_;
+ Data const & data_;
+ osl::Condition delay_;
+};
+
+Components::WriteThread::WriteThread(
+ rtl::Reference< WriteThread > * reference, Components & components,
+ rtl::OUString const & url, Data const & data):
+ reference_(reference), components_(components), url_(url), data_(data)
+{
+ OSL_ASSERT(reference != 0);
+ acquire();
+}
+
+void Components::WriteThread::run() {
+ TimeValue t = { 1, 0 }; // 1 sec
+ delay_.wait(&t); // must not throw; result_error is harmless and ignored
+ osl::MutexGuard g(lock); // must not throw
+ try {
+ try {
+ writeModFile(components_, url_, data_);
+ } catch (css::uno::RuntimeException & e) {
+ // Silently ignore write errors, instead of aborting:
+ OSL_TRACE(
+ "configmgr error writing modifications: %s",
+ rtl::OUStringToOString(
+ e.Message, RTL_TEXTENCODING_UTF8).getStr());
+ }
+ } catch (...) {
+ reference_->clear();
+ throw;
+ }
+ reference_->clear();
+}
+
void Components::initSingleton(
css::uno::Reference< css::uno::XComponentContext > const & context)
{
@@ -238,7 +304,23 @@ void Components::addModification(Path const & path) {
}
void Components::writeModifications() {
- writeModFile(*this, getModificationFileUrl(), data_);
+ if (!writeThread_.is()) {
+ writeThread_ = new WriteThread(
+ &writeThread_, *this, getModificationFileUrl(), data_);
+ writeThread_->create();
+ }
+}
+
+void Components::flushModifications() {
+ rtl::Reference< WriteThread > thread;
+ {
+ osl::MutexGuard g(lock);
+ thread = writeThread_;
+ }
+ if (thread.is()) {
+ thread->flush();
+ thread->join();
+ }
}
void Components::insertExtensionXcsFile(
diff --git a/configmgr/source/components.hxx b/configmgr/source/components.hxx
index 4fc47f7918..1c735efca6 100644
--- a/configmgr/source/components.hxx
+++ b/configmgr/source/components.hxx
@@ -94,6 +94,11 @@ public:
void writeModifications();
+ void flushModifications();
+ // must be called with configmgr::lock unaquired; must be called before
+ // shutdown if writeModifications has ever been called (probably
+ // indirectly, via removeExtensionXcuFile)
+
void insertExtensionXcsFile(bool shared, rtl::OUString const & fileUri);
void insertExtensionXcuFile(
@@ -160,11 +165,14 @@ private:
com::sun::star::beans::XPropertySet > >
ExternalServices;
+ class WriteThread;
+
com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext >
context_;
Data data_;
WeakRootSet roots_;
ExternalServices externalServices_;
+ rtl::Reference< WriteThread > writeThread_;
};
}
diff --git a/configmgr/source/configurationprovider.cxx b/configmgr/source/configurationprovider.cxx
index 78d71e73e7..3cd58b145b 100644
--- a/configmgr/source/configurationprovider.cxx
+++ b/configmgr/source/configurationprovider.cxx
@@ -114,6 +114,8 @@ public:
private:
virtual ~Service() {}
+ virtual void SAL_CALL disposing() { flushModifications(); }
+
virtual rtl::OUString SAL_CALL getImplementationName()
throw (css::uno::RuntimeException)
{ return configuration_provider::getImplementationName(); }
@@ -166,6 +168,8 @@ private:
virtual css::lang::Locale SAL_CALL getLocale()
throw (css::uno::RuntimeException);
+ void flushModifications() const;
+
css::uno::Reference< css::uno::XComponentContext > context_;
rtl::OUString locale_;
};
@@ -326,7 +330,7 @@ void Service::removeRefreshListener(
}
void Service::flush() throw (css::uno::RuntimeException) {
- //TODO
+ flushModifications();
cppu::OInterfaceContainerHelper * cont = rBHelper.getContainer(
cppu::UnoType< css::util::XFlushListener >::get());
if (cont != 0) {
@@ -380,6 +384,16 @@ css::lang::Locale Service::getLocale() throw (css::uno::RuntimeException) {
return loc;
}
+void Service::flushModifications() const {
+ Components * components;
+ {
+ osl::MutexGuard guard(lock);
+ Components::initSingleton(context_);
+ components = &Components::getSingleton();
+ }
+ components->flushModifications();
+}
+
class Factory:
public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
private boost::noncopyable
diff --git a/connectivity/source/parse/sqlbison.y b/connectivity/source/parse/sqlbison.y
index 84e9aa2532..9709d33fdf 100644
--- a/connectivity/source/parse/sqlbison.y
+++ b/connectivity/source/parse/sqlbison.y
@@ -2627,7 +2627,7 @@ value_exp_commalist:
}
;
function_arg:
- value_exp
+ result
| value_exp comparison value_exp
{
$$ = SQL_NEW_RULE;
diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
index 510b16d8e0..5c3d3a3dd3 100644
--- a/desktop/inc/app.hxx
+++ b/desktop/inc/app.hxx
@@ -155,6 +155,7 @@ class Desktop : public Application
sal_Bool InitializeInstallation( const rtl::OUString& rAppFilename );
sal_Bool InitializeConfiguration();
+ void FlushConfiguration();
sal_Bool InitializeQuickstartMode( com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rSMgr );
void HandleBootstrapPathErrors( ::utl::Bootstrap::Status, const ::rtl::OUString& aMsg );
diff --git a/desktop/prj/build.lst b/desktop/prj/build.lst
index dc5d7a99b2..0fedcd4c2d 100644
--- a/desktop/prj/build.lst
+++ b/desktop/prj/build.lst
@@ -41,3 +41,4 @@ dt desktop\registry\data\org\openoffice\Office nmake - a
dt desktop\source\registration\com\sun\star\servicetag\resources get - all sn_svctagres NULL
dt desktop\source\registration\com\sun\star\servicetag nmake - all sn_svctag NULL
dt desktop\source\registration\com\sun\star\registration nmake - all sn_regjob sn_svctag NULL
+dt desktop\qa\deployment_misc nmake - all sn_qa_deployment_misc dt_dp_misc dt_inc NULL
diff --git a/desktop/qa/deployment_misc/makefile.mk b/desktop/qa/deployment_misc/makefile.mk
index 15faef0dc4..16223914e7 100644
--- a/desktop/qa/deployment_misc/makefile.mk
+++ b/desktop/qa/deployment_misc/makefile.mk
@@ -35,20 +35,22 @@ ENABLE_EXCEPTIONS := TRUE
.INCLUDE: $(PRJ)$/source$/deployment$/inc$/dp_misc.mk
CFLAGSCXX += $(CPPUNIT_CFLAGS)
-DLLPRE = # no leading "lib" on .so files
+
+# TODO: On Windows, test_dp_version.cxx fails due to BOOL redefinition between
+# windef.h and tools/solar.h caused by including "precompiled_desktop.hxx"; this
+# hack to temporarily disable PCH will become unnecessary with the fix for issue
+# 112600:
+CFLAGSCXX += -DDISABLE_PCH_HACK
SHL1TARGET = $(TARGET)
SHL1OBJS = $(SLO)$/test_dp_version.obj
-SHL1STDLIBS = $(CPPUNITLIB) $(DEPLOYMENTMISCLIB) $(SALLIB) $(TESTSHL2LIB)
+SHL1STDLIBS = $(CPPUNITLIB) $(DEPLOYMENTMISCLIB) $(SALLIB)
SHL1VERSIONMAP = version.map
+SHL1RPATH = NONE
SHL1IMPLIB = i$(SHL1TARGET)
DEF1NAME = $(SHL1TARGET)
SLOFILES = $(SHL1OBJS)
.INCLUDE: target.mk
-
-ALLTAR: test
-
-test .PHONY: $(SHL1TARGETN)
- $(TESTSHL2) $(SHL1TARGETN)
+.INCLUDE : _cppunit.mk
diff --git a/desktop/qa/deployment_misc/test_dp_version.cxx b/desktop/qa/deployment_misc/test_dp_version.cxx
index 5640335990..cc543fc1b9 100644
--- a/desktop/qa/deployment_misc/test_dp_version.cxx
+++ b/desktop/qa/deployment_misc/test_dp_version.cxx
@@ -32,7 +32,10 @@
#include <cstddef>
-#include "testshl/simpleheader.hxx"
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
@@ -83,8 +86,8 @@ void Test::test() {
}
}
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
}
-NOADDITIONAL;
+CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/desktop/qa/deployment_misc/version.map b/desktop/qa/deployment_misc/version.map
index f313c44bd7..0dbbcc5a73 100644
--- a/desktop/qa/deployment_misc/version.map
+++ b/desktop/qa/deployment_misc/version.map
@@ -27,7 +27,7 @@
UDK_3_0_0 {
global:
- registerAllTestFunction;
+ cppunitTestPlugIn;
local:
*;
diff --git a/desktop/scripts/soffice.sh b/desktop/scripts/soffice.sh
index 6ac6c0ca68..a268536181 100644
--- a/desktop/scripts/soffice.sh
+++ b/desktop/scripts/soffice.sh
@@ -95,7 +95,7 @@ if [ -x "$sd_prog/../basis-link/ure-link/bin/javaldx" ] ; then
my_path=`"$sd_prog/../basis-link/ure-link/bin/javaldx" $BOOTSTRAPVARS \
"-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc"`
if [ -n "$my_path" ] ; then
- LD_LIBRARY_PATH=$my_path${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
+ LD_LIBRARY_PATH=$my_path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
fi
fi
diff --git a/desktop/scripts/unopkg.sh b/desktop/scripts/unopkg.sh
index 8a9f638df0..520f9755fa 100644
--- a/desktop/scripts/unopkg.sh
+++ b/desktop/scripts/unopkg.sh
@@ -56,7 +56,7 @@ if [ -x "$sd_prog/../basis-link/ure-link/bin/javaldx" ] ; then
my_path=`"$sd_prog/../basis-link/ure-link/bin/javaldx" $BOOTSTRAPVARS \
"-env:INIFILENAME=vnd.sun.star.pathname:$sd_prog/redirectrc"`
if [ -n "$my_path" ] ; then
- LD_LIBRARY_PATH=$my_path${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
+ LD_LIBRARY_PATH=$my_path${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
fi
fi
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 741ec83988..ae3036a53e 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -754,6 +754,7 @@ void Desktop::DeInit()
// instead of removing of the configManager just let it commit all the changes
RTL_LOGFILE_CONTEXT_TRACE( aLog, "<- store config items" );
utl::ConfigManager::GetConfigManager()->StoreConfigItems();
+ FlushConfiguration();
RTL_LOGFILE_CONTEXT_TRACE( aLog, "<- store config items" );
// close splashscreen if it's still open
@@ -815,6 +816,7 @@ BOOL Desktop::QueryExit()
}
else
{
+ FlushConfiguration();
try
{
// it is no problem to call DisableOfficeIPCThread() more than once
@@ -1436,18 +1438,7 @@ USHORT Desktop::Exception(USHORT nError)
if ( bAllowRecoveryAndSessionManagement )
bRestart = SaveTasks();
- // because there is no method to flush the condiguration data, we must dispose the ConfigManager
- Reference < XFlushable > xCFGFlush( ::utl::ConfigManager::GetConfigManager()->GetConfigurationProvider(), UNO_QUERY );
- if (xCFGFlush.is())
- {
- xCFGFlush->flush();
- }
- else
- {
- Reference < XComponent > xCFGDispose( ::utl::ConfigManager::GetConfigManager()->GetConfigurationProvider(), UNO_QUERY );
- if (xCFGDispose.is())
- xCFGDispose->dispose();
- }
+ FlushConfiguration();
switch( nError & EXC_MAJORTYPE )
{
@@ -1976,6 +1967,7 @@ void Desktop::Main()
// remove temp directory
RemoveTemporaryDirectory();
+ FlushConfiguration();
// The acceptors in the AcceptorMap must be released (in DeregisterServices)
// with the solar mutex unlocked, to avoid deadlock:
nAcquireCount = Application::ReleaseSolarMutex();
@@ -2073,6 +2065,22 @@ sal_Bool Desktop::InitializeConfiguration()
return bOk;
}
+void Desktop::FlushConfiguration()
+{
+ Reference < XFlushable > xCFGFlush( ::utl::ConfigManager::GetConfigManager()->GetConfigurationProvider(), UNO_QUERY );
+ if (xCFGFlush.is())
+ {
+ xCFGFlush->flush();
+ }
+ else
+ {
+ // because there is no method to flush the condiguration data, we must dispose the ConfigManager
+ Reference < XComponent > xCFGDispose( ::utl::ConfigManager::GetConfigManager()->GetConfigurationProvider(), UNO_QUERY );
+ if (xCFGDispose.is())
+ xCFGDispose->dispose();
+ }
+}
+
sal_Bool Desktop::InitializeQuickstartMode( Reference< XMultiServiceFactory >& rSMgr )
{
try
diff --git a/desktop/source/app/desktop.src b/desktop/source/app/desktop.src
index e333c44181..10411e5adb 100644
--- a/desktop/source/app/desktop.src
+++ b/desktop/source/app/desktop.src
@@ -159,6 +159,7 @@ InfoBox INFOBOX_CMDLINEHELP
ModalDialog DLG_CMDLINEHELP
{
+ HelpID = "desktop:ModalDialog:DLG_CMDLINEHELP";
Text = "Help Message...";
Size = MAP_APPFONT(250, 365);
Border = True;
diff --git a/desktop/source/deployment/gui/dp_gui_dependencydialog.src b/desktop/source/deployment/gui/dp_gui_dependencydialog.src
index 80b584f894..1e5d273943 100644
--- a/desktop/source/deployment/gui/dp_gui_dependencydialog.src
+++ b/desktop/source/deployment/gui/dp_gui_dependencydialog.src
@@ -34,6 +34,7 @@
#define LOCAL_LIST_HEIGHT (6 * RSC_BS_CHARHEIGHT)
ModalDialog RID_DLG_DEPENDENCIES {
+ HelpID = "desktop:ModalDialog:RID_DLG_DEPENDENCIES";
Size = MAP_APPFONT(
(RSC_SP_DLG_INNERBORDER_LEFT + LOCAL_WIDTH +
RSC_SP_DLG_INNERBORDER_RIGHT),
@@ -52,6 +53,7 @@ ModalDialog RID_DLG_DEPENDENCIES {
NoLabel = TRUE;
};
ListBox RID_DLG_DEPENDENCIES_LIST {
+ HelpID = "desktop:ListBox:RID_DLG_DEPENDENCIES:RID_DLG_DEPENDENCIES_LIST";
Pos = MAP_APPFONT(
RSC_SP_DLG_INNERBORDER_LEFT,
(RSC_SP_DLG_INNERBORDER_TOP + LOCAL_TEXT_HEIGHT +
diff --git a/desktop/source/deployment/gui/dp_gui_dialog.src b/desktop/source/deployment/gui/dp_gui_dialog.src
index db2e09769d..cf000640c3 100755..100644
--- a/desktop/source/deployment/gui/dp_gui_dialog.src
+++ b/desktop/source/deployment/gui/dp_gui_dialog.src
@@ -169,6 +169,7 @@ String RID_STR_ERROR_MISSING_LICENSE
ModalDialog RID_DLG_LICENSE
{
+ HelpID = "desktop:ModalDialog:RID_DLG_LICENSE";
Text [ en-US ] = "Extension Software License Agreement";
Size = MAP_APPFONT(LIC_DLG_WIDTH, LIC_DLG_HEIGHT);
@@ -181,6 +182,7 @@ ModalDialog RID_DLG_LICENSE
MultiLineEdit ML_LICENSE
{
+ HelpID = "desktop:MultiLineEdit:RID_DLG_LICENSE:ML_LICENSE";
Pos = MAP_APPFONT(COL1_X, ROW1_Y);
Size = MAP_APPFONT(BODYWIDTH, ROW1_HEIGHT);
Border = TRUE;
@@ -230,6 +232,7 @@ ModalDialog RID_DLG_LICENSE
};
PushButton PB_LICENSE_DOWN
{
+ HelpID = "desktop:PushButton:RID_DLG_LICENSE:PB_LICENSE_DOWN";
TabStop = TRUE ;
Pos = MAP_APPFONT(COL5_X , ROW3_Y) ;
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT) ;
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.src b/desktop/source/deployment/gui/dp_gui_dialog2.src
index b74a802ceb..daeb5d0125 100644
--- a/desktop/source/deployment/gui/dp_gui_dialog2.src
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.src
@@ -43,6 +43,7 @@ ModelessDialog RID_DLG_EXTENSION_MANAGER
PushButton RID_EM_BTN_ADD
{
+ HelpID = "desktop:PushButton:RID_DLG_EXTENSION_MANAGER:RID_EM_BTN_ADD";
TabStop = TRUE;
Text [ en-US ] = "~Add...";
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
@@ -50,6 +51,7 @@ ModelessDialog RID_DLG_EXTENSION_MANAGER
PushButton RID_EM_BTN_CHECK_UPDATES
{
+ HelpID = "desktop:PushButton:RID_DLG_EXTENSION_MANAGER:RID_EM_BTN_CHECK_UPDATES";
TabStop = TRUE;
Text [ en-US ] = "Check for ~Updates...";
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
@@ -131,6 +133,7 @@ ModalDialog RID_DLG_UPDATE_REQUIRED
PushButton RID_EM_BTN_CHECK_UPDATES
{
+ HelpID = "desktop:PushButton:RID_DLG_UPDATE_REQUIRED:RID_EM_BTN_CHECK_UPDATES";
TabStop = TRUE;
Text [ en-US ] = "Check for ~Updates...";
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
@@ -138,6 +141,7 @@ ModalDialog RID_DLG_UPDATE_REQUIRED
PushButton RID_EM_BTN_CLOSE
{
+ HelpID = "desktop:PushButton:RID_DLG_UPDATE_REQUIRED:RID_EM_BTN_CLOSE";
TabStop = TRUE;
DefButton = TRUE;
Text [ en-US ] = "Disable all";
diff --git a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
index e1e517a55c..e1e517a55c 100755..100644
--- a/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
+++ b/desktop/source/deployment/gui/dp_gui_extlistbox.cxx
diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.src b/desktop/source/deployment/gui/dp_gui_updatedialog.src
index 59539d55c1..ad098bb387 100644
--- a/desktop/source/deployment/gui/dp_gui_updatedialog.src
+++ b/desktop/source/deployment/gui/dp_gui_updatedialog.src
@@ -86,6 +86,7 @@ ModalDialog RID_DLG_UPDATE {
TabStop = TRUE;
};
CheckBox RID_DLG_UPDATE_ALL {
+ HelpID = "desktop:CheckBox:RID_DLG_UPDATE:RID_DLG_UPDATE_ALL";
Disable = TRUE;
Pos = MAP_APPFONT(
RSC_SP_DLG_INNERBORDER_LEFT,
@@ -150,6 +151,7 @@ ModalDialog RID_DLG_UPDATE {
Text[en-US] = "Release Notes";
};
MultiLineEdit RID_DLG_UPDATE_DESCRIPTIONS {
+ HelpID = "desktop:MultiLineEdit:RID_DLG_UPDATE:RID_DLG_UPDATE_DESCRIPTIONS";
Disable = TRUE;
Border = TRUE;
Pos = MAP_APPFONT(
@@ -183,6 +185,7 @@ ModalDialog RID_DLG_UPDATE {
Size = MAP_APPFONT(RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT);
};
PushButton RID_DLG_UPDATE_OK {
+ HelpID = "desktop:PushButton:RID_DLG_UPDATE:RID_DLG_UPDATE_OK";
Disable = TRUE;
Pos = MAP_APPFONT(
(RSC_SP_DLG_INNERBORDER_LEFT + LOCAL_WIDTH - RSC_CD_PUSHBUTTON_WIDTH -
diff --git a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.src b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.src
index 7c43817754..a3ded83be1 100644
--- a/desktop/source/deployment/gui/dp_gui_updateinstalldialog.src
+++ b/desktop/source/deployment/gui/dp_gui_updateinstalldialog.src
@@ -90,6 +90,7 @@ ModalDialog RID_DLG_UPDATEINSTALL {
};
MultiLineEdit RID_DLG_UPDATE_INSTALL_INFO {
+ HelpID = "desktop:MultiLineEdit:RID_DLG_UPDATEINSTALL:RID_DLG_UPDATE_INSTALL_INFO";
Pos = MAP_APPFONT(
RSC_SP_DLG_INNERBORDER_LEFT,
RSC_SP_DLG_INNERBORDER_TOP + RSC_CD_FIXEDTEXT_HEIGHT +
diff --git a/desktop/source/deployment/manager/dp_commandenvironments.cxx b/desktop/source/deployment/manager/dp_commandenvironments.cxx
index 789cac177b..f6995b9495 100644
--- a/desktop/source/deployment/manager/dp_commandenvironments.cxx
+++ b/desktop/source/deployment/manager/dp_commandenvironments.cxx
@@ -31,6 +31,8 @@
#include "com/sun/star/deployment/VersionException.hpp"
#include "com/sun/star/deployment/LicenseException.hpp"
#include "com/sun/star/deployment/InstallException.hpp"
+#include "com/sun/star/deployment/DependencyException.hpp"
+#include "com/sun/star/deployment/PlatformException.hpp"
#include "com/sun/star/task/XInteractionApprove.hpp"
#include "com/sun/star/task/XInteractionAbort.hpp"
#include "com/sun/star/task/XInteractionHandler.hpp"
@@ -250,7 +252,43 @@ void NoLicenseCommandEnv::handle(
handle_(approve, abort, xRequest);
}
+// SilentCheckPrerequisitesCommandEnv::SilentCheckPrerequisitesCommandEnv(
+// css::uno::Reference< css::task::XInteractionHandler> const & handler):
+// BaseCommandEnv(handler)
+// {
+// }
+SilentCheckPrerequisitesCommandEnv::SilentCheckPrerequisitesCommandEnv()
+{
+}
+void SilentCheckPrerequisitesCommandEnv::handle(
+ Reference< task::XInteractionRequest> const & xRequest )
+ throw (uno::RuntimeException)
+{
+ uno::Any request( xRequest->getRequest() );
+ OSL_ASSERT( request.getValueTypeClass() == uno::TypeClass_EXCEPTION );
+
+ deployment::LicenseException licExc;
+ deployment::PlatformException platformExc;
+ deployment::DependencyException depExc;
+ bool approve = false;
+ bool abort = false;
+
+ if (request >>= licExc)
+ {
+ approve = true;
+ handle_(approve, abort, xRequest);
+ }
+ else if ((request >>= platformExc)
+ || (request >>= depExc))
+ {
+ m_Exception = request;
+ }
+ else
+ {
+ m_UnknownException = request;
+ }
+}
// NoExceptionCommandEnv::NoExceptionCommandEnv(
// css::uno::Reference< css::task::XInteractionHandler> const & handler,
// css::uno::Type const & type):
diff --git a/desktop/source/deployment/manager/dp_commandenvironments.hxx b/desktop/source/deployment/manager/dp_commandenvironments.hxx
index 702b1b331f..6662d1fb50 100644
--- a/desktop/source/deployment/manager/dp_commandenvironments.hxx
+++ b/desktop/source/deployment/manager/dp_commandenvironments.hxx
@@ -135,6 +135,29 @@ public:
};
+/* For use in XExtensionManager::addExtension in the call to
+ XPackage::checkPrerequisites
+ It prevents all user interactions. The license is always accepted.
+ It remembers if there was a platform or a dependency exception in
+ the member m_bException. if there was any other exception then m_bUnknownException
+ is set.
+
+ */
+class SilentCheckPrerequisitesCommandEnv : public BaseCommandEnv
+{
+public:
+ SilentCheckPrerequisitesCommandEnv();
+ // XInteractionHandler
+ virtual void SAL_CALL handle(
+ css::uno::Reference<css::task::XInteractionRequest > const & xRequest )
+ throw (css::uno::RuntimeException);
+
+ // Set to true if a PlatformException or a DependencyException were handled.
+ css::uno::Any m_Exception;
+ // Set to true if an unknown exception was handled.
+ css::uno::Any m_UnknownException;
+};
+
// class NoExceptionCommandEnv : public BaseCommandEnv
// {
// css::uno::Type m_type;
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.cxx b/desktop/source/deployment/manager/dp_extensionmanager.cxx
index ab0baa78e3..c80968511d 100644
--- a/desktop/source/deployment/manager/dp_extensionmanager.cxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.cxx
@@ -139,6 +139,37 @@ void writeLastModified(OUString & url, Reference<ucb::XCommandEnvironment> const
OUSTR("Failed to update") + url, 0, exc);
}
}
+
+class ExtensionRemoveGuard
+{
+ css::uno::Reference<css::deployment::XPackage> m_extension;
+ css::uno::Reference<css::deployment::XPackageManager> m_xPackageManager;
+
+public:
+ ExtensionRemoveGuard(
+ css::uno::Reference<css::deployment::XPackage> const & extension,
+ css::uno::Reference<css::deployment::XPackageManager> const & xPackageManager):
+ m_extension(extension), m_xPackageManager(xPackageManager) {}
+ ~ExtensionRemoveGuard();
+
+ void reset(css::uno::Reference<css::deployment::XPackage> const & extension) {
+ m_extension = extension;
+ }
+};
+
+ExtensionRemoveGuard::~ExtensionRemoveGuard()
+{
+ try {
+ if (m_xPackageManager.is() && m_extension.is())
+ m_xPackageManager->removePackage(
+ dp_misc::getIdentifier(m_extension), ::rtl::OUString(),
+ css::uno::Reference<css::task::XAbortChannel>(),
+ css::uno::Reference<css::ucb::XCommandEnvironment>());
+ } catch (...) {
+ OSL_ASSERT(0);
+ }
+}
+
} //end namespace
namespace dp_manager {
@@ -500,6 +531,107 @@ ExtensionManager::getSupportedPackageTypes()
{
return m_userRepository->getSupportedPackageTypes();
}
+//Do some necessary checks and user interaction. This function does not
+//aquire the extension manager mutex and that mutex must not be aquired
+//when this function is called. doChecksForAddExtension does synchronous
+//user interactions which may require aquiring the solar mutex.
+//Returns true if the extension can be installed.
+bool ExtensionManager::doChecksForAddExtension(
+ Reference<deploy::XPackageManager> const & xPackageMgr,
+ uno::Sequence<beans::NamedValue> const & properties,
+ css::uno::Reference<css::deployment::XPackage> const & xTmpExtension,
+ Reference<task::XAbortChannel> const & xAbortChannel,
+ Reference<ucb::XCommandEnvironment> const & xCmdEnv,
+ Reference<deploy::XPackage> & out_existingExtension )
+ throw (deploy::DeploymentException,
+ ucb::CommandFailedException,
+ ucb::CommandAbortedException,
+ lang::IllegalArgumentException,
+ uno::RuntimeException)
+{
+ try
+ {
+ Reference<deploy::XPackage> xOldExtension;
+ const OUString sIdentifier = dp_misc::getIdentifier(xTmpExtension);
+ const OUString sFileName = xTmpExtension->getName();
+ const OUString sDisplayName = xTmpExtension->getDisplayName();
+ const OUString sVersion = xTmpExtension->getVersion();
+
+ try
+ {
+ xOldExtension = xPackageMgr->getDeployedPackage(
+ sIdentifier, sFileName, xCmdEnv);
+ out_existingExtension = xOldExtension;
+ }
+ catch (lang::IllegalArgumentException &)
+ {
+ }
+ bool bCanInstall = false;
+
+ //This part is not guarded against other threads removing, adding, disabling ...
+ //etc. the same extension.
+ //checkInstall is safe because it notifies the user if the extension is not yet
+ //installed in the same repository. Because addExtension has its own guard
+ //(m_addMutex), another thread cannot add the extension in the meantime.
+ //checkUpdate is called if the same extension exists in the same
+ //repository. The user is asked if they want to replace it. Another
+ //thread
+ //could already remove the extension. So asking the user was not
+ //necessary. No harm is done. The other thread may also ask the user
+ //if he wants to remove the extension. This depends on the
+ //XCommandEnvironment which it passes to removeExtension.
+ if (xOldExtension.is())
+ {
+ //throws a CommandFailedException if the user cancels
+ //the action.
+ checkUpdate(sVersion, sDisplayName,xOldExtension, xCmdEnv);
+ }
+ else
+ {
+ //throws a CommandFailedException if the user cancels
+ //the action.
+ checkInstall(sDisplayName, xCmdEnv);
+ }
+ //Prevent showing the license if requested.
+ Reference<ucb::XCommandEnvironment> _xCmdEnv(xCmdEnv);
+ ExtensionProperties props(OUString(), properties, Reference<ucb::XCommandEnvironment>());
+
+ dp_misc::DescriptionInfoset info(dp_misc::getDescriptionInfoset(xTmpExtension->getURL()));
+ const ::boost::optional<dp_misc::SimpleLicenseAttributes> licenseAttributes =
+ info.getSimpleLicenseAttributes();
+
+ if (licenseAttributes && licenseAttributes->suppressIfRequired
+ && props.isSuppressedLicense())
+ _xCmdEnv = Reference<ucb::XCommandEnvironment>(
+ new NoLicenseCommandEnv(xCmdEnv->getInteractionHandler()));
+
+ bCanInstall = xTmpExtension->checkPrerequisites(
+ xAbortChannel, _xCmdEnv, xOldExtension.is() || props.isExtensionUpdate()) == 0 ? true : false;
+
+ return bCanInstall;
+ }
+ catch (deploy::DeploymentException& ) {
+ throw;
+ } catch (ucb::CommandFailedException & ) {
+ throw;
+ } catch (ucb::CommandAbortedException & ) {
+ throw;
+ } catch (lang::IllegalArgumentException &) {
+ throw;
+ } catch (uno::RuntimeException &) {
+ throw;
+ } catch (uno::Exception &) {
+ uno::Any excOccurred = ::cppu::getCaughtException();
+ deploy::DeploymentException exc(
+ OUSTR("Extension Manager: exception in doChecksForAddExtension"),
+ static_cast<OWeakObject*>(this), excOccurred);
+ throw exc;
+ } catch (...) {
+ throw uno::RuntimeException(
+ OUSTR("Extension Manager: unexpected exception in doChecksForAddExtension"),
+ static_cast<OWeakObject*>(this));
+ }
+}
// Only add to shared and user repository
Reference<deploy::XPackage> ExtensionManager::addExtension(
@@ -524,166 +656,184 @@ Reference<deploy::XPackage> ExtensionManager::addExtension(
throw lang::IllegalArgumentException(
OUSTR("No valid repository name provided."),
static_cast<cppu::OWeakObject*>(this), 0);
- ::osl::MutexGuard guard(getMutex());
+ //We must make sure that the xTmpExtension is not create twice, because this
+ //would remove the first one.
+ ::osl::MutexGuard addGuard(m_addMutex);
+
Reference<deploy::XPackage> xTmpExtension =
getTempExtension(url, xAbortChannel, xCmdEnv);
+ //Make sure the extension is removed from the tmp repository in case
+ //of an exception
+ ExtensionRemoveGuard tmpExtensionRemoveGuard(xTmpExtension, m_tmpRepository);
const OUString sIdentifier = dp_misc::getIdentifier(xTmpExtension);
const OUString sFileName = xTmpExtension->getName();
- const OUString sDisplayName = xTmpExtension->getDisplayName();
- const OUString sVersion = xTmpExtension->getVersion();
- dp_misc::DescriptionInfoset info(dp_misc::getDescriptionInfoset(xTmpExtension->getURL()));
- const ::boost::optional<dp_misc::SimpleLicenseAttributes> licenseAttributes =
- info.getSimpleLicenseAttributes();
Reference<deploy::XPackage> xOldExtension;
Reference<deploy::XPackage> xExtensionBackup;
- uno::Any excOccurred1;
uno::Any excOccurred2;
bool bUserDisabled = false;
- try
+ bool bCanInstall = doChecksForAddExtension(
+ xPackageManager,
+ properties,
+ xTmpExtension,
+ xAbortChannel,
+ xCmdEnv,
+ xOldExtension );
+
{
- bUserDisabled = isUserDisabled(sIdentifier, sFileName);
- try
- {
- xOldExtension = xPackageManager->getDeployedPackage(
- sIdentifier, sFileName, xCmdEnv);
- }
- catch (lang::IllegalArgumentException &)
- {
- }
- bool bCanInstall = false;
- try
+ // In this garded section (getMutex) we must not use the argument xCmdEnv
+ // because it may bring up dialogs (XInteractionHandler::handle) this
+ //may potententially deadlock. See issue
+ //http://qa.openoffice.org/issues/show_bug.cgi?id=114933
+ //By not providing xCmdEnv the underlying APIs will throw an exception if
+ //the XInteractionRequest cannot be handled
+ ::osl::MutexGuard guard(getMutex());
+
+ if (bCanInstall)
{
- if (xOldExtension.is())
+ try
{
- //throws a CommandFailedException if the user cancels
- //the action.
- checkUpdate(sVersion, sDisplayName,xOldExtension, xCmdEnv);
+ bUserDisabled = isUserDisabled(sIdentifier, sFileName);
+ if (xOldExtension.is())
+ {
+ try
+ {
+ xOldExtension->revokePackage(
+ xAbortChannel, Reference<ucb::XCommandEnvironment>());
+ //save the old user extension in case the user aborts
+ //store the extension in the tmp repository, this will overwrite
+ //xTmpPackage (same identifier). Do not let the user abort or
+ //interact
+ //importing the old extension in the tmp repository will remove
+ //the xTmpExtension
+ //no command environment supplied, only this class shall interact
+ //with the user!
+ xExtensionBackup = m_tmpRepository->importExtension(
+ xOldExtension, Reference<task::XAbortChannel>(),
+ Reference<ucb::XCommandEnvironment>());
+ tmpExtensionRemoveGuard.reset(xExtensionBackup);
+ //xTmpExtension will later be used to check the dependencies
+ //again. However, only xExtensionBackup will be later removed
+ //from the tmp repository
+ xTmpExtension = xExtensionBackup;
+ OSL_ASSERT(xTmpExtension.is());
+ }
+ catch (lang::DisposedException &)
+ {
+ //Another thread might have removed the extension meanwhile
+ }
+ }
+ //check again dependencies but prevent user interaction,
+ //We can disregard the license, because the user must have already
+ //accepted it, whe we called checkPrerequisites the first time
+ SilentCheckPrerequisitesCommandEnv * pSilentCommandEnv =
+ new SilentCheckPrerequisitesCommandEnv();
+ Reference<ucb::XCommandEnvironment> silentCommandEnv(pSilentCommandEnv);
+
+ sal_Int32 failedPrereq = xTmpExtension->checkPrerequisites(
+ xAbortChannel, silentCommandEnv, true);
+ if (failedPrereq == 0)
+ {
+ xNewExtension = xPackageManager->addPackage(
+ url, properties, OUString(), xAbortChannel,
+ Reference<ucb::XCommandEnvironment>());
+ //If we add a user extension and there is already one which was
+ //disabled by a user, then the newly installed one is enabled. If we
+ //add to another repository then the user extension remains
+ //disabled.
+ bool bUserDisabled2 = bUserDisabled;
+ if (repository.equals(OUSTR("user")))
+ bUserDisabled2 = false;
+
+ activateExtension(
+ dp_misc::getIdentifier(xNewExtension),
+ xNewExtension->getName(), bUserDisabled2, false, xAbortChannel,
+ Reference<ucb::XCommandEnvironment>());
+ }
+ else
+ {
+ if (pSilentCommandEnv->m_Exception.hasValue())
+ ::cppu::throwException(pSilentCommandEnv->m_Exception);
+ else if ( pSilentCommandEnv->m_UnknownException.hasValue())
+ ::cppu::throwException(pSilentCommandEnv->m_UnknownException);
+ else
+ throw deploy::DeploymentException (
+ OUSTR("Extension Manager: exception during addExtension, ckeckPrerequisites failed"),
+ static_cast<OWeakObject*>(this), uno::Any());
+ }
}
- else
- {
- //throws a CommandFailedException if the user cancels
- //the action.
- checkInstall(sDisplayName, xCmdEnv);
+ catch (deploy::DeploymentException& ) {
+ excOccurred2 = ::cppu::getCaughtException();
+ } catch (ucb::CommandFailedException & ) {
+ excOccurred2 = ::cppu::getCaughtException();
+ } catch (ucb::CommandAbortedException & ) {
+ excOccurred2 = ::cppu::getCaughtException();
+ } catch (lang::IllegalArgumentException &) {
+ excOccurred2 = ::cppu::getCaughtException();
+ } catch (uno::RuntimeException &) {
+ excOccurred2 = ::cppu::getCaughtException();
+ } catch (...) {
+ excOccurred2 = ::cppu::getCaughtException();
+ deploy::DeploymentException exc(
+ OUSTR("Extension Manager: exception during addExtension, url: ")
+ + url, static_cast<OWeakObject*>(this), excOccurred2);
+ excOccurred2 <<= exc;
}
- //Prevent showing the license if requested.
- Reference<ucb::XCommandEnvironment> _xCmdEnv(xCmdEnv);
- ExtensionProperties props(OUString(), properties, Reference<ucb::XCommandEnvironment>());
- if (licenseAttributes && licenseAttributes->suppressIfRequired
- && props.isSuppressedLicense())
- _xCmdEnv = Reference<ucb::XCommandEnvironment>(
- new NoLicenseCommandEnv(xCmdEnv->getInteractionHandler()));
-
- bCanInstall = xTmpExtension->checkPrerequisites(
- xAbortChannel, _xCmdEnv, xOldExtension.is() || props.isExtensionUpdate()) == 0 ? true : false;
- }
- catch (deploy::DeploymentException& ) {
- excOccurred1 = ::cppu::getCaughtException();
- } catch (ucb::CommandFailedException & ) {
- excOccurred1 = ::cppu::getCaughtException();
- } catch (ucb::CommandAbortedException & ) {
- excOccurred1 = ::cppu::getCaughtException();
- } catch (lang::IllegalArgumentException &) {
- excOccurred1 = ::cppu::getCaughtException();
- } catch (uno::RuntimeException &) {
- excOccurred1 = ::cppu::getCaughtException();
- } catch (...) {
- excOccurred1 = ::cppu::getCaughtException();
- deploy::DeploymentException exc(
- OUSTR("Extension Manager: exception during addExtension, url: ")
- + url, static_cast<OWeakObject*>(this), excOccurred1);
- excOccurred1 <<= exc;
}
- if (bCanInstall)
+ if (excOccurred2.hasValue())
{
- if (xOldExtension.is())
+ //It does not matter what exception is thrown. We try to
+ //recover the original status.
+ //If the user aborted installation then a ucb::CommandAbortedException
+ //is thrown.
+ //Use a private AbortChannel so the user cannot interrupt.
+ try
+ {
+ if (xExtensionBackup.is())
+ {
+ Reference<deploy::XPackage> xRestored =
+ xPackageManager->importExtension(
+ xExtensionBackup, Reference<task::XAbortChannel>(),
+ Reference<ucb::XCommandEnvironment>());
+ }
+ activateExtension(
+ sIdentifier, sFileName, bUserDisabled, false,
+ Reference<task::XAbortChannel>(), Reference<ucb::XCommandEnvironment>());
+ }
+ catch (...)
{
- xOldExtension->revokePackage(xAbortChannel, xCmdEnv);
- //save the old user extension in case the user aborts
- //store the extension in the tmp repository, this will overwrite
- //xTmpPackage (same identifier). Do not let the user abort or
- //interact
- Reference<ucb::XCommandEnvironment> tmpCmdEnv(
- new TmpRepositoryCommandEnv(xCmdEnv->getInteractionHandler()));
- //importing the old extension in the tmp repository will remove
- //the xTmpExtension
- xTmpExtension = 0;
- xExtensionBackup = m_tmpRepository->importExtension(
- xOldExtension, Reference<task::XAbortChannel>(),
- tmpCmdEnv);
}
- xNewExtension = xPackageManager->addPackage(
- url, properties, OUString(), xAbortChannel, xCmdEnv);
- //If we add a user extension and there is already one which was
- //disabled by a user, then the newly installed one is enabled. If we
- //add to another repository then the user extension remains
- //disabled.
- bool bUserDisabled2 = bUserDisabled;
- if (repository.equals(OUSTR("user")))
- bUserDisabled2 = false;
- activateExtension(
- dp_misc::getIdentifier(xNewExtension),
- xNewExtension->getName(), bUserDisabled2, false, xAbortChannel, xCmdEnv);
- fireModified();
+ ::cppu::throwException(excOccurred2);
}
- }
- catch (deploy::DeploymentException& ) {
- excOccurred2 = ::cppu::getCaughtException();
+ } // leaving the garded section (getMutex())
+
+ try
+ {
+ fireModified();
+
+ }catch (deploy::DeploymentException& ) {
+ throw;
} catch (ucb::CommandFailedException & ) {
- excOccurred2 = ::cppu::getCaughtException();
+ throw;
} catch (ucb::CommandAbortedException & ) {
- excOccurred2 = ::cppu::getCaughtException();
+ throw;
} catch (lang::IllegalArgumentException &) {
- excOccurred2 = ::cppu::getCaughtException();
+ throw;
} catch (uno::RuntimeException &) {
- excOccurred2 = ::cppu::getCaughtException();
- } catch (...) {
- excOccurred2 = ::cppu::getCaughtException();
+ throw;
+ } catch (uno::Exception &) {
+ uno::Any excOccurred = ::cppu::getCaughtException();
deploy::DeploymentException exc(
- OUSTR("Extension Manager: exception during addExtension, url: ")
- + url, static_cast<OWeakObject*>(this), excOccurred2);
- excOccurred2 <<= exc;
- }
-
- if (excOccurred2.hasValue())
- {
- //It does not matter what exception is thrown. We try to
- //recover the original status.
- //If the user aborted installation then a ucb::CommandAbortedException
- //is thrown.
- //Use a private AbortChannel so the user cannot interrupt.
- try
- {
- Reference<ucb::XCommandEnvironment> tmpCmdEnv(
- new TmpRepositoryCommandEnv(xCmdEnv->getInteractionHandler()));
- if (xExtensionBackup.is())
- {
- Reference<deploy::XPackage> xRestored =
- xPackageManager->importExtension(
- xExtensionBackup, Reference<task::XAbortChannel>(),
- tmpCmdEnv);
- }
- activateExtension(
- sIdentifier, sFileName, bUserDisabled, false,
- Reference<task::XAbortChannel>(), tmpCmdEnv);
- if (xTmpExtension.is() || xExtensionBackup.is())
- m_tmpRepository->removePackage(
- sIdentifier, OUString(), xAbortChannel, xCmdEnv);
- fireModified();
- }
- catch (...)
- {
- }
- ::cppu::throwException(excOccurred2);
+ OUSTR("Extension Manager: exception in doChecksForAddExtension"),
+ static_cast<OWeakObject*>(this), excOccurred);
+ throw exc;
+ } catch (...) {
+ throw uno::RuntimeException(
+ OUSTR("Extension Manager: unexpected exception in doChecksForAddExtension"),
+ static_cast<OWeakObject*>(this));
}
- if (xTmpExtension.is() || xExtensionBackup.is())
- m_tmpRepository->removePackage(
- sIdentifier,OUString(), xAbortChannel, xCmdEnv);
- if (excOccurred1.hasValue())
- ::cppu::throwException(excOccurred1);
-
return xNewExtension;
}
diff --git a/desktop/source/deployment/manager/dp_extensionmanager.hxx b/desktop/source/deployment/manager/dp_extensionmanager.hxx
index d928ea1427..be86f483f1 100644
--- a/desktop/source/deployment/manager/dp_extensionmanager.hxx
+++ b/desktop/source/deployment/manager/dp_extensionmanager.hxx
@@ -235,6 +235,8 @@ private:
css::uno::Reference<css::deployment::XPackageManager> m_bundledRepository;
css::uno::Reference<css::deployment::XPackageManager> m_tmpRepository;
+ //only to be used within addExtension
+ ::osl::Mutex m_addMutex;
/* contains the names of all repositories (except tmp) in order of there
priority. That is, the first element is "user" follod by "shared" and
then "bundled"
@@ -296,6 +298,21 @@ private:
css::uno::Reference<css::deployment::XPackageManager>
getPackageManager(::rtl::OUString const & repository)
throw (css::lang::IllegalArgumentException);
+
+ bool doChecksForAddExtension(
+ css::uno::Reference<css::deployment::XPackageManager> const & xPackageMgr,
+ css::uno::Sequence<css::beans::NamedValue> const & properties,
+ css::uno::Reference<css::deployment::XPackage> const & xTmpExtension,
+ css::uno::Reference<css::task::XAbortChannel> const & xAbortChannel,
+ css::uno::Reference<css::ucb::XCommandEnvironment> const & xCmdEnv,
+ css::uno::Reference<css::deployment::XPackage> & out_existingExtension )
+ throw (css::deployment::DeploymentException,
+ css::ucb::CommandFailedException,
+ css::ucb::CommandAbortedException,
+ css::lang::IllegalArgumentException,
+ css::uno::RuntimeException);
+
+
};
}
diff --git a/desktop/source/inc/helpid.hrc b/desktop/source/inc/helpid.hrc
index 2435467f76..facdc1f410 100644
--- a/desktop/source/inc/helpid.hrc
+++ b/desktop/source/inc/helpid.hrc
@@ -28,51 +28,40 @@
#if ! defined INCLUDED_DESKTOP_HELPID_HRC
#define INCLUDED_DESKTOP_HELPID_HRC
-#include "svl/solar.hrc"
+#define HID_PACKAGE_MANAGER "DESKTOP_HID_PACKAGE_MANAGER"
+#define HID_PACKAGE_MANAGER_TREELISTBOX "DESKTOP_HID_PACKAGE_MANAGER_TREELISTBOX"
+#define HID_PACKAGE_MANAGER_PROGRESS "DESKTOP_HID_PACKAGE_MANAGER_PROGRESS"
+#define HID_PACKAGE_MANAGER_PROGRESS_CANCEL "DESKTOP_HID_PACKAGE_MANAGER_PROGRESS_CANCEL"
+#define HID_PACKAGE_MANAGER_MENU_ITEM "DESKTOP_HID_PACKAGE_MANAGER_MENU_ITEM"
-#define HID_GLOBAL_FALLBACK 0xFFFFFFFF
+#define HID_FIRSTSTART_DIALOG "DESKTOP_HID_FIRSTSTART_DIALOG"
+#define HID_FIRSTSTART_WELCOME "DESKTOP_HID_FIRSTSTART_WELCOME"
+#define HID_FIRSTSTART_LICENSE "DESKTOP_HID_FIRSTSTART_LICENSE"
+#define HID_FIRSTSTART_MIGRATION "DESKTOP_HID_FIRSTSTART_MIGRATION"
+#define HID_FIRSTSTART_REGISTRATION "DESKTOP_HID_FIRSTSTART_REGISTRATION"
+#define HID_FIRSTSTART_USER "DESKTOP_HID_FIRSTSTART_USER"
+#define HID_FIRSTSTART_PREV "DESKTOP_HID_FIRSTSTART_PREV"
+#define HID_FIRSTSTART_NEXT "DESKTOP_HID_FIRSTSTART_NEXT"
+#define HID_FIRSTSTART_CANCEL "DESKTOP_HID_FIRSTSTART_CANCEL"
+#define HID_FIRSTSTART_FINISH "DESKTOP_HID_FIRSTSTART_FINISH"
+#define UID_FIRSTSTART_HELP "DESKTOP_UID_FIRSTSTART_HELP"
+#define UID_BTN_LICENSE_ACCEPT "DESKTOP_UID_BTN_LICENSE_ACCEPT"
+#define HID_FIRSTSTART_UPDATE_CHECK "DESKTOP_HID_FIRSTSTART_UPDATE_CHECK"
+#define HID_DEPLOYMENT_GUI_UPDATE "DESKTOP_HID_DEPLOYMENT_GUI_UPDATE"
+#define HID_DEPLOYMENT_GUI_UPDATEINSTALL "DESKTOP_HID_DEPLOYMENT_GUI_UPDATEINSTALL"
+#define HID_DEPLOYMENT_GUI_UPDATE_PUBLISHER "DESKTOP_HID_DEPLOYMENT_GUI_UPDATE_PUBLISHER"
+#define HID_DEPLOYMENT_GUI_UPDATE_RELEASENOTES "DESKTOP_HID_DEPLOYMENT_GUI_UPDATE_RELEASENOTES"
+#define HID_DEPLOYMENT_GUI_UPDATE_AVAILABLE_UPDATES "DESKTOP_HID_DEPLOYMENT_GUI_UPDATE_AVAILABLE_UPDATES"
-#define HID_PACKAGE_MANAGER (HID_DESKTOP_START + 0)
-#define HID_PACKAGE_MANAGER_TREELISTBOX (HID_DESKTOP_START + 1)
-#define HID_PACKAGE_MANAGER_PROGRESS (HID_DESKTOP_START + 2)
-#define HID_PACKAGE_MANAGER_PROGRESS_CANCEL (HID_DESKTOP_START + 3)
-#define HID_PACKAGE_MANAGER_MENU_ITEM (HID_DESKTOP_START + 4)
+#define HID_EXTENSION_MANAGER_LISTBOX "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX"
+#define HID_EXTENSION_MANAGER_LISTBOX_OPTIONS "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX_OPTIONS"
+#define HID_EXTENSION_MANAGER_LISTBOX_ENABLE "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX_ENABLE"
+#define HID_EXTENSION_MANAGER_LISTBOX_DISABLE "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX_DISABLE"
+#define HID_EXTENSION_MANAGER_LISTBOX_REMOVE "DESKTOP_HID_EXTENSION_MANAGER_LISTBOX_REMOVE"
-#define HID_FIRSTSTART_DIALOG (HID_DESKTOP_START + 5)
-#define HID_FIRSTSTART_WELCOME (HID_DESKTOP_START + 6)
-#define HID_FIRSTSTART_LICENSE (HID_DESKTOP_START + 7)
-#define HID_FIRSTSTART_MIGRATION (HID_DESKTOP_START + 8)
-#define HID_FIRSTSTART_REGISTRATION (HID_DESKTOP_START + 9)
-#define HID_FIRSTSTART_USER (HID_DESKTOP_START + 10)
-#define HID_FIRSTSTART_PREV (HID_DESKTOP_START + 11)
-#define HID_FIRSTSTART_NEXT (HID_DESKTOP_START + 12)
-#define HID_FIRSTSTART_CANCEL (HID_DESKTOP_START + 13)
-#define HID_FIRSTSTART_FINISH (HID_DESKTOP_START + 14)
-#define UID_FIRSTSTART_HELP (HID_DESKTOP_START + 15)
-#define UID_BTN_LICENSE_ACCEPT (HID_DESKTOP_START + 16)
-#define HID_FIRSTSTART_UPDATE_CHECK (HID_DESKTOP_START + 17)
-#define HID_DEPLOYMENT_GUI_UPDATE (HID_DESKTOP_START + 18)
-#define HID_DEPLOYMENT_GUI_UPDATEINSTALL (HID_DESKTOP_START + 19)
-#define HID_DEPLOYMENT_GUI_UPDATE_PUBLISHER (HID_DESKTOP_START + 20)
-#define HID_DEPLOYMENT_GUI_UPDATE_RELEASENOTES (HID_DESKTOP_START + 21)
-#define HID_DEPLOYMENT_GUI_UPDATE_AVAILABLE_UPDATES (HID_DESKTOP_START + 22)
+#define HID_EXTENSION_DEPENDENCIES "DESKTOP_HID_EXTENSION_DEPENDENCIES"
-#define HID_EXTENSION_MANAGER_LISTBOX (HID_DESKTOP_START + 23)
-#define HID_EXTENSION_MANAGER_LISTBOX_OPTIONS (HID_DESKTOP_START + 24)
-#define HID_EXTENSION_MANAGER_LISTBOX_ENABLE (HID_DESKTOP_START + 25)
-#define HID_EXTENSION_MANAGER_LISTBOX_DISABLE (HID_DESKTOP_START + 26)
-#define HID_EXTENSION_MANAGER_LISTBOX_REMOVE (HID_DESKTOP_START + 27)
-
-#define HID_EXTENSION_DEPENDENCIES (HID_DESKTOP_START + 28)
-
-#define HID_PACKAGE_MANAGER_UPD_REQ (HID_DESKTOP_START + 29)
-
-#define ACT_DESKTOP_HID_END HID_PACKAGE_MANAGER_UPD_REQ
-
-// check bounds:
-#if ACT_DESKTOP_HID_END > HID_DESKTOP_END
-#error Resource overflow in #line, #file
-#endif
+#define HID_PACKAGE_MANAGER_UPD_REQ "DESKTOP_HID_PACKAGE_MANAGER_UPD_REQ"
#endif
diff --git a/desktop/source/migration/wizard.src b/desktop/source/migration/wizard.src
index ed6e8d486b..369ce4080b 100644
--- a/desktop/source/migration/wizard.src
+++ b/desktop/source/migration/wizard.src
@@ -188,6 +188,7 @@ TabPage TP_LICENSE
};
MultiLineEdit ML_LICENSE
{
+ HelpID = "desktop:MultiLineEdit:TP_LICENSE:ML_LICENSE";
PosSize = MAP_APPFONT (MARGINLEFT+INDENT, MARGINTOP + 8*ROWHEIGHT, BODYWIDTH-INDENT , BODYHEIGHT - 8*ROWHEIGHT - 20-2*MARGINBOTTOM) ;
Border = TRUE;
VScroll = TRUE;
@@ -195,6 +196,7 @@ TabPage TP_LICENSE
};
PushButton PB_LICENSE_DOWN
{
+ HelpID = "desktop:PushButton:TP_LICENSE:PB_LICENSE_DOWN";
TabStop = TRUE ;
Pos = MAP_APPFONT ( TP_WIDTH-MARGINRIGHT-50 , TP_HEIGHT-MARGINBOTTOM-18 ) ;
Size = MAP_APPFONT ( 50, 15 ) ;
@@ -240,6 +242,7 @@ TabPage TP_MIGRATION
CheckBox CB_MIGRATION
{
+ HelpID = "desktop:CheckBox:TP_MIGRATION:CB_MIGRATION";
Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*10);
Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT*2);
Check = TRUE;
@@ -275,6 +278,7 @@ TabPage TP_UPDATE_CHECK
CheckBox CB_UPDATE_CHECK
{
+ HelpID = "desktop:CheckBox:TP_UPDATE_CHECK:CB_UPDATE_CHECK";
Pos = MAP_APPFONT(MARGINLEFT, MARGINTOP+ROWHEIGHT*10);
Size = MAP_APPFONT(BODYWIDTH, ROWHEIGHT*2);
Check = TRUE;
@@ -321,6 +325,7 @@ TabPage TP_USER
};
Edit ED_USER_FIRST
{
+ HelpID = "desktop:Edit:TP_USER:ED_USER_FIRST";
Border = TRUE;
Pos = MAP_APPFONT(MARGINLEFT+USERINDENT, MARGINTOP+ROWHEIGHT*7);
Size = MAP_APPFONT(BODYWIDTH-USERINDENT, EDHEIGHT);
@@ -333,6 +338,7 @@ TabPage TP_USER
};
Edit ED_USER_LAST
{
+ HelpID = "desktop:Edit:TP_USER:ED_USER_LAST";
Border = TRUE;
Pos = MAP_APPFONT(MARGINLEFT+USERINDENT, MARGINTOP+ROWHEIGHT*9);
Size = MAP_APPFONT(BODYWIDTH-USERINDENT, EDHEIGHT);
@@ -345,6 +351,7 @@ TabPage TP_USER
};
Edit ED_USER_INITIALS
{
+ HelpID = "desktop:Edit:TP_USER:ED_USER_INITIALS";
Border = TRUE;
Pos = MAP_APPFONT(MARGINLEFT+USERINDENT, MARGINTOP+ROWHEIGHT*11);
Size = MAP_APPFONT(INITIALSWIDTH, EDHEIGHT);
@@ -359,6 +366,7 @@ TabPage TP_USER
};
Edit ED_USER_FATHER
{
+ HelpID = "desktop:Edit:TP_USER:ED_USER_FATHER";
Border = TRUE;
Hide = TRUE;
Pos = MAP_APPFONT(MARGINLEFT+USERINDENT*2+INITIALSWIDTH+10, MARGINTOP+ROWHEIGHT*11);
@@ -391,6 +399,7 @@ TabPage TP_REGISTRATION
};
RadioButton RB_REGISTRATION_NOW
{
+ HelpID = "desktop:RadioButton:TP_REGISTRATION:RB_REGISTRATION_NOW";
Text [ en-US ] = "I want to register ~now";
Pos = MAP_APPFONT(MARGINLEFT+INDENT2, ROWHEIGHT*12+2);
Size = MAP_APPFONT(BODYWIDTH-INDENT2, RSC_CD_CHECKBOX_HEIGHT);
@@ -398,12 +407,14 @@ TabPage TP_REGISTRATION
};
RadioButton RB_REGISTRATION_LATER
{
+ HelpID = "desktop:RadioButton:TP_REGISTRATION:RB_REGISTRATION_LATER";
Text [ en-US ] = "I want to register ~later";
Pos = MAP_APPFONT(MARGINLEFT+INDENT2, ROWHEIGHT*12+2+RB_HEIGHT);
Size = MAP_APPFONT(BODYWIDTH-INDENT2, RSC_CD_CHECKBOX_HEIGHT);
};
RadioButton RB_REGISTRATION_NEVER
{
+ HelpID = "desktop:RadioButton:TP_REGISTRATION:RB_REGISTRATION_NEVER";
Text [ en-US ] = "I do not want to ~register";
Pos = MAP_APPFONT(MARGINLEFT+INDENT2, ROWHEIGHT*12+2+RB_HEIGHT*2);
Size = MAP_APPFONT(BODYWIDTH-INDENT2, RSC_CD_CHECKBOX_HEIGHT);
diff --git a/editeng/inc/editeng/svxrtf.hxx b/editeng/inc/editeng/svxrtf.hxx
index 45195c2acb..39f3e7a673 100644
--- a/editeng/inc/editeng/svxrtf.hxx
+++ b/editeng/inc/editeng/svxrtf.hxx
@@ -37,6 +37,8 @@
#include <svl/svstdarr.hxx>
#include <editeng/editengdllapi.h>
+#include <deque>
+
class Font;
class Color;
class Graphic;
@@ -82,12 +84,15 @@ public:
typedef Color* ColorPtr;
-SV_DECL_PTRARR( SvxRTFColorTbl, ColorPtr, 16, 4 )
+typedef std::deque< ColorPtr > SvxRTFColorTbl;
DECLARE_TABLE( SvxRTFFontTbl, Font* )
DECLARE_TABLE( SvxRTFStyleTbl, SvxRTFStyleType* )
typedef SvxRTFItemStackType* SvxRTFItemStackTypePtr;
SV_DECL_PTRARR_DEL( SvxRTFItemStackList, SvxRTFItemStackTypePtr, 1, 1 )
-SV_DECL_PTRARR_STACK( SvxRTFItemStack, SvxRTFItemStackTypePtr, 0, 1 )
+
+// SvxRTFItemStack can't be "std::stack< SvxRTFItemStackTypePtr >" type, because
+// the methods are using operator[] in sw/source/filter/rtf/rtftbl.cxx file
+typedef std::deque< SvxRTFItemStackTypePtr > SvxRTFItemStack;
// einige Hilfsklassen fuer den RTF-Parser
struct SvxRTFStyleType
@@ -376,7 +381,7 @@ public:
virtual SvParserState CallParser(); // Aufruf des Parsers
- inline const Color& GetColor( USHORT nId ) const;
+ inline const Color& GetColor( size_t nId ) const;
const Font& GetFont( USHORT nId ); // aendert den dflt Font
virtual int IsEndPara( SvxNodeIdx* pNd, xub_StrLen nCnt ) const = 0;
@@ -451,12 +456,12 @@ public:
};
-// ----------- Inline Implementierungen --------------
+// ----------- Inline Implementations --------------
-inline const Color& SvxRTFParser::GetColor( USHORT nId ) const
+inline const Color& SvxRTFParser::GetColor( size_t nId ) const
{
ColorPtr pColor = (ColorPtr)pDfltColor;
- if( nId < aColorTbl.Count() )
+ if( nId < aColorTbl.size() )
pColor = aColorTbl[ nId ];
return *pColor;
}
@@ -464,7 +469,7 @@ inline const Color& SvxRTFParser::GetColor( USHORT nId ) const
inline SfxItemSet& SvxRTFParser::GetAttrSet()
{
SvxRTFItemStackTypePtr pTmp;
- if( bNewGroup || 0 == ( pTmp = aAttrStack.Top()) )
+ if( bNewGroup || 0 == ( pTmp = aAttrStack.back()) )
pTmp = _GetAttrSet();
return pTmp->aAttrSet;
}
diff --git a/editeng/inc/helpid.hrc b/editeng/inc/helpid.hrc
index 32c109aad2..5eef98a021 100644
--- a/editeng/inc/helpid.hrc
+++ b/editeng/inc/helpid.hrc
@@ -30,52 +30,31 @@
#ifndef _EDITENG_HELPID_HRC
#define _EDITENG_HELPID_HRC
-// include ---------------------------------------------------------------
-
-#include <svl/solar.hrc>
-
-// Help-Ids --------------------------------------------------------------
-#define HID_EDITENG_SPELLER_WORDLANGUAGE (HID_EDIT_START)
-#define HID_EDITENG_SPELLER_PARALANGUAGE (HID_EDIT_START + 1)
-#define HID_EDITENG_SPELLER_ADDWORD (HID_EDIT_START + 2)
-#define HID_EDITENG_SPELLER_AUTOCORRECT (HID_EDIT_START + 3)
-#define HID_EDITENG_SPELLER_IGNORE (HID_EDIT_START + 4)
-#define HID_EDITENG_SPELLER_START (HID_EDIT_START + 5)
-#define HID_AUTOCORR_HELP_END (HID_EDIT_START + 6)
-#define HID_AUTOCORR_HELP_START (HID_EDIT_START + 7)
-#define HID_AUTOCORR_HELP_WORD HID_AUTOCORR_HELP_START
-
-#define HID_AUTOCORR_HELP_SENT (HID_AUTOCORR_HELP_START+1)
-#define HID_AUTOCORR_HELP_SENTWORD (HID_AUTOCORR_HELP_START+2)
-#define HID_AUTOCORR_HELP_ACORWORD (HID_AUTOCORR_HELP_START+3)
-
-#define HID_AUTOCORR_HELP_ACORSENTWORD (HID_AUTOCORR_HELP_START+5)
-
-#define HID_AUTOCORR_HELP_CHGTOENEMDASH (HID_AUTOCORR_HELP_START+7)
-#define HID_AUTOCORR_HELP_WORDENEMDASH (HID_AUTOCORR_HELP_START+8)
-#define HID_AUTOCORR_HELP_SENTENEMDASH (HID_AUTOCORR_HELP_START+9)
-#define HID_AUTOCORR_HELP_SENTWORDENEMDASH (HID_AUTOCORR_HELP_START+10)
-#define HID_AUTOCORR_HELP_ACORWORDENEMDASH (HID_AUTOCORR_HELP_START+11)
-
-#define HID_AUTOCORR_HELP_ACORSENTWORDENEMDASH (HID_AUTOCORR_HELP_START+13)
-#define HID_AUTOCORR_HELP_CHGQUOTES (HID_AUTOCORR_HELP_START+15)
-#define HID_AUTOCORR_HELP_CHGSGLQUOTES (HID_AUTOCORR_HELP_START+16)
-#define HID_AUTOCORR_HELP_SETINETATTR (HID_AUTOCORR_HELP_START+17)
-#define HID_AUTOCORR_HELP_INGNOREDOUBLESPACE (HID_AUTOCORR_HELP_START+18)
-#define HID_AUTOCORR_HELP_CHGWEIGHTUNDERL (HID_AUTOCORR_HELP_START+19)
-#define HID_AUTOCORR_HELP_CHGFRACTIONSYMBOL (HID_AUTOCORR_HELP_START+20)
-#define HID_AUTOCORR_HELP_CHGORDINALNUMBER (HID_AUTOCORR_HELP_START+21) // HID_EDIT_START + 28
-
-// please adjust ACT_SVX_HID_END2 below if you add entries here!
-
-// -----------------------------------------------------------------------
-// Overrun check ---------------------------------------------------------
-// -----------------------------------------------------------------------
-
-#define ACT_SVX_HID_END (HID_EDIT_START+28)
-#if ACT_SVX_HID_END > HID_EDIT_END
-#error Resource-Ueberlauf in #line, #file
-#endif
+#define HID_EDITENG_SPELLER_WORDLANGUAGE "EDITENG_HID_EDITENG_SPELLER_WORDLANGUAGE"
+#define HID_EDITENG_SPELLER_PARALANGUAGE "EDITENG_HID_EDITENG_SPELLER_PARALANGUAGE"
+#define HID_EDITENG_SPELLER_ADDWORD "EDITENG_HID_EDITENG_SPELLER_ADDWORD"
+#define HID_EDITENG_SPELLER_AUTOCORRECT "EDITENG_HID_EDITENG_SPELLER_AUTOCORRECT"
+#define HID_EDITENG_SPELLER_IGNORE "EDITENG_HID_EDITENG_SPELLER_IGNORE"
+#define HID_EDITENG_SPELLER_START "EDITENG_HID_EDITENG_SPELLER_START"
+
+#define HID_AUTOCORR_HELP_WORD "EDITENG_HID_AUTOCORR_HELP_START"
+#define HID_AUTOCORR_HELP_SENT "EDITENG_HID_AUTOCORR_HELP_SENT"
+#define HID_AUTOCORR_HELP_SENTWORD "EDITENG_HID_AUTOCORR_HELP_SENTWORD"
+#define HID_AUTOCORR_HELP_ACORWORD "EDITENG_HID_AUTOCORR_HELP_ACORWORD"
+#define HID_AUTOCORR_HELP_ACORSENTWORD "EDITENG_HID_AUTOCORR_HELP_ACORSENTWORD"
+#define HID_AUTOCORR_HELP_CHGTOENEMDASH "EDITENG_HID_AUTOCORR_HELP_CHGTOENEMDASH"
+#define HID_AUTOCORR_HELP_WORDENEMDASH "EDITENG_HID_AUTOCORR_HELP_WORDENEMDASH"
+#define HID_AUTOCORR_HELP_SENTENEMDASH "EDITENG_HID_AUTOCORR_HELP_SENTENEMDASH"
+#define HID_AUTOCORR_HELP_SENTWORDENEMDASH "EDITENG_HID_AUTOCORR_HELP_SENTWORDENEMDASH"
+#define HID_AUTOCORR_HELP_ACORWORDENEMDASH "EDITENG_HID_AUTOCORR_HELP_ACORWORDENEMDASH"
+#define HID_AUTOCORR_HELP_ACORSENTWORDENEMDASH "EDITENG_HID_AUTOCORR_HELP_ACORSENTWORDENEMDASH"
+#define HID_AUTOCORR_HELP_CHGQUOTES "EDITENG_HID_AUTOCORR_HELP_CHGQUOTES"
+#define HID_AUTOCORR_HELP_CHGSGLQUOTES "EDITENG_HID_AUTOCORR_HELP_CHGSGLQUOTES"
+#define HID_AUTOCORR_HELP_SETINETATTR "EDITENG_HID_AUTOCORR_HELP_SETINETATTR"
+#define HID_AUTOCORR_HELP_INGNOREDOUBLESPACE "EDITENG_HID_AUTOCORR_HELP_INGNOREDOUBLESPACE"
+#define HID_AUTOCORR_HELP_CHGWEIGHTUNDERL "EDITENG_HID_AUTOCORR_HELP_CHGWEIGHTUNDERL"
+#define HID_AUTOCORR_HELP_CHGFRACTIONSYMBOL "EDITENG_HID_AUTOCORR_HELP_CHGFRACTIONSYMBOL"
+#define HID_AUTOCORR_HELP_CHGORDINALNUMBER "EDITENG_HID_AUTOCORR_HELP_CHGORDINALNUMBER"
#endif
diff --git a/editeng/inc/pch/precompiled_editeng.hxx b/editeng/inc/pch/precompiled_editeng.hxx
index d82ecc6cb6..9d432f73a7 100644
--- a/editeng/inc/pch/precompiled_editeng.hxx
+++ b/editeng/inc/pch/precompiled_editeng.hxx
@@ -739,7 +739,6 @@
#include "svtools/parhtml.hxx"
#include "svtools/parrtf.hxx"
#include "unotools/pathoptions.hxx"
-#include "svl/pickerhelper.hxx"
#include "svl/poolitem.hxx"
#include "unotools/printwarningoptions.hxx"
#include "svl/ptitem.hxx"
diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx
index 7b34d931e2..4d8a8273dd 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -255,10 +255,6 @@ USHORT aV5Map[] = {
};
SV_IMPL_PTRARR( DummyContentList, ContentNode* );
-SV_IMPL_VARARR( ScriptTypePosInfos, ScriptTypePosInfo );
-SV_IMPL_VARARR( WritingDirectionInfos, WritingDirectionInfo );
-// SV_IMPL_VARARR( ExtraCharInfos, ExtraCharInfo );
-
int SAL_CALL CompareStart( const void* pFirst, const void* pSecond )
{
diff --git a/editeng/source/editeng/editdoc.hxx b/editeng/source/editeng/editdoc.hxx
index e3ad32cfab..1da0b0b0b5 100644
--- a/editeng/source/editeng/editdoc.hxx
+++ b/editeng/source/editeng/editdoc.hxx
@@ -40,6 +40,8 @@
#include <svl/itempool.hxx>
#include <tools/table.hxx>
+#include <deque>
+
class ImpEditEngine;
class SvxTabStop;
class SvtCTLOptions;
@@ -96,7 +98,7 @@ struct ScriptTypePosInfo
}
};
-SV_DECL_VARARR( ScriptTypePosInfos, ScriptTypePosInfo, 0, 4 )
+typedef std::deque< ScriptTypePosInfo > ScriptTypePosInfos;
struct WritingDirectionInfo
{
@@ -112,7 +114,8 @@ struct WritingDirectionInfo
}
};
-SV_DECL_VARARR( WritingDirectionInfos, WritingDirectionInfo, 0, 4 )
+
+typedef std::deque< WritingDirectionInfo > WritingDirectionInfos;
typedef EditCharAttrib* EditCharAttribPtr;
SV_DECL_PTRARR( CharAttribArray, EditCharAttribPtr, 0, 4 )
diff --git a/editeng/source/editeng/editdoc2.cxx b/editeng/source/editeng/editdoc2.cxx
index 1c277845a2..9f23dcba44 100644
--- a/editeng/source/editeng/editdoc2.cxx
+++ b/editeng/source/editeng/editdoc2.cxx
@@ -238,9 +238,8 @@ void ParaPortion::MarkInvalid( USHORT nStart, short nDiff )
}
}
bInvalid = TRUE;
- aScriptInfos.Remove( 0, aScriptInfos.Count() );
- aWritingDirectionInfos.Remove( 0, aWritingDirectionInfos.Count() );
-// aExtraCharInfos.Remove( 0, aExtraCharInfos.Count() );
+ aScriptInfos.clear();
+ aWritingDirectionInfos.clear();
}
void ParaPortion::MarkSelectionInvalid( USHORT nStart, USHORT /* nEnd */ )
@@ -258,9 +257,8 @@ void ParaPortion::MarkSelectionInvalid( USHORT nStart, USHORT /* nEnd */ )
nInvalidDiff = 0;
bInvalid = TRUE;
bSimple = FALSE;
- aScriptInfos.Remove( 0, aScriptInfos.Count() );
- aWritingDirectionInfos.Remove( 0, aWritingDirectionInfos.Count() );
-// aExtraCharInfos.Remove( 0, aExtraCharInfos.Count() );
+ aScriptInfos.clear();
+ aWritingDirectionInfos.clear();
}
USHORT ParaPortion::GetLineNumber( USHORT nIndex )
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index fedfb0d367..e489b04d0a 100755
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -1719,9 +1719,7 @@ void ImpEditEngine::InitScriptTypes( USHORT nPara )
{
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
- rTypes.Remove( 0, rTypes.Count() );
-
-// pParaPortion->aExtraCharInfos.Remove( 0, pParaPortion->aExtraCharInfos.Count() );
+ rTypes.clear();
ContentNode* pNode = pParaPortion->GetNode();
if ( pNode->Len() )
@@ -1770,19 +1768,19 @@ void ImpEditEngine::InitScriptTypes( USHORT nPara )
sal_Int32 nPos = 0;
short nScriptType = _xBI->getScriptType( aOUText, nPos );
- rTypes.Insert( ScriptTypePosInfo( nScriptType, (USHORT)nPos, nTextLen ), rTypes.Count() );
+ rTypes.push_back( ScriptTypePosInfo( nScriptType, (USHORT)nPos, nTextLen ) );
nPos = _xBI->endOfScript( aOUText, nPos, nScriptType );
while ( ( nPos != (-1) ) && ( nPos < nTextLen ) )
{
- rTypes[rTypes.Count()-1].nEndPos = (USHORT)nPos;
+ rTypes.back().nEndPos = (USHORT)nPos;
nScriptType = _xBI->getScriptType( aOUText, nPos );
long nEndPos = _xBI->endOfScript( aOUText, nPos, nScriptType );
- if ( ( nScriptType == i18n::ScriptType::WEAK ) || ( nScriptType == rTypes[rTypes.Count()-1].nScriptType ) )
+ if ( ( nScriptType == i18n::ScriptType::WEAK ) || ( nScriptType == rTypes.back().nScriptType ) )
{
// Expand last ScriptTypePosInfo, don't create weak or unecessary portions
- rTypes[rTypes.Count()-1].nEndPos = (USHORT)nEndPos;
+ rTypes.back().nEndPos = (USHORT)nEndPos;
}
else
{
@@ -1793,26 +1791,26 @@ void ImpEditEngine::InitScriptTypes( USHORT nPara )
case U_ENCLOSING_MARK:
case U_COMBINING_SPACING_MARK:
--nPos;
- rTypes[rTypes.Count()-1].nEndPos--;
+ rTypes.back().nEndPos--;
break;
}
}
- rTypes.Insert( ScriptTypePosInfo( nScriptType, (USHORT)nPos, nTextLen ), rTypes.Count() );
+ rTypes.push_back( ScriptTypePosInfo( nScriptType, (USHORT)nPos, nTextLen ) );
}
nPos = nEndPos;
}
if ( rTypes[0].nScriptType == i18n::ScriptType::WEAK )
- rTypes[0].nScriptType = ( rTypes.Count() > 1 ) ? rTypes[1].nScriptType : GetI18NScriptTypeOfLanguage( GetDefaultLanguage() );
+ rTypes[0].nScriptType = ( rTypes.size() > 1 ) ? rTypes[1].nScriptType : GetI18NScriptTypeOfLanguage( GetDefaultLanguage() );
// create writing direction information:
- if ( !pParaPortion->aWritingDirectionInfos.Count() )
+ if ( pParaPortion->aWritingDirectionInfos.empty() )
InitWritingDirections( nPara );
// i89825: Use CTL font for numbers embedded into an RTL run:
WritingDirectionInfos& rDirInfos = pParaPortion->aWritingDirectionInfos;
- for ( USHORT n = 0; n < rDirInfos.Count(); ++n )
+ for ( size_t n = 0; n < rDirInfos.size(); ++n )
{
const xub_StrLen nStart = rDirInfos[n].nStartPos;
const xub_StrLen nEnd = rDirInfos[n].nEndPos;
@@ -1821,30 +1819,30 @@ void ImpEditEngine::InitScriptTypes( USHORT nPara )
if ( nCurrDirType % 2 == UBIDI_RTL || // text in RTL run
( nCurrDirType > UBIDI_LTR && !lcl_HasStrongLTR( aText, nStart, nEnd ) ) ) // non-strong text in embedded LTR run
{
- USHORT nIdx = 0;
+ size_t nIdx = 0;
// Skip entries in ScriptArray which are not inside the RTL run:
- while ( nIdx < rTypes.Count() && rTypes[nIdx].nStartPos < nStart )
+ while ( nIdx < rTypes.size() && rTypes[nIdx].nStartPos < nStart )
++nIdx;
// Remove any entries *inside* the current run:
- while ( nIdx < rTypes.Count() && rTypes[nIdx].nEndPos <= nEnd )
- rTypes.Remove( nIdx );
+ while ( nIdx < rTypes.size() && rTypes[nIdx].nEndPos <= nEnd )
+ rTypes.erase( rTypes.begin()+nIdx );
// special case:
- if(nIdx < rTypes.Count() && rTypes[nIdx].nStartPos < nStart && rTypes[nIdx].nEndPos > nEnd)
+ if(nIdx < rTypes.size() && rTypes[nIdx].nStartPos < nStart && rTypes[nIdx].nEndPos > nEnd)
{
- rTypes.Insert( ScriptTypePosInfo( rTypes[nIdx].nScriptType, (USHORT)nEnd, rTypes[nIdx].nEndPos ), nIdx );
+ rTypes.insert( rTypes.begin()+nIdx, ScriptTypePosInfo( rTypes[nIdx].nScriptType, (USHORT)nEnd, rTypes[nIdx].nEndPos ) );
rTypes[nIdx].nEndPos = nStart;
}
if( nIdx )
rTypes[nIdx - 1].nEndPos = nStart;
- rTypes.Insert( ScriptTypePosInfo( i18n::ScriptType::COMPLEX, (USHORT)nStart, (USHORT)nEnd), nIdx );
+ rTypes.insert( rTypes.begin()+nIdx, ScriptTypePosInfo( i18n::ScriptType::COMPLEX, (USHORT)nStart, (USHORT)nEnd) );
++nIdx;
- if( nIdx < rTypes.Count() )
+ if( nIdx < rTypes.size() )
rTypes[nIdx].nStartPos = nEnd;
}
}
@@ -1853,7 +1851,7 @@ void ImpEditEngine::InitScriptTypes( USHORT nPara )
USHORT nDebugStt = 0;
USHORT nDebugEnd = 0;
short nDebugType = 0;
- for ( USHORT n = 0; n < rTypes.Count(); ++n )
+ for ( size_t n = 0; n < rTypes.size(); ++n )
{
nDebugStt = rTypes[n].nStartPos;
nDebugEnd = rTypes[n].nEndPos;
@@ -1874,12 +1872,12 @@ USHORT ImpEditEngine::GetScriptType( const EditPaM& rPaM, USHORT* pEndPos ) cons
{
USHORT nPara = GetEditDoc().GetPos( rPaM.GetNode() );
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
- if ( !pParaPortion->aScriptInfos.Count() )
+ if ( pParaPortion->aScriptInfos.empty() )
((ImpEditEngine*)this)->InitScriptTypes( nPara );
ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
USHORT nPos = rPaM.GetIndex();
- for ( USHORT n = 0; n < rTypes.Count(); n++ )
+ for ( size_t n = 0; n < rTypes.size(); n++ )
{
if ( ( rTypes[n].nStartPos <= nPos ) && ( rTypes[n].nEndPos >= nPos ) )
{
@@ -1906,7 +1904,7 @@ USHORT ImpEditEngine::GetScriptType( const EditSelection& rSel ) const
for ( USHORT nPara = nStartPara; nPara <= nEndPara; nPara++ )
{
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
- if ( !pParaPortion->aScriptInfos.Count() )
+ if ( pParaPortion->aScriptInfos.empty() )
((ImpEditEngine*)this)->InitScriptTypes( nPara );
ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
@@ -1916,7 +1914,7 @@ USHORT ImpEditEngine::GetScriptType( const EditSelection& rSel ) const
// well as with just moving the cursor from char to char.
USHORT nS = ( nPara == nStartPara ) ? aSel.Min().GetIndex() : 0;
USHORT nE = ( nPara == nEndPara ) ? aSel.Max().GetIndex() : pParaPortion->GetNode()->Len();
- for ( USHORT n = 0; n < rTypes.Count(); n++ )
+ for ( size_t n = 0; n < rTypes.size(); n++ )
{
if (rTypes[n].nStartPos <= nS && nE <= rTypes[n].nEndPos)
{
@@ -1947,12 +1945,12 @@ BOOL ImpEditEngine::IsScriptChange( const EditPaM& rPaM ) const
{
USHORT nPara = GetEditDoc().GetPos( rPaM.GetNode() );
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
- if ( !pParaPortion->aScriptInfos.Count() )
+ if ( pParaPortion->aScriptInfos.empty() )
((ImpEditEngine*)this)->InitScriptTypes( nPara );
ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
USHORT nPos = rPaM.GetIndex();
- for ( USHORT n = 0; n < rTypes.Count(); n++ )
+ for ( size_t n = 0; n < rTypes.size(); n++ )
{
if ( rTypes[n].nStartPos == nPos )
{
@@ -1969,11 +1967,11 @@ BOOL ImpEditEngine::HasScriptType( USHORT nPara, USHORT nType ) const
BOOL bTypeFound = FALSE;
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
- if ( !pParaPortion->aScriptInfos.Count() )
+ if ( pParaPortion->aScriptInfos.empty() )
((ImpEditEngine*)this)->InitScriptTypes( nPara );
ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
- for ( USHORT n = rTypes.Count(); n && !bTypeFound; )
+ for ( size_t n = rTypes.size(); n && !bTypeFound; )
{
if ( rTypes[--n].nScriptType == nType )
bTypeFound = TRUE;
@@ -1985,11 +1983,11 @@ void ImpEditEngine::InitWritingDirections( USHORT nPara )
{
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
WritingDirectionInfos& rInfos = pParaPortion->aWritingDirectionInfos;
- rInfos.Remove( 0, rInfos.Count() );
+ rInfos.clear();
BOOL bCTL = FALSE;
ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
- for ( USHORT n = 0; n < rTypes.Count(); n++ )
+ for ( size_t n = 0; n < rTypes.size(); n++ )
{
if ( rTypes[n].nScriptType == i18n::ScriptType::COMPLEX )
{
@@ -2014,16 +2012,16 @@ void ImpEditEngine::InitWritingDirections( USHORT nPara )
ubidi_setPara( pBidi, reinterpret_cast<const UChar *>(aText.GetBuffer()), aText.Len(), nBidiLevel, NULL, &nError ); // UChar != sal_Unicode in MinGW
nError = U_ZERO_ERROR;
- long nCount = ubidi_countRuns( pBidi, &nError );
+ size_t nCount = ubidi_countRuns( pBidi, &nError );
int32_t nStart = 0;
int32_t nEnd;
UBiDiLevel nCurrDir;
- for ( USHORT nIdx = 0; nIdx < nCount; ++nIdx )
+ for ( size_t nIdx = 0; nIdx < nCount; ++nIdx )
{
ubidi_getLogicalRun( pBidi, nStart, &nEnd, &nCurrDir );
- rInfos.Insert( WritingDirectionInfo( nCurrDir, (USHORT)nStart, (USHORT)nEnd ), rInfos.Count() );
+ rInfos.push_back( WritingDirectionInfo( nCurrDir, (USHORT)nStart, (USHORT)nEnd ) );
nStart = nEnd;
}
@@ -2031,8 +2029,8 @@ void ImpEditEngine::InitWritingDirections( USHORT nPara )
}
// No infos mean no CTL and default dir is L2R...
- if ( !rInfos.Count() )
- rInfos.Insert( WritingDirectionInfo( 0, 0, (USHORT)pParaPortion->GetNode()->Len() ), rInfos.Count() );
+ if ( rInfos.empty() )
+ rInfos.push_back( WritingDirectionInfo( 0, 0, (USHORT)pParaPortion->GetNode()->Len() ) );
}
@@ -2096,12 +2094,12 @@ BYTE ImpEditEngine::GetRightToLeft( USHORT nPara, USHORT nPos, USHORT* pStart, U
if ( pNode && pNode->Len() )
{
ParaPortion* pParaPortion = GetParaPortions().SaveGetObject( nPara );
- if ( !pParaPortion->aWritingDirectionInfos.Count() )
+ if ( pParaPortion->aWritingDirectionInfos.empty() )
InitWritingDirections( nPara );
// BYTE nType = 0;
WritingDirectionInfos& rDirInfos = pParaPortion->aWritingDirectionInfos;
- for ( USHORT n = 0; n < rDirInfos.Count(); n++ )
+ for ( size_t n = 0; n < rDirInfos.size(); n++ )
{
if ( ( rDirInfos[n].nStartPos <= nPos ) && ( rDirInfos[n].nEndPos >= nPos ) )
{
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index 01d36c223c..ea0c31aa61 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -2294,15 +2294,15 @@ void ImpEditEngine::CreateTextPortions( ParaPortion* pParaPortion, sal_uInt16& r
}
aPositions.Insert( pNode->Len() );
- if ( !pParaPortion->aScriptInfos.Count() )
+ if ( pParaPortion->aScriptInfos.empty() )
((ImpEditEngine*)this)->InitScriptTypes( GetParaPortions().GetPos( pParaPortion ) );
const ScriptTypePosInfos& rTypes = pParaPortion->aScriptInfos;
- for ( USHORT nT = 0; nT < rTypes.Count(); nT++ )
+ for ( size_t nT = 0; nT < rTypes.size(); nT++ )
aPositions.Insert( rTypes[nT].nStartPos );
const WritingDirectionInfos& rWritingDirections = pParaPortion->aWritingDirectionInfos;
- for ( USHORT nD = 0; nD < rWritingDirections.Count(); nD++ )
+ for ( size_t nD = 0; nD < rWritingDirections.size(); nD++ )
aPositions.Insert( rWritingDirections[nD].nStartPos );
if ( mpIMEInfos && mpIMEInfos->nLen && mpIMEInfos->pAttribs && ( mpIMEInfos->aPos.GetNode() == pNode ) )
diff --git a/editeng/source/editeng/impedit4.cxx b/editeng/source/editeng/impedit4.cxx
index e15b7e7d1c..a2ff143495 100755
--- a/editeng/source/editeng/impedit4.cxx
+++ b/editeng/source/editeng/impedit4.cxx
@@ -397,8 +397,8 @@ sal_uInt32 ImpEditEngine::WriteRTF( SvStream& rOutput, EditSelection aSel )
else if ( nScriptType == 2 )
nWhich = EE_CHAR_FONTINFO_CTL;
- sal_uInt16 i = 0;
- SvxFontItem* pFontItem = (SvxFontItem*)aEditDoc.GetItemPool().GetItem( nWhich, i );
+ sal_uInt32 i = 0;
+ SvxFontItem* pFontItem = (SvxFontItem*)aEditDoc.GetItemPool().GetItem2( nWhich, i );
while ( pFontItem )
{
bool bAlreadyExist = false;
@@ -411,7 +411,7 @@ sal_uInt32 ImpEditEngine::WriteRTF( SvStream& rOutput, EditSelection aSel )
if ( !bAlreadyExist )
aFontTable.Insert( aFontTable.Count(), new SvxFontItem( *pFontItem ) );
- pFontItem = (SvxFontItem*)aEditDoc.GetItemPool().GetItem( nWhich, ++i );
+ pFontItem = (SvxFontItem*)aEditDoc.GetItemPool().GetItem2( nWhich, ++i );
}
}
@@ -467,17 +467,17 @@ sal_uInt32 ImpEditEngine::WriteRTF( SvStream& rOutput, EditSelection aSel )
// ColorList rausschreiben...
SvxColorList aColorList;
- sal_uInt16 i = 0;
- SvxColorItem* pColorItem = (SvxColorItem*)aEditDoc.GetItemPool().GetItem( EE_CHAR_COLOR, i );
+ sal_uInt32 i = 0;
+ SvxColorItem* pColorItem = (SvxColorItem*)aEditDoc.GetItemPool().GetItem2( EE_CHAR_COLOR, i );
while ( pColorItem )
{
- USHORT nPos = i;
+ sal_uInt32 nPos = i;
if ( pColorItem->GetValue() == COL_AUTO )
nPos = 0;
aColorList.Insert( new SvxColorItem( *pColorItem ), nPos );
- pColorItem = (SvxColorItem*)aEditDoc.GetItemPool().GetItem( EE_CHAR_COLOR, ++i );
+ pColorItem = (SvxColorItem*)aEditDoc.GetItemPool().GetItem2( EE_CHAR_COLOR, ++i );
}
- aColorList.Insert( new SvxColorItem( (const SvxColorItem&)aEditDoc.GetItemPool().GetDefaultItem( EE_CHAR_COLOR) ), (sal_uInt32)i );
+ aColorList.Insert( new SvxColorItem( (const SvxColorItem&)aEditDoc.GetItemPool().GetDefaultItem( EE_CHAR_COLOR) ), i );
rOutput << '{' << OOO_STRING_SVTOOLS_RTF_COLORTBL;
for ( j = 0; j < aColorList.Count(); j++ )
diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx
index 8eea009a4e..c083f02fab 100644
--- a/editeng/source/misc/svxacorr.cxx
+++ b/editeng/source/misc/svxacorr.cxx
@@ -1387,6 +1387,32 @@ ULONG SvxAutoCorrect::AutoCorrect( SvxAutoCorrDoc& rDoc, const String& rTxt,
if( nRet )
{
+ const char* aHelpIds[] =
+ {
+ HID_AUTOCORR_HELP_WORD,
+ HID_AUTOCORR_HELP_SENT,
+ HID_AUTOCORR_HELP_SENTWORD,
+ HID_AUTOCORR_HELP_ACORWORD,
+ "",
+ HID_AUTOCORR_HELP_ACORSENTWORD,
+ "",
+ HID_AUTOCORR_HELP_CHGTOENEMDASH,
+ HID_AUTOCORR_HELP_WORDENEMDASH,
+ HID_AUTOCORR_HELP_SENTENEMDASH,
+ HID_AUTOCORR_HELP_SENTWORDENEMDASH,
+ HID_AUTOCORR_HELP_ACORWORDENEMDASH,
+ "",
+ HID_AUTOCORR_HELP_ACORSENTWORDENEMDASH,
+ "",
+ HID_AUTOCORR_HELP_CHGQUOTES,
+ HID_AUTOCORR_HELP_CHGSGLQUOTES,
+ HID_AUTOCORR_HELP_SETINETATTR,
+ HID_AUTOCORR_HELP_INGNOREDOUBLESPACE,
+ HID_AUTOCORR_HELP_CHGWEIGHTUNDERL,
+ HID_AUTOCORR_HELP_CHGFRACTIONSYMBOL,
+ HID_AUTOCORR_HELP_CHGORDINALNUMBER
+ };
+
ULONG nHelpId = 0;
if( nRet & ( Autocorrect|CptlSttSntnc|CptlSttWrd|ChgToEnEmDash ) )
{
@@ -1413,8 +1439,8 @@ ULONG SvxAutoCorrect::AutoCorrect( SvxAutoCorrDoc& rDoc, const String& rTxt,
if( nHelpId )
{
- nHelpId += HID_AUTOCORR_HELP_START - 1;
- Application::GetHelp()->OpenHelpAgent( nHelpId );
+ nHelpId -= 1;
+ Application::GetHelp()->OpenHelpAgent( aHelpIds[nHelpId] );
}
}
diff --git a/editeng/source/misc/txtrange.cxx b/editeng/source/misc/txtrange.cxx
index 7f66d10d17..244cefd2b1 100644
--- a/editeng/source/misc/txtrange.cxx
+++ b/editeng/source/misc/txtrange.cxx
@@ -196,7 +196,7 @@ public:
SvxBoundArgs::SvxBoundArgs( TextRanger* pRanger, SvLongs *pLong,
const Range& rRange )
- : aBoolArr( 4, 4 ), pLongArr( pLong ), pTextRanger( pRanger ),
+ : pLongArr( pLong ), pTextRanger( pRanger ),
nTop( rRange.Min() ), nBottom( rRange.Max() ),
bInner( pRanger->IsInner() ), bMultiple( bInner || !pRanger->IsSimple() ),
bConcat( FALSE ), bRotate( pRanger->IsVertical() )
@@ -291,7 +291,7 @@ void SvxBoundArgs::NoteRange( BOOL bToggle )
bToggle = FALSE;
USHORT nIdx = 0;
USHORT nCount = pLongArr->Count();
- DBG_ASSERT( nCount == 2 * aBoolArr.Count(), "NoteRange: Incompatible Sizes" );
+ DBG_ASSERT( nCount == 2 * aBoolArr.size(), "NoteRange: Incompatible Sizes" );
while( nIdx < nCount && (*pLongArr)[ nIdx ] < nMin )
++nIdx;
BOOL bOdd = nIdx % 2 ? TRUE : FALSE;
@@ -300,7 +300,7 @@ void SvxBoundArgs::NoteRange( BOOL bToggle )
{ // Dann wird ein neues eingefuegt ...
pLongArr->Insert( nMin, nIdx );
pLongArr->Insert( nMax, nIdx + 1 );
- aBoolArr.Insert( bToggle, nIdx / 2 );
+ aBoolArr.insert( aBoolArr.begin() + nIdx / 2, bToggle );
}
else
{ // ein vorhandes Intervall erweitern ...
@@ -332,9 +332,9 @@ void SvxBoundArgs::NoteRange( BOOL bToggle )
USHORT nStop = nMaxIdx + nDiff;
for( USHORT i = nMaxIdx; i < nStop; ++i )
bToggle ^= aBoolArr[ i ];
- aBoolArr.Remove( nMaxIdx, nDiff );
+ aBoolArr.erase( aBoolArr.begin() + nMaxIdx, aBoolArr.begin() + (nMaxIdx + nDiff) );
}
- DBG_ASSERT( nMaxIdx < aBoolArr.Count(), "NoteRange: Too much deleted" );
+ DBG_ASSERT( nMaxIdx < aBoolArr.size(), "NoteRange: Too much deleted" );
aBoolArr[ nMaxIdx ] ^= bToggle;
}
}
@@ -479,13 +479,13 @@ void SvxBoundArgs::Calc( const PolyPolygon& rPoly )
void SvxBoundArgs::Add()
{
USHORT nLongIdx = 1;
- USHORT nCount = aBoolArr.Count();
+ size_t nCount = aBoolArr.size();
if( nCount && ( !bInner || !pTextRanger->IsSimple() ) )
{
- BOOL bDelete = aBoolArr[ 0 ];
+ BOOL bDelete = aBoolArr.front();
if( bInner )
bDelete = !bDelete;
- for( USHORT nBoolIdx = 1; nBoolIdx < nCount; ++nBoolIdx )
+ for( size_t nBoolIdx = 1; nBoolIdx < nCount; ++nBoolIdx )
{
if( bDelete )
{
@@ -497,7 +497,7 @@ void SvxBoundArgs::Add()
next /= 2;
nBoolIdx = nBoolIdx - next;
nCount = nCount - next;
- aBoolArr.Remove( nBoolIdx, next );
+ aBoolArr.erase( aBoolArr.begin() + nBoolIdx, aBoolArr.begin() + (nBoolIdx + next) );
if( nBoolIdx )
aBoolArr[ nBoolIdx - 1 ] = FALSE;
#if OSL_DEBUG_LEVEL > 1
@@ -508,7 +508,7 @@ void SvxBoundArgs::Add()
bDelete = nBoolIdx < nCount && aBoolArr[ nBoolIdx ];
nLongIdx += 2;
DBG_ASSERT( nLongIdx == 2*nBoolIdx+1, "BoundArgs: Array-Idx Confusion" );
- DBG_ASSERT( aBoolArr.Count()*2 == pLongArr->Count(),
+ DBG_ASSERT( aBoolArr.size()*2 == pLongArr->Count(),
"BoundArgs: Array-Count: Confusion" );
}
}
@@ -538,7 +538,7 @@ void SvxBoundArgs::Concat( const PolyPolygon* pPoly )
DBG_ASSERT( pPoly, "Nothing to do?" );
SvLongs *pOld = pLongArr;
pLongArr = new SvLongs( 2, 8 );
- aBoolArr.Remove( 0, aBoolArr.Count() );
+ aBoolArr.clear();
bInner = FALSE;
Calc( *pPoly );
USHORT nCount = pLongArr->Count();
diff --git a/editeng/source/rtf/makefile.mk b/editeng/source/rtf/makefile.mk
index ef1c5f44b1..38b2ef7b45 100644
--- a/editeng/source/rtf/makefile.mk
+++ b/editeng/source/rtf/makefile.mk
@@ -38,11 +38,11 @@ TARGET=rtf
# --- Files --------------------------------------------------------
EXCEPTIONSFILES= \
+ $(SLO)$/rtfitem.obj \
$(SLO)$/svxrtf.obj
SLOFILES= \
$(EXCEPTIONSFILES) \
- $(SLO)$/rtfitem.obj \
$(SLO)$/rtfgrf.obj
# ==========================================================================
diff --git a/editeng/source/rtf/rtfitem.cxx b/editeng/source/rtf/rtfitem.cxx
index ce2adc3ecb..4e68a841e7 100644
--- a/editeng/source/rtf/rtfitem.cxx
+++ b/editeng/source/rtf/rtfitem.cxx
@@ -228,7 +228,7 @@ void SvxRTFParser::ReadAttr( int nToken, SfxItemSet* pSet )
RTF_CharTypeDef eCharType = NOTDEF_CHARTYPE;
USHORT nFontAlign;
- int bChkStkPos = !bNewGroup && aAttrStack.Top();
+ int bChkStkPos = !bNewGroup && aAttrStack.back();
while( bWeiter && IsParserWorking() ) // solange bekannte Attribute erkannt werden
{
@@ -250,7 +250,7 @@ void SvxRTFParser::ReadAttr( int nToken, SfxItemSet* pSet )
if( !bChkStkPos )
break;
- SvxRTFItemStackType* pAkt = aAttrStack.Top();
+ SvxRTFItemStackType* pAkt = aAttrStack.back();
if( !pAkt || (pAkt->pSttNd->GetIdx() == pInsPos->GetNodeIdx() &&
pAkt->nSttCnt == pInsPos->GetCntIdx() ))
break;
@@ -269,10 +269,10 @@ void SvxRTFParser::ReadAttr( int nToken, SfxItemSet* pSet )
// alle bis hierher gueltigen Attribute "setzen"
AttrGroupEnd();
- pAkt = aAttrStack.Top(); // can be changed after AttrGroupEnd!
+ pAkt = aAttrStack.back(); // can be changed after AttrGroupEnd!
pNew->aAttrSet.SetParent( pAkt ? &pAkt->aAttrSet : 0 );
- aAttrStack.Push( pNew );
+ aAttrStack.push_back( pNew );
pAkt = pNew;
}
else
@@ -305,7 +305,7 @@ void SvxRTFParser::ReadAttr( int nToken, SfxItemSet* pSet )
nStyleNo = -1 == nTokenValue ? 0 : USHORT(nTokenValue);
// setze am akt. auf dem AttrStack stehenden Style die
// StyleNummer
- SvxRTFItemStackType* pAkt = aAttrStack.Top();
+ SvxRTFItemStackType* pAkt = aAttrStack.back();
if( !pAkt )
break;
@@ -1869,9 +1869,9 @@ void SvxRTFParser::ReadBackgroundAttr( int nToken, SfxItemSet& rSet,
// pard / plain abarbeiten
void SvxRTFParser::RTFPardPlain( int bPard, SfxItemSet** ppSet )
{
- if( !bNewGroup && aAttrStack.Top() ) // nicht am Anfang einer neuen Gruppe
+ if( !bNewGroup && aAttrStack.back() ) // not at the beginning of a new group
{
- SvxRTFItemStackType* pAkt = aAttrStack.Top();
+ SvxRTFItemStackType* pAkt = aAttrStack.back();
int nLastToken = GetStackPtr(-1)->nTokenId;
int bNewStkEntry = TRUE;
@@ -1887,9 +1887,9 @@ void SvxRTFParser::RTFPardPlain( int bPard, SfxItemSet** ppSet )
// alle bis hierher gueltigen Attribute "setzen"
AttrGroupEnd();
- pAkt = aAttrStack.Top(); // can be changed after AttrGroupEnd!
+ pAkt = aAttrStack.back(); // can be changed after AttrGroupEnd!
pNew->aAttrSet.SetParent( pAkt ? &pAkt->aAttrSet : 0 );
- aAttrStack.Push( pNew );
+ aAttrStack.push_back( pNew );
pAkt = pNew;
}
else
diff --git a/editeng/source/rtf/svxrtf.cxx b/editeng/source/rtf/svxrtf.cxx
index 676e96f173..1fc96e45d7 100644
--- a/editeng/source/rtf/svxrtf.cxx
+++ b/editeng/source/rtf/svxrtf.cxx
@@ -55,7 +55,6 @@
using namespace ::com::sun::star;
-SV_IMPL_PTRARR( SvxRTFColorTbl, ColorPtr )
SV_IMPL_PTRARR( SvxRTFItemStackList, SvxRTFItemStackType* )
CharSet lcl_GetDefaultTextEncodingForRTF()
@@ -83,7 +82,6 @@ SvxRTFParser::SvxRTFParser( SfxItemPool& rPool, SvStream& rIn,
int bReadNewDoc )
: SvRTFParser( rIn, 5 ),
rStrm(rIn),
- aColorTbl( 16, 4 ),
aFontTbl( 16, 4 ),
pInsPos( 0 ),
pAttrPool( &rPool ),
@@ -124,13 +122,13 @@ void SvxRTFParser::ResetPard()
SvxRTFParser::~SvxRTFParser()
{
- if( aColorTbl.Count() )
+ if( !aColorTbl.empty() )
ClearColorTbl();
if( aFontTbl.Count() )
ClearFontTbl();
if( aStyleTbl.Count() )
ClearStyleTbl();
- if( aAttrStack.Count() )
+ if( !aAttrStack.empty() )
ClearAttrStack();
delete pRTFDefaults;
@@ -149,18 +147,18 @@ void SvxRTFParser::SetInsPos( const SvxPosition& rNew )
SvParserState SvxRTFParser::CallParser()
{
- DBG_ASSERT( pInsPos, "keine Einfuegeposition" );
+ DBG_ASSERT( pInsPos, "no insertion" );
if( !pInsPos )
return SVPAR_ERROR;
- if( aColorTbl.Count() )
+ if( !aColorTbl.empty() )
ClearColorTbl();
if( aFontTbl.Count() )
ClearFontTbl();
if( aStyleTbl.Count() )
ClearStyleTbl();
- if( aAttrStack.Count() )
+ if( !aAttrStack.empty() )
ClearAttrStack();
bIsSetDfltTab = FALSE;
@@ -488,10 +486,10 @@ void SvxRTFParser::ReadColorTable()
// eine Farbe ist Fertig, in die Tabelle eintragen
// versuche die Werte auf SV interne Namen zu mappen
ColorPtr pColor = new Color( nRed, nGreen, nBlue );
- if( !aColorTbl.Count() &&
+ if( aColorTbl.empty() &&
BYTE(-1) == nRed && BYTE(-1) == nGreen && BYTE(-1) == nBlue )
pColor->SetColor( COL_AUTO );
- aColorTbl.Insert( pColor, aColorTbl.Count() );
+ aColorTbl.push_back( pColor );
nRed = 0, nGreen = 0, nBlue = 0;
// Color konnte vollstaendig gelesen werden,
@@ -818,7 +816,11 @@ void SvxRTFParser::ReadInfo( const sal_Char* pChkForVerNo )
void SvxRTFParser::ClearColorTbl()
{
- aColorTbl.DeleteAndDestroy( 0, aColorTbl.Count() );
+ while ( !aColorTbl.empty() )
+ {
+ delete aColorTbl.back();
+ aColorTbl.pop_back();
+ }
}
void SvxRTFParser::ClearFontTbl()
@@ -836,9 +838,10 @@ void SvxRTFParser::ClearStyleTbl()
void SvxRTFParser::ClearAttrStack()
{
SvxRTFItemStackType* pTmp;
- for( ULONG nCnt = aAttrStack.Count(); nCnt; --nCnt )
+ for( size_t nCnt = aAttrStack.size(); nCnt; --nCnt )
{
- pTmp = aAttrStack.Pop();
+ pTmp = aAttrStack.back();
+ aAttrStack.pop_back();
delete pTmp;
}
}
@@ -872,7 +875,7 @@ const Font& SvxRTFParser::GetFont( USHORT nId )
SvxRTFItemStackType* SvxRTFParser::_GetAttrSet( int bCopyAttr )
{
- SvxRTFItemStackType* pAkt = aAttrStack.Top();
+ SvxRTFItemStackType* pAkt = aAttrStack.back();
SvxRTFItemStackType* pNew;
if( pAkt )
pNew = new SvxRTFItemStackType( *pAkt, *pInsPos, bCopyAttr );
@@ -881,7 +884,7 @@ SvxRTFItemStackType* SvxRTFParser::_GetAttrSet( int bCopyAttr )
*pInsPos );
pNew->SetRTFDefaults( GetRTFDefaults() );
- aAttrStack.Push( pNew );
+ aAttrStack.push_back( pNew );
bNewGroup = FALSE;
return pNew;
}
@@ -936,10 +939,11 @@ void SvxRTFParser::_ClearStyleAttr( SvxRTFItemStackType& rStkType )
void SvxRTFParser::AttrGroupEnd() // den akt. Bearbeiten, vom Stack loeschen
{
- if( aAttrStack.Count() )
+ if( !aAttrStack.empty() )
{
- SvxRTFItemStackType *pOld = aAttrStack.Pop();
- SvxRTFItemStackType *pAkt = aAttrStack.Top();
+ SvxRTFItemStackType *pOld = aAttrStack.back();
+ aAttrStack.pop_back();
+ SvxRTFItemStackType *pAkt = aAttrStack.back();
do { // middle check loop
ULONG nOldSttNdIdx = pOld->pSttNd->GetIdx();
@@ -1114,9 +1118,9 @@ void SvxRTFParser::AttrGroupEnd() // den akt. Bearbeiten, vom Stack loeschen
// alle bis hierher gueltigen Attribute "setzen"
AttrGroupEnd();
- pAkt = aAttrStack.Top(); // can be changed after AttrGroupEnd!
+ pAkt = aAttrStack.back(); // can be changed after AttrGroupEnd!
pNew->aAttrSet.SetParent( pAkt ? &pAkt->aAttrSet : 0 );
- aAttrStack.Push( pNew );
+ aAttrStack.push_back( pNew );
pAkt = pNew;
}
}
@@ -1144,8 +1148,8 @@ void SvxRTFParser::AttrGroupEnd() // den akt. Bearbeiten, vom Stack loeschen
void SvxRTFParser::SetAllAttrOfStk() // end all Attr. and set it into doc
{
- // noch alle Attrbute vom Stack holen !!
- while( aAttrStack.Count() )
+ // repeat until all attributes will be taken from stack
+ while( !aAttrStack.empty() )
AttrGroupEnd();
for( USHORT n = aAttrSetList.Count(); n; )
@@ -1174,10 +1178,10 @@ void SvxRTFParser::SetAttrSet( SvxRTFItemStackType &rSet )
SetAttrSet( *(*rSet.pChildList)[ n ] );
}
- // wurde noch kein Text eingefuegt ? (SttPos vom obersten StackEintrag!)
+ // Is text wasn't inserted? (Get SttPos from the top of stack!)
int SvxRTFParser::IsAttrSttPos()
{
- SvxRTFItemStackType* pAkt = aAttrStack.Top();
+ SvxRTFItemStackType* pAkt = aAttrStack.back();
return !pAkt || (pAkt->pSttNd->GetIdx() == pInsPos->GetNodeIdx() &&
pAkt->nSttCnt == pInsPos->GetCntIdx());
}
diff --git a/formula/inc/formula/IFunctionDescription.hxx b/formula/inc/formula/IFunctionDescription.hxx
index c0579f1ac7..9ecdff4263 100644
--- a/formula/inc/formula/IFunctionDescription.hxx
+++ b/formula/inc/formula/IFunctionDescription.hxx
@@ -92,7 +92,7 @@ namespace formula
virtual void fillVisibleArgumentMapping(::std::vector<USHORT>& _rArguments) const = 0;
virtual void initArgumentInfo() const = 0;
virtual ::rtl::OUString getSignature() const = 0;
- virtual long getHelpId() const = 0;
+ virtual rtl::OString getHelpId() const = 0;
// parameter
virtual sal_uInt32 getParameterCount() const = 0;
diff --git a/formula/inc/formula/formdata.hxx b/formula/inc/formula/formdata.hxx
index 0ae141cc30..e9d9f06b37 100644
--- a/formula/inc/formula/formdata.hxx
+++ b/formula/inc/formula/formdata.hxx
@@ -53,7 +53,7 @@ public:
inline USHORT GetEdFocus() const { return nEdFocus; }
inline const String& GetUndoStr() const { return aUndoStr; }
inline BOOL GetMatrixFlag()const{ return bMatrix;}
- inline ULONG GetUniqueId()const { return nUniqueId;}
+ inline rtl::OString GetUniqueId()const { return aUniqueId;}
inline const Selection& GetSelection()const { return aSelection;}
inline void SetMode( USHORT nNew ) { nMode = nNew; }
@@ -64,7 +64,7 @@ public:
inline void SetEdFocus( USHORT nNew ) { nEdFocus = nNew; }
inline void SetUndoStr( const String& rNew ) { aUndoStr = rNew; }
inline void SetMatrixFlag(BOOL bNew) { bMatrix=bNew;}
- inline void SetUniqueId(ULONG nNew) { nUniqueId=nNew;}
+ inline void SetUniqueId(const rtl::OString nNew) { aUniqueId=nNew;}
inline void SetSelection(const Selection& aSel) { aSelection=aSel;}
protected:
void Reset();
@@ -81,7 +81,7 @@ private:
USHORT nEdFocus;
String aUndoStr;
BOOL bMatrix;
- ULONG nUniqueId;
+ rtl::OString aUniqueId;
Selection aSelection;
};
diff --git a/formula/inc/formula/formula.hxx b/formula/inc/formula/formula.hxx
index 812c6631d3..2f59807a34 100644
--- a/formula/inc/formula/formula.hxx
+++ b/formula/inc/formula/formula.hxx
@@ -80,8 +80,8 @@ protected:
::std::pair<RefButton*,RefEdit*> RefInputStartBefore( RefEdit* pEdit, RefButton* pButton = NULL );
void RefInputStartAfter( RefEdit* pEdit, RefButton* pButton = NULL );
void RefInputDoneAfter( BOOL bForced = FALSE );
- ULONG FindFocusWin(Window *pWin);
- void SetFocusWin(Window *pWin,ULONG nUniqueId);
+ rtl::OString FindFocusWin(Window *pWin);
+ void SetFocusWin(Window *pWin,const rtl::OString& nUniqueId);
void HighlightFunctionParas(const String& aFormula);
void SetMeText(const String& _sText);
@@ -129,8 +129,8 @@ protected:
::std::pair<RefButton*,RefEdit*> RefInputStartBefore( RefEdit* pEdit, RefButton* pButton = NULL );
void RefInputStartAfter( RefEdit* pEdit, RefButton* pButton = NULL );
void RefInputDoneAfter( BOOL bForced = FALSE );
- ULONG FindFocusWin(Window *pWin);
- void SetFocusWin(Window *pWin,ULONG nUniqueId);
+ rtl::OString FindFocusWin(Window *pWin);
+ void SetFocusWin(Window *pWin,const rtl::OString& nUniqueId);
void HighlightFunctionParas(const String& aFormula);
void SetMeText(const String& _sText);
diff --git a/formula/inc/helpids.hrc b/formula/inc/helpids.hrc
index dfd7403f8d..c2f6903517 100644
--- a/formula/inc/helpids.hrc
+++ b/formula/inc/helpids.hrc
@@ -27,36 +27,26 @@
#ifndef FORMULA_HELPID_HRC
#define FORMULA_HELPID_HRC
-#ifndef _SOLAR_HRC
-#include <svl/solar.hrc> // HID_FORMULA_START
-#endif
-
-#define HID_FORMULADLG_FORMULA (HID_FORMULA_START + 0)
-#define HID_FORMULA_FAP_FORMULA (HID_FORMULA_START + 1)
-#define HID_FORMULA_FAP_STRUCT (HID_FORMULA_START + 2)
-#define HID_FORMULA_FAP_PAGE (HID_FORMULA_START + 3)
-#define HID_FORMULA_FAP_EDIT1 (HID_FORMULA_START + 4)
-#define HID_FORMULA_FAP_EDIT2 (HID_FORMULA_START + 5)
-#define HID_FORMULA_FAP_EDIT3 (HID_FORMULA_START + 6)
-#define HID_FORMULA_FAP_EDIT4 (HID_FORMULA_START + 7)
-#define HID_FORMULA_FAP_BTN_FX1 (HID_FORMULA_START + 8)
-#define HID_FORMULA_FAP_BTN_FX2 (HID_FORMULA_START + 9)
-#define HID_FORMULA_FAP_BTN_FX3 (HID_FORMULA_START +10)
-#define HID_FORMULA_FAP_BTN_FX4 (HID_FORMULA_START +11)
-#define HID_FORMULA_FAP_BTN_REF1 (HID_FORMULA_START +12)
-#define HID_FORMULA_FAP_BTN_REF2 (HID_FORMULA_START +13)
-#define HID_FORMULA_FAP_BTN_REF3 (HID_FORMULA_START +14)
-#define HID_FORMULA_FAP_BTN_REF4 (HID_FORMULA_START +15)
-#define HID_FORMULA_LB_CATEGORY (HID_FORMULA_START +16)
-#define HID_FORMULA_LB_FUNCTION (HID_FORMULA_START +17)
-#define HID_FORMULATAB_FUNCTION (HID_FORMULA_START +18)
-#define HID_FORMULATAB_STRUCT (HID_FORMULA_START +19)
-
-
-#if HID_FORMULATAB_STRUCT > HID_FORMULA_END
-#error Help-Id Ueberlauf in #file, #line
-#endif
-// don't forget to update the file util/hidother.src
+#define HID_FORMULADLG_FORMULA "FORMULA_HID_FORMULADLG_FORMULA"
+#define HID_FORMULA_FAP_FORMULA "FORMULA_HID_FORMULA_FAP_FORMULA"
+#define HID_FORMULA_FAP_STRUCT "FORMULA_HID_FORMULA_FAP_STRUCT"
+#define HID_FORMULA_FAP_PAGE "FORMULA_HID_FORMULA_FAP_PAGE"
+#define HID_FORMULA_FAP_EDIT1 "FORMULA_HID_FORMULA_FAP_EDIT1"
+#define HID_FORMULA_FAP_EDIT2 "FORMULA_HID_FORMULA_FAP_EDIT2"
+#define HID_FORMULA_FAP_EDIT3 "FORMULA_HID_FORMULA_FAP_EDIT3"
+#define HID_FORMULA_FAP_EDIT4 "FORMULA_HID_FORMULA_FAP_EDIT4"
+#define HID_FORMULA_FAP_BTN_FX1 "FORMULA_HID_FORMULA_FAP_BTN_FX1"
+#define HID_FORMULA_FAP_BTN_FX2 "FORMULA_HID_FORMULA_FAP_BTN_FX2"
+#define HID_FORMULA_FAP_BTN_FX3 "FORMULA_HID_FORMULA_FAP_BTN_FX3"
+#define HID_FORMULA_FAP_BTN_FX4 "FORMULA_HID_FORMULA_FAP_BTN_FX4"
+#define HID_FORMULA_FAP_BTN_REF1 "FORMULA_HID_FORMULA_FAP_BTN_REF1"
+#define HID_FORMULA_FAP_BTN_REF2 "FORMULA_HID_FORMULA_FAP_BTN_REF2"
+#define HID_FORMULA_FAP_BTN_REF3 "FORMULA_HID_FORMULA_FAP_BTN_REF3"
+#define HID_FORMULA_FAP_BTN_REF4 "FORMULA_HID_FORMULA_FAP_BTN_REF4"
+#define HID_FORMULA_LB_CATEGORY "FORMULA_HID_FORMULA_LB_CATEGORY"
+#define HID_FORMULA_LB_FUNCTION "FORMULA_HID_FORMULA_LB_FUNCTION"
+#define HID_FORMULATAB_FUNCTION "FORMULA_HID_FORMULATAB_FUNCTION"
+#define HID_FORMULATAB_STRUCT "FORMULA_HID_FORMULATAB_STRUCT"
#endif //FORMULA_HELPID_HRC
diff --git a/formula/source/ui/dlg/FormulaHelper.cxx b/formula/source/ui/dlg/FormulaHelper.cxx
index 89d3508bc1..5f5f2b8623 100644
--- a/formula/source/ui/dlg/FormulaHelper.cxx
+++ b/formula/source/ui/dlg/FormulaHelper.cxx
@@ -50,7 +50,7 @@ namespace formula
virtual void fillVisibleArgumentMapping(::std::vector<USHORT>& ) const {}
virtual void initArgumentInfo() const {}
virtual ::rtl::OUString getSignature() const { return ::rtl::OUString(); }
- virtual long getHelpId() const { return 0; }
+ virtual rtl::OString getHelpId() const { return ""; }
virtual sal_uInt32 getParameterCount() const { return 0; }
virtual ::rtl::OUString getParameterName(sal_uInt32 ) const { return ::rtl::OUString(); }
virtual ::rtl::OUString getParameterDescription(sal_uInt32 ) const { return ::rtl::OUString(); }
diff --git a/formula/source/ui/dlg/formdlgs.src b/formula/source/ui/dlg/formdlgs.src
index 8ea9545c09..40a87e3b23 100644
--- a/formula/source/ui/dlg/formdlgs.src
+++ b/formula/source/ui/dlg/formdlgs.src
@@ -163,6 +163,7 @@ ModalDialog RID_FORMULADLG_FORMULA_MODAL
Moveable = TRUE ;
TabControl TC_FUNCTION
{
+ HelpID = "formula:TabControl:RID_FORMULADLG_FORMULA_MODAL:TC_FUNCTION";
Pos = MAP_APPFONT ( 6 , 5 ) ;
Size = MAP_APPFONT ( 102 , 199 ) ;
PageList =
@@ -249,6 +250,7 @@ ModalDialog RID_FORMULADLG_FORMULA_MODAL
};
CheckBox BTN_MATRIX
{
+ HelpID = "formula:CheckBox:RID_FORMULADLG_FORMULA_MODAL:BTN_MATRIX";
Pos = MAP_APPFONT ( 6 , 208 ) ;
Size = MAP_APPFONT ( 50 , 10 ) ;
TabStop = TRUE ;
@@ -256,12 +258,14 @@ ModalDialog RID_FORMULADLG_FORMULA_MODAL
};
Edit ED_REF
{
+ HelpID = "formula:Edit:RID_FORMULADLG_FORMULA_MODAL:ED_REF";
Border = TRUE ;
Pos = MAP_APPFONT ( 76 , 205 ) ;
Size = MAP_APPFONT ( 66 , 12 ) ;
};
ImageButton RB_REF
{
+ HelpID = "formula:ImageButton:RID_FORMULADLG_FORMULA_MODAL:RB_REF";
Pos = MAP_APPFONT ( 144 , 205 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -281,6 +285,7 @@ ModalDialog RID_FORMULADLG_FORMULA_MODAL
};
PushButton BTN_BACKWARD
{
+ HelpID = "formula:PushButton:RID_FORMULADLG_FORMULA_MODAL:BTN_BACKWARD";
Pos = MAP_APPFONT ( 171 , 208 ) ;
Size = MAP_APPFONT ( 45 , 14 ) ;
TabStop = TRUE ;
@@ -288,6 +293,7 @@ ModalDialog RID_FORMULADLG_FORMULA_MODAL
};
PushButton BTN_FORWARD
{
+ HelpID = "formula:PushButton:RID_FORMULADLG_FORMULA_MODAL:BTN_FORWARD";
Pos = MAP_APPFONT ( 219 , 208 ) ;
Size = MAP_APPFONT ( 45 , 14 ) ;
TabStop = TRUE ;
@@ -324,6 +330,7 @@ ModelessDialog RID_FORMULADLG_FORMULA
Moveable = TRUE ;
TabControl TC_FUNCTION
{
+ HelpID = "formula:TabControl:RID_FORMULADLG_FORMULA:TC_FUNCTION";
Pos = MAP_APPFONT ( 6 , 5 ) ;
Size = MAP_APPFONT ( 102 , 199 ) ;
PageList =
@@ -410,6 +417,7 @@ ModelessDialog RID_FORMULADLG_FORMULA
};
CheckBox BTN_MATRIX
{
+ HelpID = "formula:CheckBox:RID_FORMULADLG_FORMULA:BTN_MATRIX";
Pos = MAP_APPFONT ( 6 , 208 ) ;
Size = MAP_APPFONT ( 50 , 10 ) ;
TabStop = TRUE ;
@@ -417,12 +425,14 @@ ModelessDialog RID_FORMULADLG_FORMULA
};
Edit ED_REF
{
+ HelpID = "formula:Edit:RID_FORMULADLG_FORMULA:ED_REF";
Border = TRUE ;
Pos = MAP_APPFONT ( 76 , 205 ) ;
Size = MAP_APPFONT ( 66 , 12 ) ;
};
ImageButton RB_REF
{
+ HelpID = "formula:ImageButton:RID_FORMULADLG_FORMULA:RB_REF";
Pos = MAP_APPFONT ( 144 , 205 ) ;
Size = MAP_APPFONT ( 13 , 15 ) ;
TabStop = FALSE ;
@@ -442,6 +452,7 @@ ModelessDialog RID_FORMULADLG_FORMULA
};
PushButton BTN_BACKWARD
{
+ HelpID = "formula:PushButton:RID_FORMULADLG_FORMULA:BTN_BACKWARD";
Pos = MAP_APPFONT ( 171 , 208 ) ;
Size = MAP_APPFONT ( 45 , 14 ) ;
TabStop = TRUE ;
@@ -449,6 +460,7 @@ ModelessDialog RID_FORMULADLG_FORMULA
};
PushButton BTN_FORWARD
{
+ HelpID = "formula:PushButton:RID_FORMULADLG_FORMULA:BTN_FORWARD";
Pos = MAP_APPFONT ( 219 , 208 ) ;
Size = MAP_APPFONT ( 45 , 14 ) ;
TabStop = TRUE ;
diff --git a/formula/source/ui/dlg/formula.cxx b/formula/source/ui/dlg/formula.cxx
index caa22cd3c0..eaca92a81d 100644
--- a/formula/source/ui/dlg/formula.cxx
+++ b/formula/source/ui/dlg/formula.cxx
@@ -143,7 +143,7 @@ namespace formula
void PreNotify( NotifyEvent& rNEvt );
RefEdit* GetCurrRefEdit();
- ULONG FindFocusWin(Window *pWin);
+ rtl::OString FindFocusWin(Window *pWin);
const FormulaHelper& GetFormulaHelper() const;
uno::Reference< sheet::XFormulaOpCodeMapper > GetFormulaOpCodeMapper() const;
@@ -226,11 +226,11 @@ namespace formula
FormulaHelper
m_aFormulaHelper;
- SmartId m_aSmartEditHelpId;
+ rtl::OString m_aEditHelpId;
- ULONG nOldHelp;
- ULONG nOldUnique;
- ULONG nActivWinId;
+ rtl::OString aOldHelp;
+ rtl::OString aOldUnique;
+ rtl::OString aActivWinId;
BOOL bIsShutDown;
@@ -300,7 +300,6 @@ FormulaDlg_Impl::FormulaDlg_Impl(Dialog* pParent
aTxtOk ( aBtnEnd.GetText() ),
m_aFormulaHelper(_pFunctionMgr),
//
- nActivWinId (0),
bIsShutDown (FALSE),
nEdFocus (0),
pFuncDesc (NULL),
@@ -314,8 +313,8 @@ FormulaDlg_Impl::FormulaDlg_Impl(Dialog* pParent
aRefBtn.Hide();
pMEdit = aMEFormula.GetEdit();
- m_aSmartEditHelpId = pMEdit->GetSmartHelpId();
- pMEdit->SetSmartUniqueId(m_aSmartEditHelpId);
+ m_aEditHelpId = pMEdit->GetHelpId();
+ pMEdit->SetUniqueId( m_aEditHelpId );
bEditFlag=FALSE;
bStructUpdate=TRUE;
@@ -331,8 +330,8 @@ FormulaDlg_Impl::FormulaDlg_Impl(Dialog* pParent
aTabCtrl.SetTabPage( TP_FUNCTION, pFuncPage);
aTabCtrl.SetTabPage( TP_STRUCT, pStructPage);
- nOldHelp = pParent->GetHelpId(); // HelpId aus Resource immer fuer "Seite 1"
- nOldUnique = pParent->GetUniqueId();
+ aOldHelp = pParent->GetHelpId(); // HelpId aus Resource immer fuer "Seite 1"
+ aOldUnique = pParent->GetUniqueId();
aFtResult.Show( _bSupportResult );
aWndResult.Show( _bSupportResult );
@@ -408,27 +407,27 @@ void FormulaDlg_Impl::PreNotify( NotifyEvent& rNEvt )
Window* pWin=rNEvt.GetWindow();
if(pWin!=NULL)
{
- nActivWinId = pWin->GetUniqueId();
- if(nActivWinId==0)
+ aActivWinId = pWin->GetUniqueId();
+ if(aActivWinId.getLength()==0)
{
Window* pParent=pWin->GetParent();
while(pParent!=NULL)
{
- nActivWinId=pParent->GetUniqueId();
+ aActivWinId=pParent->GetUniqueId();
- if(nActivWinId!=0) break;
+ if(aActivWinId.getLength()!=0) break;
pParent=pParent->GetParent();
}
}
- if(nActivWinId!=0)
+ if(aActivWinId.getLength())
{
FormEditData* pData = m_pHelper->getFormEditData();
if (pData && !aTimer.IsActive()) // wird nicht ueber Close zerstoert;
{
- pData->SetUniqueId(nActivWinId);
+ pData->SetUniqueId(aActivWinId);
}
}
}
@@ -825,8 +824,8 @@ void FormulaDlg_Impl::FillListboxes()
aNewTitle = aTitle1;
// HelpId fuer 1. Seite ist die aus der Resource
- m_pParent->SetHelpId( nOldHelp );
- m_pParent->SetUniqueId( nOldUnique );
+ m_pParent->SetHelpId( aOldHelp );
+ m_pParent->SetUniqueId( aOldUnique );
}
// -----------------------------------------------------------------------------
void FormulaDlg_Impl::FillControls(BOOL &rbNext, BOOL &rbPrev)
@@ -862,9 +861,9 @@ void FormulaDlg_Impl::FillControls(BOOL &rbNext, BOOL &rbPrev)
aFtEditName.SetText( pFuncDesc->getFunctionName() );
aFtEditName.Show();
pParaWin->Show();
- const long nHelpId = pFuncDesc->getHelpId();
- if ( nHelpId )
- pMEdit->SetSmartHelpId(SmartId(nHelpId));
+ const rtl::OString aHelpId = pFuncDesc->getHelpId();
+ if ( aHelpId.getLength() )
+ pMEdit->SetHelpId(aHelpId);
}
xub_StrLen nOldStart, nOldEnd;
@@ -920,7 +919,7 @@ void FormulaDlg_Impl::FillControls(BOOL &rbNext, BOOL &rbPrev)
else
{
aFtEditName.SetText(String());
- pMEdit->SetSmartHelpId(m_aSmartEditHelpId);
+ pMEdit->SetHelpId( m_aEditHelpId );
}
// Test, ob vorne/hinten noch mehr Funktionen sind
@@ -1790,20 +1789,20 @@ BOOL FormulaDlg_Impl::UpdateParaWin(Selection& _rSelection)
}
return pTheRefEdit == NULL;
}
-ULONG FormulaDlg_Impl::FindFocusWin(Window *pWin)
+rtl::OString FormulaDlg_Impl::FindFocusWin(Window *pWin)
{
- ULONG nUniqueId=0;
+ rtl::OString aUniqueId;
if(pWin->HasFocus())
{
- nUniqueId=pWin->GetUniqueId();
- if(nUniqueId==0)
+ aUniqueId=pWin->GetUniqueId();
+ if(aUniqueId.getLength()==0)
{
Window* pParent=pWin->GetParent();
while(pParent!=NULL)
{
- nUniqueId=pParent->GetUniqueId();
+ aUniqueId=pParent->GetUniqueId();
- if(nUniqueId!=0) break;
+ if(aUniqueId.getLength()!=0) break;
pParent=pParent->GetParent();
}
@@ -1816,11 +1815,11 @@ ULONG FormulaDlg_Impl::FindFocusWin(Window *pWin)
for(USHORT i=0;i<nCount;i++)
{
Window* pChild=pWin->GetChild(i);
- nUniqueId=FindFocusWin(pChild);
- if(nUniqueId>0) break;
+ aUniqueId=FindFocusWin(pChild);
+ if(aUniqueId.getLength()>0) break;
}
}
- return nUniqueId;
+ return aUniqueId;
}
void FormulaDlg_Impl::SetEdSelection()
@@ -1925,12 +1924,12 @@ void FormulaModalDialog::RefInputDoneAfter( BOOL bForced )
m_pImpl->RefInputDoneAfter( bForced );
}
-ULONG FormulaModalDialog::FindFocusWin(Window *pWin)
+rtl::OString FormulaModalDialog::FindFocusWin(Window *pWin)
{
return m_pImpl->FindFocusWin( pWin );
}
-void FormulaModalDialog::SetFocusWin(Window *pWin,ULONG nUniqueId)
+void FormulaModalDialog::SetFocusWin(Window *pWin,const rtl::OString& nUniqueId)
{
if(pWin->GetUniqueId()==nUniqueId)
{
@@ -2007,7 +2006,7 @@ FormulaDlg::FormulaDlg( SfxBindings* pB, SfxChildWindow* pCW,
,_pHelper,_pFunctionMgr,_pDlg))
{
FreeResource();
- if(GetHelpId()==0) //Hack, da im SfxModelessDialog die HelpId
+ if(!GetHelpId().getLength()) //Hack, da im SfxModelessDialog die HelpId
SetHelpId(GetUniqueId()); //fuer einen ModelessDialog entfernt und
//in eine UniqueId gewandelt wird, machen
//wir das an dieser Stelle rueckgaengig.
@@ -2080,12 +2079,12 @@ void FormulaDlg::RefInputDoneAfter( BOOL bForced )
m_pImpl->RefInputDoneAfter( bForced );
}
-ULONG FormulaDlg::FindFocusWin(Window *pWin)
+rtl::OString FormulaDlg::FindFocusWin(Window *pWin)
{
return m_pImpl->FindFocusWin( pWin );
}
-void FormulaDlg::SetFocusWin(Window *pWin,ULONG nUniqueId)
+void FormulaDlg::SetFocusWin(Window *pWin,const rtl::OString& nUniqueId)
{
if(pWin->GetUniqueId()==nUniqueId)
{
@@ -2156,7 +2155,7 @@ IMPL_LINK( FormulaDlg, UpdateFocusHdl, Timer*, EMPTYARG )
if (pData) // wird nicht ueber Close zerstoert;
{
m_pImpl->m_pHelper->setReferenceInput(pData);
- ULONG nUniqueId=pData->GetUniqueId();
+ rtl::OString nUniqueId(pData->GetUniqueId());
SetFocusWin(this,nUniqueId);
}
return 0;
@@ -2182,7 +2181,7 @@ void FormEditData::Reset()
nOffset = 0;
nEdFocus = 0;
bMatrix =FALSE;
- nUniqueId=0;
+ aUniqueId=rtl::OString();
aSelection.Min()=0;
aSelection.Max()=0;
aUndoStr.Erase();
@@ -2211,7 +2210,7 @@ const FormEditData& FormEditData::operator=( const FormEditData& r )
nEdFocus = r.nEdFocus;
aUndoStr = r.aUndoStr;
bMatrix = r.bMatrix ;
- nUniqueId = r.nUniqueId;
+ aUniqueId = r.aUniqueId;
aSelection = r.aSelection;
return *this;
}
diff --git a/formula/source/ui/dlg/funcpage.cxx b/formula/source/ui/dlg/funcpage.cxx
index 1da4aef269..cd06ea99ce 100644
--- a/formula/source/ui/dlg/funcpage.cxx
+++ b/formula/source/ui/dlg/funcpage.cxx
@@ -102,8 +102,8 @@ FuncPage::FuncPage(Window* pParent,const IFunctionManager* _pFunctionManager):
m_pFunctionManager(_pFunctionManager)
{
FreeResource();
- m_aSmartHelpId = aLbFunction.GetSmartHelpId();
- aLbFunction.SetSmartUniqueId(m_aSmartHelpId);
+ m_aHelpId = aLbFunction.GetHelpId();
+ aLbFunction.SetUniqueId(m_aHelpId);
InitLRUList();
@@ -190,15 +190,15 @@ IMPL_LINK( FuncPage, SelHdl, ListBox*, pLb )
const IFunctionDescription* pDesc = GetFuncDesc( GetFunction() );
if ( pDesc )
{
- const long nHelpId = pDesc->getHelpId();
- if ( nHelpId )
- aLbFunction.SetSmartHelpId(SmartId(nHelpId));
+ const rtl::OString sHelpId = pDesc->getHelpId();
+ if ( sHelpId.getLength() )
+ aLbFunction.SetHelpId(sHelpId);
}
aSelectionLink.Call(this);
}
else
{
- aLbFunction.SetSmartHelpId(m_aSmartHelpId);
+ aLbFunction.SetHelpId(m_aHelpId);
UpdateFunctionList();
}
return 0;
diff --git a/formula/source/ui/dlg/funcpage.hxx b/formula/source/ui/dlg/funcpage.hxx
index 77b32f495c..51e3609351 100644
--- a/formula/source/ui/dlg/funcpage.hxx
+++ b/formula/source/ui/dlg/funcpage.hxx
@@ -82,7 +82,7 @@ private:
m_pFunctionManager;
::std::vector< TFunctionDesc > aLRUList;
- SmartId m_aSmartHelpId;
+ rtl::OString m_aHelpId;
void impl_addFunctions(const IFunctionCategory* _pCategory);
diff --git a/formula/source/ui/dlg/funcutl.cxx b/formula/source/ui/dlg/funcutl.cxx
index 6298e94c4b..d41a051e47 100644
--- a/formula/source/ui/dlg/funcutl.cxx
+++ b/formula/source/ui/dlg/funcutl.cxx
@@ -758,8 +758,8 @@ EditBox::EditBox( Window* pParent, const ResId& rResId )
// #105582# the HelpId from the resource must be set for the MultiLineEdit,
// not for the control that contains it.
- pMEdit->SetSmartHelpId( GetSmartHelpId() );
- SetSmartHelpId( SmartId() );
+ pMEdit->SetHelpId( GetHelpId() );
+ SetHelpId( "" );
}
EditBox::~EditBox()
diff --git a/formula/source/ui/dlg/parawin.cxx b/formula/source/ui/dlg/parawin.cxx
index 0de42f971e..adb3681345 100644
--- a/formula/source/ui/dlg/parawin.cxx
+++ b/formula/source/ui/dlg/parawin.cxx
@@ -294,15 +294,15 @@ void ParaWin::SetFunctionDesc(const IFunctionDescription* pFDesc)
{
SetEditDesc(aDefaultString);
}
- long nHelpId = pFuncDesc->getHelpId();
nArgs = pFuncDesc->getSuppressedArgumentCount();
pFuncDesc->fillVisibleArgumentMapping(aVisibleArgMapping);
aSlider.Hide();
- SetHelpId( nHelpId );
- aEdArg1.SetHelpId( nHelpId );
- aEdArg2.SetHelpId( nHelpId );
- aEdArg3.SetHelpId( nHelpId );
- aEdArg4.SetHelpId( nHelpId );
+ rtl::OString sHelpId = pFuncDesc->getHelpId();
+ SetHelpId( sHelpId );
+ aEdArg1.SetHelpId( sHelpId );
+ aEdArg2.SetHelpId( sHelpId );
+ aEdArg3.SetHelpId( sHelpId );
+ aEdArg4.SetHelpId( sHelpId );
// Unique-IDs muessen gleich bleiben fuer Automatisierung
SetUniqueId( HID_FORMULA_FAP_PAGE );
diff --git a/formula/source/ui/dlg/parawin.src b/formula/source/ui/dlg/parawin.src
index 78be77040b..eec5237ced 100644
--- a/formula/source/ui/dlg/parawin.src
+++ b/formula/source/ui/dlg/parawin.src
@@ -68,6 +68,7 @@
TabPage RID_FORMULATAB_PARAMETER
{
+ HelpID = "formula:TabPage:RID_FORMULATAB_PARAMETER";
Border = FALSE;
Size = MAP_APPFONT( 203, 128 );
DialogControl = TRUE;
@@ -119,10 +120,18 @@ TabPage RID_FORMULATAB_PARAMETER
HelpId=HID_FORMULA_FAP_BTN_FX4;
FXBUTTONBLOCK ( 109 )
};
- Edit ED_ARG1 { ED_ARGBLOCK ( 64 ) };
- Edit ED_ARG2 { ED_ARGBLOCK ( 79 ) };
- Edit ED_ARG3 { ED_ARGBLOCK ( 94 ) };
- Edit ED_ARG4 { ED_ARGBLOCK ( 109 ) };
+ Edit ED_ARG1 { ED_ARGBLOCK ( 64 )
+ HelpID = "formula:Edit:RID_FORMULATAB_PARAMETER:ED_ARG1";
+ };
+ Edit ED_ARG2 { ED_ARGBLOCK ( 79 )
+ HelpID = "formula:Edit:RID_FORMULATAB_PARAMETER:ED_ARG2";
+ };
+ Edit ED_ARG3 { ED_ARGBLOCK ( 94 )
+ HelpID = "formula:Edit:RID_FORMULATAB_PARAMETER:ED_ARG3";
+ };
+ Edit ED_ARG4 { ED_ARGBLOCK ( 109 )
+ HelpID = "formula:Edit:RID_FORMULATAB_PARAMETER:ED_ARG4";
+ };
ImageButton RB_ARG1
{
diff --git a/formula/util/hidother.src b/formula/util/hidother.src
index 8f56afa1cd..a6d3111b5b 100644
--- a/formula/util/hidother.src
+++ b/formula/util/hidother.src
@@ -27,10 +27,6 @@
#include "../inc/helpids.hrc"
-#ifndef _SBASLTID_HRC
-#include <svx/svxids.hrc>
-#endif
-
hidspecial HID_FORMULADLG_FORMULA { HelpId = HID_FORMULADLG_FORMULA; };
hidspecial HID_FORMULA_FAP_FORMULA { HelpId = HID_FORMULA_FAP_FORMULA; };
hidspecial HID_FORMULA_FAP_STRUCT { HelpId = HID_FORMULA_FAP_STRUCT; };
diff --git a/fpicker/source/office/OfficeControlAccess.cxx b/fpicker/source/office/OfficeControlAccess.cxx
index 8f48eddc28..a7f9aeebf8 100644
--- a/fpicker/source/office/OfficeControlAccess.cxx
+++ b/fpicker/source/office/OfficeControlAccess.cxx
@@ -33,9 +33,8 @@
#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
#include <com/sun/star/ui/dialogs/ControlActions.hpp>
#include <vcl/lstbox.hxx>
-#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HPP_
#include <com/sun/star/uno/Sequence.hxx>
-#endif
+#include <tools/urlobj.hxx>
#include <algorithm>
#include <functional>
@@ -201,37 +200,36 @@ namespace svt
}
//---------------------------------------------------------------------
- void OControlAccess::setHelpURL( Window* _pControl, const ::rtl::OUString& _rURL, sal_Bool _bFileView )
+ void OControlAccess::setHelpURL( Window* _pControl, const ::rtl::OUString& sHelpURL, sal_Bool _bFileView )
{
- String sHelpURL( _rURL );
- if ( COMPARE_EQUAL == sHelpURL.CompareIgnoreCaseToAscii( "HID:", sizeof( "HID:" ) - 1 ) )
- {
- String sID = sHelpURL.Copy( sizeof( "HID:" ) - 1 );
- sal_Int32 nHelpId = sID.ToInt32();
+ rtl::OUString sHelpID( sHelpURL );
+ INetURLObject aHID( sHelpURL );
+ if ( aHID.GetProtocol() == INET_PROT_HID )
+ sHelpID = aHID.GetURLPath();
- if ( _bFileView )
- // the file view "overloaded" the SetHelpId
- static_cast< SvtFileView* >( _pControl )->SetHelpId( nHelpId );
- else
- _pControl->SetHelpId( nHelpId );
- }
+ // URLs should always be UTF8 encoded and escaped
+ rtl::OString sID( rtl::OUStringToOString( sHelpID, RTL_TEXTENCODING_UTF8 ) );
+ if ( _bFileView )
+ // the file view "overloaded" the SetHelpId
+ static_cast< SvtFileView* >( _pControl )->SetHelpId( sID );
else
- {
- DBG_ERRORFILE( "OControlAccess::setHelpURL: unsupported help URL type!" );
- }
+ _pControl->SetHelpId( sID );
}
//---------------------------------------------------------------------
::rtl::OUString OControlAccess::getHelpURL( Window* _pControl, sal_Bool _bFileView )
{
- sal_Int32 nHelpId = _pControl->GetHelpId();
+ rtl::OString aHelpId = _pControl->GetHelpId();
if ( _bFileView )
// the file view "overloaded" the SetHelpId
- nHelpId = static_cast< SvtFileView* >( _pControl )->GetHelpId( );
-
- ::rtl::OUString sHelpURL( RTL_CONSTASCII_USTRINGPARAM( "HID:" ) );
- sHelpURL += ::rtl::OUString::valueOf( (sal_Int32)nHelpId );
-
+ aHelpId = static_cast< SvtFileView* >( _pControl )->GetHelpId( );
+
+ ::rtl::OUString sHelpURL;
+ ::rtl::OUString aTmp( rtl::OStringToOUString( aHelpId, RTL_TEXTENCODING_UTF8 ) );
+ INetURLObject aHID( aTmp );
+ if ( aHID.GetProtocol() == INET_PROT_NOT_VALID )
+ sHelpURL = rtl::OUString::createFromAscii( INET_HID_SCHEME );
+ sHelpURL += aTmp;
return sHelpURL;
}
diff --git a/fpicker/source/office/iodlg.hrc b/fpicker/source/office/iodlg.hrc
index f28cb90925..ac0b4944be 100644
--- a/fpicker/source/office/iodlg.hrc
+++ b/fpicker/source/office/iodlg.hrc
@@ -28,9 +28,8 @@
#ifndef _SVTOOLS_IODLGIMPL_HRC
#define _SVTOOLS_IODLGIMPL_HRC
-#ifndef _SVTOOLS_HRC
#include "svtools/svtools.hrc"
-#endif
+#include "svtools/helpid.hrc"
// ModalDialog DLG_SVT_EXPLORERFILE
@@ -86,22 +85,5 @@
#define SID_SFX_START 5000
#define SID_OPENURL (SID_SFX_START + 596)
-#define HID_FILEDLG_STANDARD (HID_SFX_START + 27)
-#define HID_FILEDLG_MANAGER (HID_SFX_START + 28)
-#define HID_FILEDLG_URL (HID_SFX_START + 29)
-#define HID_FILEDLG_USE_PASSWD (HID_SFX_START + 31)
-#define HID_FILEDLG_READ_ONLY (HID_SFX_START + 32)
-
-#define HID_FILEDLG_AUTOCOMPLETEBOX (HID_SFX_START + 218)
-#define HID_FILEDLG_SAVE_BTN (HID_SFX_START + 219)
-#define HID_FILEDLG_SAVE_FILENAME (HID_SFX_START + 220)
-#define HID_FILEDLG_SAVE_FILETYPE (HID_SFX_START + 221)
-#define HID_FILEDLG_INSERT_BTN (HID_SFX_START + 222)
-#define HID_FILEDLG_PATH_BTN (HID_SFX_START + 223)
-#define HID_FILEDLG_PATH_FILENAME (HID_SFX_START + 224)
-#define HID_FILEDLG_FOLDER_BTN (HID_SFX_START + 225)
-#define HID_FILEDLG_FOLDER_FILENAME (HID_SFX_START + 226)
-#define HID_FILEDLG_SRCHFOLDER_BTN (HID_SFX_START + 227)
-
#endif
diff --git a/fpicker/source/office/iodlg.src b/fpicker/source/office/iodlg.src
index 4ddb6bb8e8..f8d82758ad 100644
--- a/fpicker/source/office/iodlg.src
+++ b/fpicker/source/office/iodlg.src
@@ -79,12 +79,14 @@ ModalDialog DLG_SVT_EXPLORERFILE
};
ImageButton BTN_EXPLORERFILE_NEWFOLDER
{
+ HelpID = "fpicker:ImageButton:DLG_SVT_EXPLORERFILE:BTN_EXPLORERFILE_NEWFOLDER";
TabStop = FALSE ;
Pos = MAP_APPFONT ( 59 , 6 ) ;
QuickHelpText [ en-US ] = "Create New Directory" ;
};
ImageButton BTN_EXPLORERFILE_LISTVIEW
{
+ HelpID = "fpicker:ImageButton:DLG_SVT_EXPLORERFILE:BTN_EXPLORERFILE_LISTVIEW";
TabStop = FALSE ;
Pos = MAP_APPFONT ( 109 , 6 ) ;
ButtonImage = Image
@@ -99,6 +101,7 @@ ModalDialog DLG_SVT_EXPLORERFILE
};
ImageButton BTN_EXPLORERFILE_DETAILSVIEW
{
+ HelpID = "fpicker:ImageButton:DLG_SVT_EXPLORERFILE:BTN_EXPLORERFILE_DETAILSVIEW";
TabStop = FALSE ;
Pos = MAP_APPFONT ( 109 , 6 ) ;
ButtonImage = Image
@@ -113,6 +116,7 @@ ModalDialog DLG_SVT_EXPLORERFILE
};
MenuButton BTN_EXPLORERFILE_UP
{
+ HelpID = "fpicker:MenuButton:DLG_SVT_EXPLORERFILE:BTN_EXPLORERFILE_UP";
TabStop = FALSE ;
Pos = MAP_APPFONT ( 109 , 6 ) ;
QuickHelpText [ en-US ] = "Up One Level" ;
@@ -120,6 +124,7 @@ ModalDialog DLG_SVT_EXPLORERFILE
MenuButton BTN_EXPLORERFILE_STANDARD
{
+ HelpID = "fpicker:MenuButton:DLG_SVT_EXPLORERFILE:BTN_EXPLORERFILE_STANDARD";
TabStop = FALSE ;
Pos = MAP_APPFONT ( 59 , 6 ) ;
QuickHelpText [ en-US ] = "Default Directory" ;
@@ -139,6 +144,7 @@ ModalDialog DLG_SVT_EXPLORERFILE
};
Edit ED_EXPLORERFILE_FILENAME
{
+ HelpID = "fpicker:Edit:DLG_SVT_EXPLORERFILE:ED_EXPLORERFILE_FILENAME";
Pos = MAP_APPFONT ( 59 , 117 ) ;
Size = MAP_APPFONT ( 159 , 12 ) ;
Border = TRUE ;
@@ -152,6 +158,7 @@ ModalDialog DLG_SVT_EXPLORERFILE
};
ListBox LB_EXPLORERFILE_SHARED_LISTBOX
{
+ HelpID = "fpicker:ListBox:DLG_SVT_EXPLORERFILE:LB_EXPLORERFILE_SHARED_LISTBOX";
Pos = MAP_APPFONT ( 59 , 132 ) ;
Size = MAP_APPFONT ( 159 , 40 ) ;
DropDown = TRUE ;
@@ -166,6 +173,7 @@ ModalDialog DLG_SVT_EXPLORERFILE
};
ListBox LB_EXPLORERFILE_FILETYPE
{
+ HelpID = "fpicker:ListBox:DLG_SVT_EXPLORERFILE:LB_EXPLORERFILE_FILETYPE";
Pos = MAP_APPFONT ( 59 , 147 ) ;
Size = MAP_APPFONT ( 159 , 80 ) ;
DropDown = TRUE ;
@@ -175,26 +183,31 @@ ModalDialog DLG_SVT_EXPLORERFILE
};
CheckBox CB_EXPLORERFILE_READONLY
{
+ HelpID = "fpicker:CheckBox:DLG_SVT_EXPLORERFILE:CB_EXPLORERFILE_READONLY";
Size = MAP_APPFONT ( 80 , 10 ) ;
Text [ en-US ] = "~Read-only" ;
};
CheckBox CB_EXPLORERFILE_PASSWORD
{
+ HelpID = "fpicker:CheckBox:DLG_SVT_EXPLORERFILE:CB_EXPLORERFILE_PASSWORD";
Size = MAP_APPFONT ( 100, 10 ) ;
Text [ en-US ] = "Save with password" ;
};
CheckBox CB_AUTO_EXTENSION
{
+ HelpID = "fpicker:CheckBox:DLG_SVT_EXPLORERFILE:CB_AUTO_EXTENSION";
Size = MAP_APPFONT ( 160 , 10 ) ;
Text [ en-US ] = "~Automatic file name extension" ;
};
CheckBox CB_OPTIONS
{
+ HelpID = "fpicker:CheckBox:DLG_SVT_EXPLORERFILE:CB_OPTIONS";
Size = MAP_APPFONT ( 120 , 10 ) ;
Text [ en-US ] = "Edit ~filter settings";
};
PushButton BTN_EXPLORERFILE_OPEN
{
+ HelpID = "fpicker:PushButton:DLG_SVT_EXPLORERFILE:BTN_EXPLORERFILE_OPEN";
Pos = MAP_APPFONT ( 224 , 117 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
DefButton = TRUE ;
@@ -243,6 +256,7 @@ ModalDialog DLG_SVT_EXPLORERFILE
// QueryFolderNameDialog ----------------------------------------------------------
ModalDialog DLG_SVT_QUERYFOLDERNAME
{
+ HelpID = "fpicker:ModalDialog:DLG_SVT_QUERYFOLDERNAME";
Border = TRUE ;
Moveable = TRUE ;
OutputSize = TRUE ;
@@ -257,6 +271,7 @@ ModalDialog DLG_SVT_QUERYFOLDERNAME
};
Edit ED_SVT_QUERYFOLDERNAME_DLG_NAME
{
+ HelpID = "fpicker:Edit:DLG_SVT_QUERYFOLDERNAME:ED_SVT_QUERYFOLDERNAME_DLG_NAME";
Pos = MAP_APPFONT ( 12 , 27 ) ;
Size = MAP_APPFONT ( 138 , 12 ) ;
Border = TRUE ;
diff --git a/framework/inc/framework.hrc b/framework/inc/framework.hrc
index b1abc91cab..86ad3f7470 100644
--- a/framework/inc/framework.hrc
+++ b/framework/inc/framework.hrc
@@ -35,9 +35,9 @@
#define RID_GROUPS_OFFSET 32000
#define RID_GROUPS_END 32767
-#define RID_FWK_DIALOG_START (RID_FWK_START + 2048)
+#define RID_FWK_DIALOG_START_CORRECT (RID_FWK_START + 2048)
-#define DLG_FILTER_SELECT (RID_FWK_DIALOG_START + 0)
+#define DLG_FILTER_SELECT (RID_FWK_DIALOG_START_CORRECT + 0)
#define STR_FILTER_DOWNLOAD (RID_FWK_START+0)
#define STR_FILTER_CHOOSER (RID_FWK_START+1)
@@ -45,7 +45,7 @@
#define STR_FILTER_ZIPPED (RID_FWK_START+3)
// ResIds for BackingWindow
-#define DLG_BACKING (RID_FWK_DIALOG_START+100)
+#define DLG_BACKING (RID_FWK_DIALOG_START_CORRECT+100)
#define STR_BACKING_WELCOME 1
#define STR_BACKING_WELCOMEPRODUCT 2
#define STR_BACKING_CREATE 3
@@ -78,7 +78,7 @@
#define BMP_BACKING_OPENTEMPLATE 17
// Ids of TabWindow
-#define WIN_TABWINDOW (RID_FWK_DIALOG_START+101)
+#define WIN_TABWINDOW (RID_FWK_DIALOG_START_CORRECT+101)
#define TC_TABCONTROL 1
#endif
diff --git a/framework/inc/helpid.hrc b/framework/inc/helpid.hrc
index 4fd3bdfbfd..a092a83a10 100644
--- a/framework/inc/helpid.hrc
+++ b/framework/inc/helpid.hrc
@@ -27,23 +27,11 @@
#ifndef _FRAMEWORK_HELPID_HRC
#define _FRAMEWORK_HELPID_HRC
-// include ------------------------------------------------------------------
-
-#include <svl/solar.hrc>
-
-// Help-Ids -----------------------------------------------------------------
-
-#define HID_BACKINGWINDOW (HID_FRAMEWORK_START + 0)
-#define HID_LICENSEDIALOG (HID_FRAMEWORK_START + 1)
-#define HID_STATUSBAR (HID_FRAMEWORK_START + 2)
-
-#define ACT_FRAMEWORK_HID_END HID_BACKINGWINDOW
-
-// "Uberlaufpr"ufung --------------------------------------------------------
-
-#if ACT_FRAMEWORK_HID_END > HID_FRAMEWORK_END
-#error Resource-Ueberlauf in #line, #file
-#endif
+#define HID_BACKINGWINDOW "FWK_HID_BACKINGWINDOW"
+#define HID_LICENSEDIALOG "FWK_HID_LICENSEDIALOG"
+#define HID_STATUSBAR "FWK_HID_STATUSBAR"
+#define HID_SVX_COMMON_MACRO_ORGANIZER "FWK_HID_SVX_COMMON_MACRO_ORGANIZER"
+#define HID_SVX_BASIC_MACRO_ORGANIZER "FWK_HID_SVX_BASIC_MACRO_ORGANIZER"
#endif // #ifndef _FRAMEWORK_HELPID_HRC
diff --git a/framework/inc/uielement/commandinfo.hxx b/framework/inc/uielement/commandinfo.hxx
index dc4f24891f..b33f90cf4d 100644
--- a/framework/inc/uielement/commandinfo.hxx
+++ b/framework/inc/uielement/commandinfo.hxx
@@ -47,11 +47,13 @@ namespace framework
struct CommandInfo
{
CommandInfo() : nId( 0 ),
+ nWidth( 0 ),
nImageInfo( 0 ),
bMirrored( false ),
bRotated( false ) {}
USHORT nId;
+ sal_uInt16 nWidth;
::std::vector< USHORT > aIds;
sal_Int16 nImageInfo;
sal_Bool bMirrored : 1,
diff --git a/framework/inc/uielement/toolbarmerger.hxx b/framework/inc/uielement/toolbarmerger.hxx
index 2fe68b6d41..bf29b6475a 100644
--- a/framework/inc/uielement/toolbarmerger.hxx
+++ b/framework/inc/uielement/toolbarmerger.hxx
@@ -145,6 +145,7 @@ class ToolBarMerger
const ::rtl::OUString& rControlType );
static void CreateToolbarItem( ToolBox* pToolbox,
+ CommandToInfoMap& rCommandMap,
sal_uInt16 nPos,
sal_uInt16 nItemId,
const AddonToolbarItem& rAddonToolbarItem );
diff --git a/framework/inc/uielement/toolbarsmenucontroller.hxx b/framework/inc/uielement/toolbarsmenucontroller.hxx
index 0fa60c9e68..4911090db6 100644
--- a/framework/inc/uielement/toolbarsmenucontroller.hxx
+++ b/framework/inc/uielement/toolbarsmenucontroller.hxx
@@ -105,7 +105,7 @@ namespace framework
::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue > > getLayoutManagerToolbars( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XLayoutManager >& rLayoutManager );
rtl::OUString getUINameFromCommand( const rtl::OUString& rCommandURL );
::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > getDispatchFromCommandURL( const rtl::OUString& rCommandURL );
- void addCommand( com::sun::star::uno::Reference< com::sun::star::awt::XPopupMenu >& rPopupMenu, const rtl::OUString& rCommandURL, USHORT nHelpId, const rtl::OUString& aLabel );
+ void addCommand( com::sun::star::uno::Reference< com::sun::star::awt::XPopupMenu >& rPopupMenu, const rtl::OUString& rCommandURL, const rtl::OUString& aLabel );
sal_Bool isContextSensitiveToolbarNonVisible();
::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xPersistentWindowState;
diff --git a/framework/prj/build.lst b/framework/prj/build.lst
index 5c745e0907..cf99460469 100644
--- a/framework/prj/build.lst
+++ b/framework/prj/build.lst
@@ -21,3 +21,37 @@ fr framework\source\accelerators nmake - all fr_accelerators fr_t
fr framework\source\tabwin nmake - all fr_tabwin fr_threadhelp fr_inc NULL
fr framework\util nmake - all fr_util fr_constant fr_threadhelp fr_classes fr_loadenv fr_jobs fr_interaction fr_helper fr_dispatch fr_services fr_register fr_recording fr_layoutmanager fr_uielement fr_uifactory fr_xml fr_uiconfiguration fr_accelerators fr_tabwin NULL
fr framework\qa\unoapi nmake - all fr_qa_unoapi NULL
+
+# complex tests
+# fails on unxsoli4
+# fr framework\qa\complex\ModuleManager nmake - all fr_qa_complex_modulemanager NULL
+# fr framework\qa\complex\XUserInputInterception nmake - all fr_qa_complex_xuserinputinterception NULL
+
+# fr framework\qa\complex\accelerators nmake - all fr_qa_complex_accel fr_qa_complex_accel_helper NULL
+
+# unclear should be remove
+# fr framework\qa\complex\api_internal nmake - all fr_qa_complex_api_internal NULL
+
+# BUG! opens an error box
+# fr framework\qa\complex\broken_document nmake - all fr_qa_complex_broken_doc NULL
+
+# failed:
+# fr framework\qa\complex\desktop nmake - all fr_qa_complex_desktop NULL
+
+# fr framework\qa\complex\dispatches nmake - all fr_qa_complex_dispatches fr_qa_complex_dispatches_helper NULL
+# fr framework\qa\complex\disposing nmake - all fr_qa_complex_disposing NULL
+
+# GPF
+# fr framework\qa\complex\framework\autosave nmake - all fr_qa_complex_framework_autosave NULL
+
+# much too complex, will not change to new junit
+# fr framework\qa\complex\framework\recovery nmake - all fr_qa_complex_framework_recovery NULL
+
+# fr framework\qa\complex\imageManager nmake - all fr_qa_complex_imageManager fr_qa_complex_imageManager_interfaces NULL
+
+# fr framework\qa\complex\loadAllDocuments nmake - all fr_qa_complex_loadAllDocuments fr_qa_complex_loadAllDocuments_helper NULL
+
+# need cleanups
+# fr framework\qa\complex\path_settings nmake - all fr_qa_complex_path_settings NULL
+# fr framework\qa\complex\path_substitution nmake - all fr_qa_complex_path_substitution NULL
+
diff --git a/framework/qa/complex/ModuleManager/CheckXModuleManager.java b/framework/qa/complex/ModuleManager/CheckXModuleManager.java
index 33bc2c0d0c..47b4f877c4 100644
--- a/framework/qa/complex/ModuleManager/CheckXModuleManager.java
+++ b/framework/qa/complex/ModuleManager/CheckXModuleManager.java
@@ -30,21 +30,27 @@ package complex.ModuleManager;
import com.sun.star.beans.*;
import com.sun.star.frame.*;
import com.sun.star.lang.*;
-import com.sun.star.uno.*;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
import com.sun.star.util.*;
import com.sun.star.container.*;
-import complexlib.ComplexTestCase;
-import helper.URLHelper;
-import java.lang.*;
-import java.util.*;
+// ---------- junit imports -----------------
+import org.junit.After;
+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.*;
+// ------------------------------------------
//-----------------------------------------------
/** @short todo document me
*/
-public class CheckXModuleManager extends ComplexTestCase
+public class CheckXModuleManager
{
//-------------------------------------------
// some const
@@ -71,16 +77,16 @@ public class CheckXModuleManager extends ComplexTestCase
@return All test methods.
@todo Think about selection of tests from outside ...
*/
- public String[] getTestMethodNames()
- {
- return new String[]
- {
- "checkModuleIdentification" ,
- "checkModuleConfigurationReadable" ,
- "checkModuleConfigurationWriteable",
- "checkModuleConfigurationQueries"
- };
- }
+// public String[] getTestMethodNames()
+// {
+// return new String[]
+// {
+// "checkModuleIdentification" ,
+// "checkModuleConfigurationReadable" ,
+// "checkModuleConfigurationWriteable",
+// "checkModuleConfigurationQueries"
+// };
+// }
//-------------------------------------------
/** @short Create the environment for following tests.
@@ -88,36 +94,28 @@ public class CheckXModuleManager extends ComplexTestCase
@descr Use either a component loader from desktop or
from frame
*/
- public void before()
+ @Before public void before()
throws java.lang.Exception
{
// get uno service manager from global test environment
- m_xSmgr = (XMultiServiceFactory)param.getMSF();
+ m_xSmgr = getMSF();
// create module manager
- m_xMM = (XModuleManager)UnoRuntime.queryInterface(
- XModuleManager.class,
- m_xSmgr.createInstance("com.sun.star.frame.ModuleManager"));
+ m_xMM = UnoRuntime.queryInterface(XModuleManager.class, m_xSmgr.createInstance("com.sun.star.frame.ModuleManager"));
// create desktop instance to create a special frame to load documents there.
- XFrame xDesktop = (XFrame)UnoRuntime.queryInterface(
- XFrame.class,
- m_xSmgr.createInstance("com.sun.star.frame.Desktop"));
+ XFrame xDesktop = UnoRuntime.queryInterface(XFrame.class, m_xSmgr.createInstance("com.sun.star.frame.Desktop"));
- m_xLoader = (XComponentLoader)UnoRuntime.queryInterface(
- XComponentLoader.class,
- xDesktop.findFrame("_blank", 0));
+ m_xLoader = UnoRuntime.queryInterface(XComponentLoader.class, xDesktop.findFrame("_blank", 0));
}
//-------------------------------------------
/** @short close the environment.
*/
- public void after()
+ @After public void after()
throws java.lang.Exception
{
- XCloseable xClose = (XCloseable)UnoRuntime.queryInterface(
- XCloseable.class,
- m_xLoader);
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, m_xLoader);
xClose.close(false);
m_xLoader = null;
@@ -128,7 +126,7 @@ public class CheckXModuleManager extends ComplexTestCase
//-------------------------------------------
/** @todo document me
*/
- public void checkModuleIdentification()
+ @Test public void checkModuleIdentification()
throws java.lang.Exception
{
impl_identifyModulesBasedOnDocs("com.sun.star.text.TextDocument" );
@@ -139,13 +137,14 @@ public class CheckXModuleManager extends ComplexTestCase
impl_identifyModulesBasedOnDocs("com.sun.star.drawing.DrawingDocument" );
impl_identifyModulesBasedOnDocs("com.sun.star.presentation.PresentationDocument");
impl_identifyModulesBasedOnDocs("com.sun.star.sdb.OfficeDatabaseDocument" );
- impl_identifyModulesBasedOnDocs("com.sun.star.chart.ChartDocument" );
+ // TODO: fails
+ // impl_identifyModulesBasedOnDocs("com.sun.star.chart.ChartDocument" );
}
//-------------------------------------------
/** @todo document me
*/
- public void checkModuleConfigurationReadable()
+ @Test public void checkModuleConfigurationReadable()
throws java.lang.Exception
{
}
@@ -153,7 +152,7 @@ public class CheckXModuleManager extends ComplexTestCase
//-------------------------------------------
/** @todo document me
*/
- public void checkModuleConfigurationWriteable()
+ @Test public void checkModuleConfigurationWriteable()
throws java.lang.Exception
{
// modules supporting real documents
@@ -182,7 +181,7 @@ public class CheckXModuleManager extends ComplexTestCase
//-------------------------------------------
/** @todo document me
*/
- public void checkModuleConfigurationQueries()
+ @Test public void checkModuleConfigurationQueries()
throws java.lang.Exception
{
impl_searchModulesByDocumentService("com.sun.star.text.TextDocument" );
@@ -202,14 +201,14 @@ public class CheckXModuleManager extends ComplexTestCase
private void impl_searchModulesByDocumentService(String sDocumentService)
throws java.lang.Exception
{
- log.println("search modules matching document service '"+sDocumentService+"' ...");
+ System.out.println("search modules matching document service '"+sDocumentService+"' ...");
NamedValue[] lProps = new NamedValue[1];
lProps[0] = new NamedValue();
lProps[0].Name = "ooSetupFactoryDocumentService";
lProps[0].Value = sDocumentService;
- XContainerQuery xMM = (XContainerQuery)UnoRuntime.queryInterface(XContainerQuery.class, m_xMM);
+ XContainerQuery xMM = UnoRuntime.queryInterface(XContainerQuery.class, m_xMM);
XEnumeration xResult = xMM.createSubSetEnumerationByProperties(lProps);
while(xResult.hasMoreElements())
{
@@ -221,18 +220,26 @@ public class CheckXModuleManager extends ComplexTestCase
for (i=0; i<c; ++i)
{
if (lModuleProps[i].Name.equals("ooSetupFactoryModuleIdentifier"))
+ {
sFoundModule = AnyConverter.toString(lModuleProps[i].Value);
+ }
if (lModuleProps[i].Name.equals("ooSetupFactoryDocumentService"))
+ {
sFoundDocService = AnyConverter.toString(lModuleProps[i].Value);
+ }
}
if (sFoundModule.length() < 1)
- failed("Miss module identifier in result set. Returned data are incomplete.");
+ {
+ fail("Miss module identifier in result set. Returned data are incomplete.");
+ }
if ( ! sFoundDocService.equals(sDocumentService))
- failed("Query returned wrong module '"+sFoundModule+"' with DocumentService='"+sFoundDocService+"'.");
+ {
+ fail("Query returned wrong module '" + sFoundModule + "' with DocumentService='" + sFoundDocService + "'.");
+ }
- log.println("Found module '"+sFoundModule+"'.");
+ System.out.println("Found module '"+sFoundModule+"'.");
}
}
@@ -242,9 +249,9 @@ public class CheckXModuleManager extends ComplexTestCase
private void impl_identifyModulesBasedOnDocs(String sModule)
throws java.lang.Exception
{
- log.println("check identification of module '"+sModule+"' ...");
+ System.out.println("check identification of module '"+sModule+"' ...");
- XNameAccess xMM = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, m_xMM);
+ XNameAccess xMM = UnoRuntime.queryInterface(XNameAccess.class, m_xMM);
PropertyValue[] lModuleProps = (PropertyValue[])AnyConverter.toArray(xMM.getByName(sModule));
int c = lModuleProps.length;
int i = 0;
@@ -265,7 +272,7 @@ public class CheckXModuleManager extends ComplexTestCase
lArgs[0].Value = Boolean.TRUE;
XComponent xModel = m_xLoader.loadComponentFromURL(sFactoryURL, "_self", 0, lArgs);
- XFrame xFrame = (XFrame)UnoRuntime.queryInterface(XFrame.class, m_xLoader);
+ XFrame xFrame = UnoRuntime.queryInterface(XFrame.class, m_xLoader);
XController xController = xFrame.getController();
String sModuleFrame = m_xMM.identify(xFrame );
@@ -273,11 +280,17 @@ public class CheckXModuleManager extends ComplexTestCase
String sModuleModel = m_xMM.identify(xModel );
if ( ! sModuleFrame.equals(sModule))
- failed("Identification of module '"+sModule+"' failed if frame was used as entry point.");
+ {
+ fail("Identification of module '" + sModule + "' failed if frame was used as entry point.");
+ }
if ( ! sModuleController.equals(sModule))
- failed("Identification of module '"+sModule+"' failed if controller was used as entry point.");
+ {
+ fail("Identification of module '" + sModule + "' failed if controller was used as entry point.");
+ }
if ( ! sModuleModel.equals(sModule))
- failed("Identification of module '"+sModule+"' failed if model was used as entry point.");
+ {
+ fail("Identification of module '" + sModule + "' failed if model was used as entry point.");
+ }
}
//-------------------------------------------
@@ -286,7 +299,7 @@ public class CheckXModuleManager extends ComplexTestCase
private void impl_checkReadOnlyPropsOfModule(String sModule)
throws java.lang.Exception
{
- XNameReplace xWrite = (XNameReplace)UnoRuntime.queryInterface(XNameReplace.class, m_xMM);
+ XNameReplace xWrite = UnoRuntime.queryInterface(XNameReplace.class, m_xMM);
impl_checkReadOnlyPropOfModule(xWrite, sModule, "ooSetupFactoryDocumentService" , "test");
impl_checkReadOnlyPropOfModule(xWrite, sModule, "ooSetupFactoryActualFilter" , "test");
@@ -309,13 +322,37 @@ public class CheckXModuleManager extends ComplexTestCase
lChanges[0].Value = aPropValue;
// Note: Exception is expected !
- log.println("check readonly state of module '"+sModule+"' for property '"+sPropName+"' ...");
+ System.out.println("check readonly state of module '"+sModule+"' for property '"+sPropName+"' ...");
try
{
xMM.replaceByName(sModule, lChanges);
- failed("Was able to write READONLY property '"+sPropName+"' of module '"+sModule+"' configuration.");
+ fail("Was able to write READONLY property '"+sPropName+"' of module '"+sModule+"' configuration.");
}
catch(Throwable ex)
{}
}
+
+
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
+
}
diff --git a/framework/qa/complex/ModuleManager/makefile.mk b/framework/qa/complex/ModuleManager/makefile.mk
index bcef75fca4..4ad6d89290 100644
--- a/framework/qa/complex/ModuleManager/makefile.mk
+++ b/framework/qa/complex/ModuleManager/makefile.mk
@@ -24,60 +24,37 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = CheckXModuleManager
-PRJNAME = $(TARGET)
-PACKAGE = complex$/ModuleManager
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
- OOoRunner.jar mysql.jar
-
-JAVAFILES = CheckXModuleManager.java
-
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-MAXLINELENGTH = 100000
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_ModuleManager
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/ModuleManager
-# --- Parameters for the test --------------------------------------
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ CheckXModuleManager.java
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
+# put here all other files
+JAVAFILES = $(JAVATESTFILES)
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-# start the runner application
-CT_APP = org.openoffice.Runner
+.END
-# --- Targets ------------------------------------------------------
-
-#.IF "$(depend)" == ""
-#$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-#.ELSE
-#$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-#.ENDIF
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-.INCLUDE : target.mk
+ALLTAR : javatest
-RUN: run
+.END
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
diff --git a/framework/qa/complex/XUserInputInterception/EventTest.java b/framework/qa/complex/XUserInputInterception/EventTest.java
index 4b9ba0eb6f..c511304672 100644
--- a/framework/qa/complex/XUserInputInterception/EventTest.java
+++ b/framework/qa/complex/XUserInputInterception/EventTest.java
@@ -45,15 +45,24 @@ import com.sun.star.lang.*;
import com.sun.star.lang.EventObject;
import com.sun.star.sheet.XSpreadsheetDocument;
import com.sun.star.text.XTextDocument;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
import com.sun.star.util.*;
-import com.sun.star.uno.*;
import java.awt.Robot;
import java.awt.event.InputEvent;
-import complexlib.ComplexTestCase;
import util.AccessibilityTools;
import util.SOfficeFactory;
+// ---------- junit imports -----------------
+import org.junit.After;
+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.*;
+// ------------------------------------------
//-----------------------------------------------
/**
* This <CODE>ComplexTest</CODE> checks the interface
@@ -64,7 +73,7 @@ import util.SOfficeFactory;
* @short Check the interface XUserInputIntercaption
* @descr checks is a simple way the interface XUserInputInteraction
*/
-public class EventTest extends ComplexTestCase {
+public class EventTest {
//-------------------------------------------
// some const
@@ -112,16 +121,16 @@ public class EventTest extends ComplexTestCase {
* @return All test methods.
* @todo Think about selection of tests from outside ...
*/
- public String[] getTestMethodNames() {
- return new String[]
- { "checkTextDocument",
- "checkCalcDocument",
- "checkDrawDocument",
- "checkImpressDocument",
- "checkChartDocument",
- "checkMathDocument",
- };
- }
+// public String[] getTestMethodNames() {
+// return new String[]
+// { "checkTextDocument",
+// "checkCalcDocument",
+// "checkDrawDocument",
+// "checkImpressDocument",
+// "checkChartDocument",
+// "checkMathDocument",
+// };
+// }
//-------------------------------------------
/**
@@ -130,17 +139,17 @@ public class EventTest extends ComplexTestCase {
* @descr create an empty test frame, where we can load
* different components inside.
*/
- public void before() {
+@Before public void before() {
// get uno service manager from global test environment
- m_xMSF = (XMultiServiceFactory)param.getMSF();
+ m_xMSF = getMSF();
// create frame instance
try {
// get a soffice factory object
- m_SOF = SOfficeFactory.getFactory((XMultiServiceFactory) param.getMSF());
+ m_SOF = SOfficeFactory.getFactory(getMSF());
} catch(java.lang.Throwable ex) {
- failed("Could not create the XUserInputInterception instance.");
+ fail("Could not create the XUserInputInterception instance.");
}
}
@@ -151,12 +160,11 @@ public class EventTest extends ComplexTestCase {
* @param xDoc the document to close
*/
public void closeDoc(XInterface xDoc) {
- XCloseable xClose = (XCloseable)UnoRuntime.queryInterface(
- XCloseable.class, xDoc);
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, xDoc);
try {
xClose.close(false);
} catch(com.sun.star.util.CloseVetoException exVeto) {
- log.println("document couldn't be closed successfully.");
+ System.out.println("document couldn't be closed successfully.");
}
}
@@ -166,14 +174,14 @@ public class EventTest extends ComplexTestCase {
* @see com.sun.star.awt.XKeyHandler
* @see com.sun.star.awt.XMouseClickHandler
*/
- public void checkTextDocument(){
+ @Test public void checkTextDocument(){
XTextDocument xDoc = null;
try{
xDoc = m_SOF.createTextDoc("WriterTest");
} catch (com.sun.star.uno.Exception e){
- failed("Could not create a text document: " +e.toString());
+ fail("Could not create a text document: " +e.toString());
}
checkListener(xDoc);
@@ -187,14 +195,14 @@ public class EventTest extends ComplexTestCase {
* @see com.sun.star.awt.XKeyHandler
* @see com.sun.star.awt.XMouseClickHandler
*/
- public void checkImpressDocument(){
+ @Test public void checkImpressDocument(){
XComponent xDoc = null;
try{
xDoc = m_SOF.createImpressDoc("ImpressTest");
} catch (com.sun.star.uno.Exception e){
- failed("Could not create an impress document: " +e.toString());
+ fail("Could not create an impress document: " +e.toString());
}
checkListener(xDoc);
@@ -208,20 +216,21 @@ public class EventTest extends ComplexTestCase {
* @see com.sun.star.awt.XKeyHandler
* @see com.sun.star.awt.XMouseClickHandler
*/
- public void checkChartDocument(){
-
- XChartDocument xDoc = null;
-
- try{
- xDoc = m_SOF.createChartDoc("ChartTest");
- } catch (com.sun.star.uno.Exception e){
- failed("Could not create a chart document: " +e.toString());
- }
-
- checkListener(xDoc);
-
- closeDoc(xDoc);
- }
+// TODO!
+// @Test public void checkChartDocument(){
+//
+// XChartDocument xDoc = null;
+//
+// try{
+// xDoc = m_SOF.createChartDoc("ChartTest");
+// } catch (com.sun.star.uno.Exception e){
+// fail("Could not create a chart document: " +e.toString());
+// }
+//
+// checkListener(xDoc);
+//
+// closeDoc(xDoc);
+// }
/**
* creates a math document and check the <CODE>XMouseClickHandler</CODE> and
@@ -229,14 +238,14 @@ public class EventTest extends ComplexTestCase {
* @see com.sun.star.awt.XKeyHandler
* @see com.sun.star.awt.XMouseClickHandler
*/
- public void checkMathDocument(){
+ @Test public void checkMathDocument(){
XComponent xDoc = null;
try{
xDoc = m_SOF.createMathDoc("MathTest");
} catch (com.sun.star.uno.Exception e){
- failed("Could not create a math document: " +e.toString());
+ fail("Could not create a math document: " +e.toString());
}
checkListener(xDoc);
@@ -250,14 +259,14 @@ public class EventTest extends ComplexTestCase {
* @see com.sun.star.awt.XKeyHandler
* @see com.sun.star.awt.XMouseClickHandler
*/
- public void checkDrawDocument(){
+ @Test public void checkDrawDocument(){
XComponent xDoc = null;
try{
xDoc = m_SOF.createDrawDoc("DrawTest");
} catch (com.sun.star.uno.Exception e){
- failed("Could not create a draw document: " +e.toString());
+ fail("Could not create a draw document: " +e.toString());
}
checkListener(xDoc);
@@ -271,14 +280,14 @@ public class EventTest extends ComplexTestCase {
* @see com.sun.star.awt.XKeyHandler
* @see com.sun.star.awt.XMouseClickHandler
*/
- public void checkCalcDocument(){
+ @Test public void checkCalcDocument(){
XSpreadsheetDocument xDoc = null;
try{
xDoc = m_SOF.createCalcDoc("CalcTest");
} catch (com.sun.star.uno.Exception e){
- failed("Could not create a calc document: " +e.toString());
+ fail("Could not create a calc document: " +e.toString());
}
checkListener(xDoc);
@@ -293,7 +302,7 @@ public class EventTest extends ComplexTestCase {
*/
private void checkListener(XInterface xDoc){
- XModel xModel = (XModel) UnoRuntime.queryInterface(XModel.class, xDoc);
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xDoc);
XUserInputInterception xUII = getUII(xModel);
@@ -320,15 +329,15 @@ public class EventTest extends ComplexTestCase {
xUII.addKeyHandler(keyListener);
- log.println("starting thread to check the key listener...");
+ System.out.println("starting thread to check the key listener...");
EventTrigger et = new EventTrigger(xModel, EventTriggerType.KEY_TEXT_INTO_DOC);
et.run();
util.utils.shortWait(m_threadWait);
- log.println("key listener thread should be finished.");
+ System.out.println("key listener thread should be finished.");
- assure("key event does not work!", m_keyPressed && m_keyReleased);
+ assertTrue("key event does not work!", m_keyPressed && m_keyReleased);
xUII.removeKeyHandler(keyListener);
}
@@ -354,15 +363,15 @@ public class EventTest extends ComplexTestCase {
xUII.addMouseClickHandler(mouseListener);
- log.println("starting thread to check the mouse listener...");
+ System.out.println("starting thread to check the mouse listener...");
EventTrigger et = new EventTrigger(xModel, EventTriggerType.MOUSE_KLICK_INTO_DOC);
et.run();
util.utils.shortWait(m_threadWait);
- log.println("mouse listener thread should be finished.");
+ System.out.println("mouse listener thread should be finished.");
- assure("mouse event does not work!", m_mousePressed && m_mouseReleased);
+ assertTrue("mouse event does not work!", m_mousePressed && m_mouseReleased);
xUII.removeMouseClickHandler(mouseListener);
}
@@ -375,10 +384,9 @@ public class EventTest extends ComplexTestCase {
XController xController = xModel.getCurrentController();
- XUserInputInterception xUII = (XUserInputInterception) UnoRuntime.queryInterface(
- XUserInputInterception.class, xController);
+ XUserInputInterception xUII = UnoRuntime.queryInterface(XUserInputInterception.class, xController);
if (xUII == null) {
- failed("could not get XUserInputInterception from XContoller", true);
+ fail("could not get XUserInputInterception from XContoller");
}
return xUII;
}
@@ -395,7 +403,7 @@ public class EventTest extends ComplexTestCase {
* @return returns <CODE>TRUE</CODE> in erery case
*/
public boolean keyPressed( KeyEvent oEvent ){
- log.println("XKeyHandler: keyPressed-Event");
+ System.out.println("XKeyHandler: keyPressed-Event");
m_keyPressed = true;
return true;
}
@@ -406,7 +414,7 @@ public class EventTest extends ComplexTestCase {
* @return returns <CODE>TRUE</CODE> in erery case
*/
public boolean keyReleased( KeyEvent oEvent ){
- log.println("XKeyHandler: keyReleased-Event");
+ System.out.println("XKeyHandler: keyReleased-Event");
m_keyReleased = true;
return true;
}
@@ -415,7 +423,7 @@ public class EventTest extends ComplexTestCase {
* @param oEvent refers to the object that fired the event.
*/
public void disposing( EventObject oEvent ){
- log.println("XKeyHandler: disposing-Event");
+ System.out.println("XKeyHandler: disposing-Event");
}
}
@@ -431,7 +439,7 @@ public class EventTest extends ComplexTestCase {
* @return returns <CODE>TRUE</CODE> in erery case
*/
public boolean mousePressed( MouseEvent oEvent ){
- log.println("XMouseClickHandler: mousePressed-Event");
+ System.out.println("XMouseClickHandler: mousePressed-Event");
m_mousePressed = true;
return true;
}
@@ -442,7 +450,7 @@ public class EventTest extends ComplexTestCase {
* @return returns <CODE>TRUE</CODE> in erery case
*/
public boolean mouseReleased( MouseEvent oEvent ){
- log.println("XMouseClickHandler: mouseReleased-Event");
+ System.out.println("XMouseClickHandler: mouseReleased-Event");
m_mouseReleased = true;
return true;
}
@@ -451,7 +459,7 @@ public class EventTest extends ComplexTestCase {
* @param oEvent refers to the object that fired the event.
*/
public void disposing( EventObject oEvent ){
- log.println("XMouseClickHandler: disposing-Event");
+ System.out.println("XMouseClickHandler: disposing-Event");
}
};
@@ -529,7 +537,7 @@ public class EventTest extends ComplexTestCase {
// get the position and the range of a scroll bar
XWindow xWindow = at.getCurrentWindow(
- (XMultiServiceFactory) param.getMSF(),
+ getMSF(),
xModel);
XAccessible xRoot = at.getAccessibleObject(xWindow);
@@ -537,7 +545,7 @@ public class EventTest extends ComplexTestCase {
XAccessibleContext xPanel = at.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL);
- XAccessibleComponent xPanelCont = (XAccessibleComponent) UnoRuntime.queryInterface(XAccessibleComponent.class, xPanel);
+ XAccessibleComponent xPanelCont = UnoRuntime.queryInterface(XAccessibleComponent.class, xPanel);
// the position of the panel
Point point = xPanelCont.getLocationOnScreen();
@@ -549,15 +557,15 @@ public class EventTest extends ComplexTestCase {
Robot rob = new Robot();
int x = point.X + (rect.Width / 2);
int y = point.Y + (rect.Height / 2);
- log.println("try to klick into the middle of the document");
+ System.out.println("try to klick into the middle of the document");
rob.mouseMove(x, y);
rob.mousePress(InputEvent.BUTTON1_MASK);
rob.mouseRelease(InputEvent.BUTTON1_MASK);
} catch (java.awt.AWTException e) {
- log.println("couldn't press mouse button");
+ System.out.println("couldn't press mouse button");
}
} catch (java.lang.Exception e){
- log.println("could not click into the scroll bar: " + e.toString());
+ System.out.println("could not click into the scroll bar: " + e.toString());
}
}
@@ -569,11 +577,11 @@ public class EventTest extends ComplexTestCase {
private void keyIntoDoc(){
try {
Robot rob = new Robot();
- log.println("try to press 'A'");
+ System.out.println("try to press 'A'");
rob.keyPress(java.awt.event.KeyEvent.VK_A);
rob.keyRelease(java.awt.event.KeyEvent.VK_A);
} catch (java.awt.AWTException e) {
- log.println("couldn't press key");
+ System.out.println("couldn't press key");
}
}
@@ -590,5 +598,30 @@ public class EventTest extends ComplexTestCase {
/** write some text into a spread sheet*/
final public static int KEY_TEXT_INTO_DOC = 2;
- }
+ }
+
+
+
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
+
} \ No newline at end of file
diff --git a/framework/qa/complex/XUserInputInterception/makefile.mk b/framework/qa/complex/XUserInputInterception/makefile.mk
index d3ca648b02..8b08bec171 100644
--- a/framework/qa/complex/XUserInputInterception/makefile.mk
+++ b/framework/qa/complex/XUserInputInterception/makefile.mk
@@ -24,66 +24,110 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = EventTest
-PRJNAME = framework
-PACKAGE = complex$/XUserInputInterception
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
- OOoRunner.jar mysql.jar
-JAVAFILES = EventTest.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-
-# --- Parameters for the test --------------------------------------
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+# we don't want something like this.
+# .IF "$(OS)"=="LINUX"
+# nothing .PHONY:
+# @echo "Test marked as failed on this platform"
+# .END
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_xuserinputinterception
-# start the runner application
-CT_APP = org.openoffice.Runner
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/XUserInputInterception
-# --- Targets ------------------------------------------------------
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ EventTest.java
-.IF "$(depend)" == ""
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-.ELSE
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-.ENDIF
+# put here all other files
+JAVAFILES = $(JAVATESTFILES)
-.INCLUDE : target.mk
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-#$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
-# cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
-# jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-RUN: run
+.END
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
+ALLTAR : javatest
+.END
+#
+#
+#
+# PRJ = ..$/..$/..
+# TARGET = EventTest
+# PRJNAME = framework
+# PACKAGE = complex$/XUserInputInterception
+#
+# # --- Settings -----------------------------------------------------
+# .INCLUDE: settings.mk
+#
+#
+# #----- compile .java files -----------------------------------------
+#
+# JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
+# OOoRunner.jar mysql.jar
+# JAVAFILES = EventTest.java
+# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+#
+# #----- make a jar from compiled files ------------------------------
+#
+# MAXLINELENGTH = 100000
+#
+# JARCLASSDIRS = $(PACKAGE)
+# JARTARGET = $(TARGET).jar
+# JARCOMPRESS = TRUE
+#
+# # --- Parameters for the test --------------------------------------
+#
+# # start an office if the parameter is set for the makefile
+# .IF "$(OFFICE)" == ""
+# CT_APPEXECCOMMAND =
+# .ELSE
+# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
+# .ENDIF
+#
+# # test base is java complex
+# CT_TESTBASE = -TestBase java_complex
+#
+# # test looks something like the.full.package.TestName
+# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+#
+# # start the runner application
+# CT_APP = org.openoffice.Runner
+#
+# # --- Targets ------------------------------------------------------
+#
+# .IF "$(depend)" == ""
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
+# .ELSE
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
+# .ENDIF
+#
+# .INCLUDE : target.mk
+#
+# #$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
+# # cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
+# # jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
+#
+# RUN: run
+#
+# run:
+# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
+#
+#
+#
diff --git a/framework/qa/complex/accelerators/AcceleratorsConfigurationTest.java b/framework/qa/complex/accelerators/AcceleratorsConfigurationTest.java
index a63baf116c..4faa454d1f 100644
--- a/framework/qa/complex/accelerators/AcceleratorsConfigurationTest.java
+++ b/framework/qa/complex/accelerators/AcceleratorsConfigurationTest.java
@@ -24,222 +24,332 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
package complex.accelerators;
// imports
-import com.sun.star.awt.*;
-import com.sun.star.beans.*;
-import com.sun.star.container.*;
-import com.sun.star.embed.*;
-import com.sun.star.lang.*;
-import com.sun.star.ui.*;
-import com.sun.star.uno.*;
-import com.sun.star.util.*;
-
-import complexlib.ComplexTestCase;
-
-import java.lang.*;
-import java.util.*;
-
-import helper.*;
-
+import com.sun.star.awt.KeyEvent;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XNameAccess;
+import com.sun.star.container.XNameContainer;
+import com.sun.star.embed.XStorage;
+import com.sun.star.embed.XTransactedObject;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.ui.XAcceleratorConfiguration;
+import com.sun.star.ui.XUIConfigurationManager;
+import com.sun.star.ui.XUIConfigurationPersistence;
+import com.sun.star.ui.XUIConfigurationStorage;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.XChangesBatch;
+
+// import complex.accelerators.KeyMapping;
+
+
+// ---------- junit imports -----------------
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openoffice.test.FileHelper;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+// ------------------------------------------
//-----------------------------------------------
+
/** @short todo document me
*/
-public class AcceleratorsConfigurationTest extends ComplexTestCase
+public class AcceleratorsConfigurationTest
{
+
/** points to the global uno service manager. */
private XMultiServiceFactory m_xSmgr = null;
-
/** the accelerator configuration for testing. */
private XAcceleratorConfiguration m_xGlobalAccelCfg = null;
private XAcceleratorConfiguration m_xModuleAccelCfg = null;
private XAcceleratorConfiguration m_xDocumentAccelCfg = null;
-
/** XCS/XCU based accelerator configuration. */
private XNameAccess m_xConfig = null;
- private XNameAccess m_xPrimaryKeys = null;
+ private XNameAccess m_xPrimaryKeys = null;
private XNameAccess m_xSecondaryKeys = null;
//-------------------------------------------
// test environment
-
//-----------------------------------------------
/** @short todo document me
*/
- public String[] getTestMethodNames()
- {
- return new String[]
- {
- "checkGlobalAccelCfg",
- "checkModuleAccelCfg",
- "checkDocumentAccelCfg"
- };
- }
-
+// public String[] getTestMethodNames()
+// {
+// return new String[]
+// {
+// "checkGlobalAccelCfg",
+// "checkModuleAccelCfg",
+// "checkDocumentAccelCfg"
+// };
+// }
//-----------------------------------------------
/** @short Create the environment for following tests.
*/
+ @Before
public void before()
- throws java.lang.Exception
+ throws java.lang.Exception
{
// get uno service manager from global test environment
- m_xSmgr = (XMultiServiceFactory)param.getMSF();
-
- m_xGlobalAccelCfg = (XAcceleratorConfiguration)UnoRuntime.queryInterface(
- XAcceleratorConfiguration.class,
- m_xSmgr.createInstance("com.sun.star.ui.GlobalAcceleratorConfiguration"));
- m_xModuleAccelCfg = (XAcceleratorConfiguration)UnoRuntime.queryInterface(
- XAcceleratorConfiguration.class,
- m_xSmgr.createInstance("com.sun.star.ui.ModuleAcceleratorConfiguration"));
- m_xDocumentAccelCfg = (XAcceleratorConfiguration)UnoRuntime.queryInterface(
- XAcceleratorConfiguration.class,
- m_xSmgr.createInstance("com.sun.star.ui.DocumentAcceleratorConfiguration"));
+ m_xSmgr = getMSF();
+
+ m_xGlobalAccelCfg = UnoRuntime.queryInterface(XAcceleratorConfiguration.class, m_xSmgr.createInstance("com.sun.star.ui.GlobalAcceleratorConfiguration"));
+ m_xModuleAccelCfg = UnoRuntime.queryInterface(XAcceleratorConfiguration.class, m_xSmgr.createInstance("com.sun.star.ui.ModuleAcceleratorConfiguration"));
+ m_xDocumentAccelCfg = UnoRuntime.queryInterface(XAcceleratorConfiguration.class, m_xSmgr.createInstance("com.sun.star.ui.DocumentAcceleratorConfiguration"));
String sConfigPath = "org.openoffice.Office.Accelerators";
boolean bReadOnly = false;
- XNameAccess m_xConfig = openConfig(m_xSmgr, sConfigPath, bReadOnly);
- if (m_xConfig != null)
+ XNameAccess m_xConfig2 = openConfig(m_xSmgr, sConfigPath, bReadOnly);
+ if (m_xConfig2 != null)
{
- m_xPrimaryKeys = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, m_xConfig.getByName("PrimaryKeys"));
- m_xSecondaryKeys = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, m_xConfig.getByName("SecondaryKeys"));
+ m_xPrimaryKeys = UnoRuntime.queryInterface(XNameAccess.class, m_xConfig2.getByName("PrimaryKeys"));
+ m_xSecondaryKeys = UnoRuntime.queryInterface(XNameAccess.class, m_xConfig2.getByName("SecondaryKeys"));
}
}
-
+
//-------------------------------------------
/** @short close the environment.
*/
+ @After
public void after()
- throws java.lang.Exception
+ throws java.lang.Exception
{
- m_xConfig = null;
- m_xGlobalAccelCfg = null;
- m_xModuleAccelCfg = null;
+ m_xConfig = null;
+ m_xGlobalAccelCfg = null;
+ m_xModuleAccelCfg = null;
m_xDocumentAccelCfg = null;
- m_xSmgr = null;
+ m_xSmgr = null;
}
//-------------------------------------------
/** @todo document me.
*/
+ @Test
public void checkGlobalAccelCfg()
- throws java.lang.Exception
+ throws java.lang.Exception
{
- log.println("\n---- check Global accelerator configuration: ----");
+ System.out.println("\n---- check Global accelerator configuration: ----");
String[] sKeys;
- XNameAccess xPrimaryAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class,m_xPrimaryKeys.getByName("Global"));
- XNameAccess xSecondaryAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, m_xSecondaryKeys.getByName("Global"));
+ XNameAccess xPrimaryAccess = UnoRuntime.queryInterface(XNameAccess.class, m_xPrimaryKeys.getByName("Global"));
+ XNameAccess xSecondaryAccess = UnoRuntime.queryInterface(XNameAccess.class, m_xSecondaryKeys.getByName("Global"));
- sKeys = new String[] { "A_MOD1" };
+ sKeys = new String[]
+ {
+ "A_MOD1"
+ };
impl_checkGetKeyCommands(m_xGlobalAccelCfg, xPrimaryAccess, sKeys);
- sKeys = new String[] { "PASTE", "X_SHIFT" };
- String[] sCommands = new String[] { ".uno:test", ".uno:test" };
+ sKeys = new String[]
+ {
+ "PASTE", "X_SHIFT"
+ };
+ String[] sCommands = new String[]
+ {
+ ".uno:test", ".uno:test"
+ };
impl_checkSetKeyCommands(m_xGlobalAccelCfg, xPrimaryAccess, xSecondaryAccess, sKeys, sCommands);
- sKeys = new String[] { "C_MOD1", "CUT" };
+ sKeys = new String[]
+ {
+ "C_MOD1", "CUT"
+ };
impl_checkRemoveKeyCommands(m_xGlobalAccelCfg, xPrimaryAccess, xSecondaryAccess, sKeys);
- String[] sCommandList = new String[] { ".uno:Paste", ".uno:CloseWin" };
+ String[] sCommandList = new String[]
+ {
+ ".uno:Paste", ".uno:CloseWin"
+ };
impl_checkGetPreferredKeyEventsForCommandList(m_xGlobalAccelCfg, xPrimaryAccess, sCommandList);
}
//-------------------------------------------
/** @todo document me.
*/
+ @Test
public void checkModuleAccelCfg()
- throws java.lang.Exception
+ throws java.lang.Exception
{
String[] sModules = new String[]
{
"com.sun.star.frame.StartModule",
"com.sun.star.drawing.DrawingDocument",
"com.sun.star.presentation.PresentationDocument",
- "com.sun.star.sheet.SpreadsheetDocument",
+ "com.sun.star.sheet.SpreadsheetDocument",
"com.sun.star.text.TextDocument",
- // add other modules here
+ // add other modules here
};
- for (int i=0; i<sModules.length; ++i)
+ for (int i = 0; i < sModules.length; ++i)
{
- log.println("\n---- check accelerator configuration depending module: " + sModules[i] + " ----");
+ System.out.println("\n---- check accelerator configuration depending module: " + sModules[i] + " ----");
PropertyValue[] aProp = new PropertyValue[2];
aProp[0] = new PropertyValue();
- aProp[0].Name = "ModuleIdentifier";
+ aProp[0].Name = "ModuleIdentifier";
aProp[0].Value = sModules[i];
aProp[1] = new PropertyValue();
- aProp[1].Name = "Locale";
+ aProp[1].Name = "Locale";
aProp[1].Value = "en-US";
- XInitialization xInit = (XInitialization)UnoRuntime.queryInterface(XInitialization.class, m_xModuleAccelCfg);
+ XInitialization xInit = UnoRuntime.queryInterface(XInitialization.class, m_xModuleAccelCfg);
xInit.initialize(aProp); // to fill cache
-
- XNameAccess xPrimaryModules = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, m_xPrimaryKeys.getByName("Modules"));
- XNameAccess xSecondaryModules = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, m_xSecondaryKeys.getByName("Modules"));
+
+ XNameAccess xPrimaryModules = UnoRuntime.queryInterface(XNameAccess.class, m_xPrimaryKeys.getByName("Modules"));
+ XNameAccess xSecondaryModules = UnoRuntime.queryInterface(XNameAccess.class, m_xSecondaryKeys.getByName("Modules"));
String[] sKeys;
- XNameAccess xPrimaryAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, xPrimaryModules.getByName(sModules[i]));
- XNameAccess xSecondaryAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, xSecondaryModules.getByName(sModules[i]));
+ XNameAccess xPrimaryAccess = UnoRuntime.queryInterface(XNameAccess.class, xPrimaryModules.getByName(sModules[i]));
+ XNameAccess xSecondaryAccess = UnoRuntime.queryInterface(XNameAccess.class, xSecondaryModules.getByName(sModules[i]));
//--------------------------------------------
if (sModules[i].equals("com.sun.star.presentation.PresentationDocument"))
- sKeys = new String[] { "A_SHIFT_MOD1_MOD2" };
+ {
+ sKeys = new String[]
+ {
+ "A_SHIFT_MOD1_MOD2"
+ };
+ }
else if (sModules[i].equals("com.sun.star.sheet.SpreadsheetDocument"))
- sKeys = new String[] { "B_MOD1" };
+ {
+ sKeys = new String[]
+ {
+ "B_MOD1"
+ };
+ }
else if (sModules[i].equals("com.sun.star.text.TextDocument"))
- sKeys = new String[] { "F11_MOD1" };
+ {
+ sKeys = new String[]
+ {
+ "F11_MOD1"
+ };
+ }
else
- sKeys = new String[] { "A_MOD1" };
+ {
+ sKeys = new String[]
+ {
+ "A_MOD1"
+ };
+ }
impl_checkGetKeyCommands(m_xModuleAccelCfg, xPrimaryAccess, sKeys);
//--------------------------------------------
String[] sCommands;
if (sModules[i].equals("com.sun.star.presentation.PresentationDocument"))
{
- sKeys = new String[] { "A_SHIFT_MOD1_MOD2" };
- sCommands = new String[] { ".uno:test" };
+ sKeys = new String[]
+ {
+ "A_SHIFT_MOD1_MOD2"
+ };
+ sCommands = new String[]
+ {
+ ".uno:test"
+ };
}
else if (sModules[i].equals("com.sun.star.sheet.SpreadsheetDocument"))
{
- sKeys = new String[] { "B_MOD1" };
- sCommands = new String[] { ".uno:test" };
+ sKeys = new String[]
+ {
+ "B_MOD1"
+ };
+ sCommands = new String[]
+ {
+ ".uno:test"
+ };
}
else if (sModules[i].equals("com.sun.star.text.TextDocument"))
{
- sKeys = new String[] { "F11_MOD1" };
- sCommands = new String[] { ".uno:test" };
+ sKeys = new String[]
+ {
+ "F11_MOD1"
+ };
+ sCommands = new String[]
+ {
+ ".uno:test"
+ };
}
else
{
- sKeys = new String[] { "PASTE" };
- sCommands = new String[] { ".uno:test" };
+ sKeys = new String[]
+ {
+ "PASTE"
+ };
+ sCommands = new String[]
+ {
+ ".uno:test"
+ };
}
impl_checkSetKeyCommands(m_xModuleAccelCfg, xPrimaryAccess, xSecondaryAccess, sKeys, sCommands);
//--------------------------------------------
if (sModules[i].equals("com.sun.star.presentation.PresentationDocument"))
- sKeys = new String[] { "A_SHIFT_MOD1_MOD2" };
+ {
+ sKeys = new String[]
+ {
+ "A_SHIFT_MOD1_MOD2"
+ };
+ }
else if (sModules[i].equals("com.sun.star.sheet.SpreadsheetDocument"))
- sKeys = new String[] { "F5_SHIFT_MOD1" };
+ {
+ sKeys = new String[]
+ {
+ "F5_SHIFT_MOD1"
+ };
+ }
else if (sModules[i].equals("com.sun.star.text.TextDocument"))
- sKeys = new String[] { "BACKSPACE_MOD2" };
+ {
+ sKeys = new String[]
+ {
+ "BACKSPACE_MOD2"
+ };
+ }
else
- sKeys = new String[] { "C_MOD1" };
+ {
+ sKeys = new String[]
+ {
+ "C_MOD1"
+ };
+ }
impl_checkRemoveKeyCommands(m_xModuleAccelCfg, xPrimaryAccess, xSecondaryAccess, sKeys);
//--------------------------------------------
String[] sCommandList;
if (sModules[i].equals("com.sun.star.presentation.PresentationDocument"))
- sCommandList = new String[] { ".uno:Presentation" };
+ {
+ sCommandList = new String[]
+ {
+ ".uno:Presentation"
+ };
+ }
else if (sModules[i].equals("com.sun.star.sheet.SpreadsheetDocument"))
- sCommandList = new String[] { ".uno:InsertCell" };
+ {
+ sCommandList = new String[]
+ {
+ ".uno:InsertCell"
+ };
+ }
else if (sModules[i].equals("com.sun.star.text.TextDocument"))
- sCommandList = new String[] { ".uno:SelectionModeBlock" };
+ {
+ sCommandList = new String[]
+ {
+ ".uno:SelectionModeBlock"
+ };
+ }
else
- sCommandList = new String[] { ".uno:Cut" };
+ {
+ sCommandList = new String[]
+ {
+ ".uno:Cut"
+ };
+ }
impl_checkGetPreferredKeyEventsForCommandList(m_xModuleAccelCfg, xPrimaryAccess, sCommandList);
}
}
@@ -247,58 +357,61 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
//-------------------------------------------
/** @todo document me.
*/
+ @Test
public void checkDocumentAccelCfg()
- throws java.lang.Exception
+ throws java.lang.Exception
{
- log.println("\n---- check Document accelerator configuration: ----");
+ System.out.println("\n---- check Document accelerator configuration: ----");
String sDocCfgName;
- sDocCfgName = "file:///c:/test.cfg";
+ String tempDirURL = util.utils.getOfficeTemp/*Dir*/(getMSF());
+ sDocCfgName = FileHelper.appendPath(tempDirURL, "test.cfg");
+ // sDocCfgName = "file:///c:/test.cfg";
SaveDocumentAcceleratorConfiguration(sDocCfgName);
- sDocCfgName = "file:///c:/test.cfg";
- LoadDocumentAcceleratorConfiguration(sDocCfgName);
+ // sDocCfgName = "file:///c:/test.cfg";
+ LoadDocumentAcceleratorConfiguration(sDocCfgName);
}
//-------------------------------------------
/** @todo document me.
*/
private void impl_checkGetKeyCommands(XAcceleratorConfiguration xAccelCfg, XNameAccess xAccess, String[] sKeys)
- throws java.lang.Exception
+ throws java.lang.Exception
{
- log.println("check getKeyCommands...");
+ System.out.println("check getKeyCommands...");
- for (int i=0; i<sKeys.length; ++i)
+ for (int i = 0; i < sKeys.length; ++i)
{
- if (xAccess.hasByName(sKeys[i]) && getCommandFromConfiguration(xAccess, sKeys[i]).length()>0)
+ if (xAccess.hasByName(sKeys[i]) && getCommandFromConfiguration(xAccess, sKeys[i]).length() > 0)
{
- log.println("** get command by " + sKeys[i] + " **");
+ System.out.println("** get command by " + sKeys[i] + " **");
String sCmdFromCache = new String(); // get a value using XAcceleratorConfiguration API
String sCmdFromConfiguration = new String(); // get a value using configuration API
// GET shortcuts/commands using XAcceleratorConfiguration API
sCmdFromCache = xAccelCfg.getCommandByKeyEvent(convertShortcut2AWTKey(sKeys[i]));
- log.println(sKeys[i] + "-->" + sCmdFromCache + ", by XAcceleratorConfiguration API");
+ System.out.println(sKeys[i] + "-->" + sCmdFromCache + ", by XAcceleratorConfiguration API");
// GET shortcuts/commands using configuration API
sCmdFromConfiguration = getCommandFromConfiguration(xAccess, sKeys[i]);
- log.println(sKeys[i] + "-->" + sCmdFromConfiguration + ", by configuration API");
+ System.out.println(sKeys[i] + "-->" + sCmdFromConfiguration + ", by configuration API");
- assure("values are different by XAcceleratorConfiguration API and configuration API!", sCmdFromCache.equals(sCmdFromConfiguration));
+ assertTrue("values are different by XAcceleratorConfiguration API and configuration API!", sCmdFromCache.equals(sCmdFromConfiguration));
String sLocale = "es";
setOfficeLocale(sLocale);
sCmdFromConfiguration = getCommandFromConfiguration(xAccess, sKeys[i]);
- log.println(sKeys[i] + "-->" + sCmdFromConfiguration + ", by configuration API" + " for locale:"+ getOfficeLocale());
+ System.out.println(sKeys[i] + "-->" + sCmdFromConfiguration + ", by configuration API" + " for locale:" + getOfficeLocale());
sLocale = "en-US";
setOfficeLocale(sLocale); //reset to default locale
}
else
{
- log.println(sKeys[i] + " doesn't exist!");
+ System.out.println(sKeys[i] + " doesn't exist!");
}
}
}
@@ -307,20 +420,24 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
/** @todo document me.
*/
private void impl_checkSetKeyCommands(XAcceleratorConfiguration xAccelCfg, XNameAccess xPrimaryAccess, XNameAccess xSecondaryAccess, String[] sKeys, String[] sCommands)
- throws java.lang.Exception
+ throws java.lang.Exception
{
- log.println("check setKeyCommands...");
+ System.out.println("check setKeyCommands...");
- for (int i=0; i<sKeys.length; ++i)
+ for (int i = 0; i < sKeys.length; ++i)
{
if (!xPrimaryAccess.hasByName(sKeys[i]) && !xSecondaryAccess.hasByName(sKeys[i]))
{
xAccelCfg.setKeyEvent(convertShortcut2AWTKey(sKeys[i]), sCommands[i]);
xAccelCfg.store();
if (xPrimaryAccess.hasByName(sKeys[i]))
- log.println("add " + sKeys[i] + " successfully!");
+ {
+ System.out.println("add " + sKeys[i] + " successfully!");
+ }
else
- log.println("add " + sKeys[i] + " failed!");
+ {
+ System.out.println("add " + sKeys[i] + " failed!");
+ }
}
else if (xPrimaryAccess.hasByName(sKeys[i]))
{
@@ -332,12 +449,18 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
String sChangedCommand = getCommandFromConfiguration(xPrimaryAccess, sKeys[i]);
if (sCommands[i].equals(sChangedCommand))
- log.println("change " + sKeys[i] + " successfully!");
+ {
+ System.out.println("change " + sKeys[i] + " successfully!");
+ }
else
- log.println("change " + sKeys[i] + " failed!");
+ {
+ System.out.println("change " + sKeys[i] + " failed!");
+ }
}
else
- log.println(sKeys[i] + " already exist!");
+ {
+ System.out.println(sKeys[i] + " already exist!");
+ }
}
else if (xSecondaryAccess.hasByName(sKeys[i]))
{
@@ -349,12 +472,18 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
String sChangedCommand = getCommandFromConfiguration(xPrimaryAccess, sKeys[i]);
if (sCommands[i].equals(sChangedCommand))
- log.println("change " + sKeys[i] + " successfully!");
+ {
+ System.out.println("change " + sKeys[i] + " successfully!");
+ }
else
- log.println("change " + sKeys[i] + " failed!");
+ {
+ System.out.println("change " + sKeys[i] + " failed!");
+ }
}
else
- log.println(sKeys[i] + " already exist!");
+ {
+ System.out.println(sKeys[i] + " already exist!");
+ }
}
}
}
@@ -363,33 +492,41 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
/** @todo document me.
*/
private void impl_checkRemoveKeyCommands(XAcceleratorConfiguration xAccelCfg, XNameAccess xPrimaryAccess, XNameAccess xSecondaryAccess, String[] sKeys)
- throws java.lang.Exception
+ throws java.lang.Exception
{
- log.println("check removeKeyCommands...");
+ System.out.println("check removeKeyCommands...");
- for (int i=0; i<sKeys.length; i++)
+ for (int i = 0; i < sKeys.length; i++)
{
if (!xPrimaryAccess.hasByName(sKeys[i]) && !xSecondaryAccess.hasByName(sKeys[i]))
{
- log.println(sKeys[i] + " doesn't exist!");
+ System.out.println(sKeys[i] + " doesn't exist!");
}
else if (xPrimaryAccess.hasByName(sKeys[i]))
{
xAccelCfg.removeKeyEvent(convertShortcut2AWTKey(sKeys[i]));
xAccelCfg.store();
if (!xPrimaryAccess.hasByName(sKeys[i]))
- log.println("Remove " + sKeys[i] + " successfully!");
+ {
+ System.out.println("Remove " + sKeys[i] + " successfully!");
+ }
else
- log.println("Remove " + sKeys[i] + " failed!");
+ {
+ System.out.println("Remove " + sKeys[i] + " failed!");
+ }
}
else if (xSecondaryAccess.hasByName(sKeys[i]))
{
xAccelCfg.removeKeyEvent(convertShortcut2AWTKey(sKeys[i]));
xAccelCfg.store();
if (!xSecondaryAccess.hasByName(sKeys[i]))
- log.println("Remove " + sKeys[i] + " successfully!");
+ {
+ System.out.println("Remove " + sKeys[i] + " successfully!");
+ }
else
- log.println("Remove " + sKeys[i] + " failed!");
+ {
+ System.out.println("Remove " + sKeys[i] + " failed!");
+ }
}
}
}
@@ -398,25 +535,29 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
/** @todo document me.
*/
private void impl_checkGetPreferredKeyEventsForCommandList(XAcceleratorConfiguration xAccelCfg, XNameAccess xPrimaryAccess, String[] sCommandList)
- throws java.lang.Exception
+ throws java.lang.Exception
{
- log.println("check getPreferredKeyEventsForCommandList...");
+ System.out.println("check getPreferredKeyEventsForCommandList...");
Object[] oKeyEvents = xAccelCfg.getPreferredKeyEventsForCommandList(sCommandList);
for (int i = 0; i < oKeyEvents.length; i++)
{
- log.println("get preferred key for command "+ sCommandList[i] + ":");
+ System.out.println("get preferred key for command " + sCommandList[i] + ":");
- KeyEvent aKeyEvent = (KeyEvent)AnyConverter.toObject(KeyEvent.class, oKeyEvents[i]);
+ KeyEvent aKeyEvent = (KeyEvent) AnyConverter.toObject(KeyEvent.class, oKeyEvents[i]);
String sKeyEvent = convertAWTKey2Shortcut(aKeyEvent);
- log.println(sKeyEvent);
+ System.out.println(sKeyEvent);
String sCmdFromConfiguration = getCommandFromConfiguration(xPrimaryAccess, sKeyEvent);
- log.println(sCmdFromConfiguration);
+ System.out.println(sCmdFromConfiguration);
if (sCommandList[i].equals(sCmdFromConfiguration))
- log.println("get preferred key correctly!");
+ {
+ System.out.println("get preferred key correctly!");
+ }
else
- log.println("get preferred key failed!");
+ {
+ System.out.println("get preferred key failed!");
+ }
}
}
@@ -424,18 +565,20 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
/** @todo document me.
*/
private String getCommandFromConfiguration(XNameAccess xAccess, String sKey)
- throws java.lang.Exception
+ throws java.lang.Exception
{
String sCommand = new String();
if (xAccess.hasByName(sKey))
{
- XNameAccess xKey = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, xAccess.getByName(sKey));
- XNameAccess xCommand = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, xKey.getByName("Command"));
+ XNameAccess xKey = UnoRuntime.queryInterface(XNameAccess.class, xAccess.getByName(sKey));
+ XNameAccess xCommand = UnoRuntime.queryInterface(XNameAccess.class, xKey.getByName("Command"));
String sLocale = getOfficeLocale();
- if (xCommand.hasByName(sLocale))
- sCommand = (String)UnoRuntime.queryInterface(String.class, xCommand.getByName(sLocale));
+ if (xCommand.hasByName(sLocale))
+ {
+ sCommand = UnoRuntime.queryInterface(String.class, xCommand.getByName(sLocale));
+ }
}
return sCommand;
@@ -445,52 +588,54 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
/** @todo document me.
*/
private void insertKeyToConfiguration(XNameAccess xAccess, String sKey, String sCommand)
- throws java.lang.Exception
+ throws java.lang.Exception
{
- XNameContainer xContainer = (XNameContainer)UnoRuntime.queryInterface(XNameContainer.class, xAccess);
+ XNameContainer xContainer = UnoRuntime.queryInterface(XNameContainer.class, xAccess);
if (!xContainer.hasByName(sKey))
{
- XSingleServiceFactory xFac = (XSingleServiceFactory)UnoRuntime.queryInterface(XSingleServiceFactory.class, xContainer);
- XInterface xInst = (XInterface)UnoRuntime.queryInterface(XInterface.class, xFac.createInstance());
+ XSingleServiceFactory xFac = UnoRuntime.queryInterface(XSingleServiceFactory.class, xContainer);
+ XInterface xInst = UnoRuntime.queryInterface(XInterface.class, xFac.createInstance());
xContainer.insertByName(sKey, xInst);
}
- XNameAccess xKey = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, xContainer.getByName(sKey));
- XNameContainer xCommand = (XNameContainer)UnoRuntime.queryInterface(XNameContainer.class, xKey.getByName("Command"));
+ XNameAccess xKey = UnoRuntime.queryInterface(XNameAccess.class, xContainer.getByName(sKey));
+ XNameContainer xCommand = UnoRuntime.queryInterface(XNameContainer.class, xKey.getByName("Command"));
String sLocale = getOfficeLocale();
if (xCommand.hasByName(sLocale))
+ {
xCommand.insertByName(sLocale, sCommand);
+ }
else
+ {
xCommand.replaceByName(sLocale, sCommand);
+ }
}
//-------------------------------------------
/** @todo document me.
*/
private void removeKeyFromConfiguration(XNameAccess xAccess, String sKey)
- throws java.lang.Exception
+ throws java.lang.Exception
{
- XNameContainer xContainer = (XNameContainer)UnoRuntime.queryInterface(XNameContainer.class, xAccess);
+ XNameContainer xContainer = UnoRuntime.queryInterface(XNameContainer.class, xAccess);
if (xContainer.hasByName(sKey))
+ {
xContainer.removeByName(sKey);
+ }
}
//-------------------------------------------
/** @todo document me.
*/
private void LoadDocumentAcceleratorConfiguration(String sDocCfgName)
- throws java.lang.Exception
+ throws java.lang.Exception
{
- XSingleServiceFactory xStorageFactory = (XSingleServiceFactory)UnoRuntime.queryInterface(
- XSingleServiceFactory.class,
- m_xSmgr.createInstance("com.sun.star.embed.StorageFactory"));
+ XSingleServiceFactory xStorageFactory = UnoRuntime.queryInterface(XSingleServiceFactory.class, m_xSmgr.createInstance("com.sun.star.embed.StorageFactory"));
Object aArgs[] = new Object[2];
aArgs[0] = sDocCfgName;
aArgs[1] = new Integer(com.sun.star.embed.ElementModes.READ);
- XStorage xRootStorage = (XStorage)UnoRuntime.queryInterface(
- XStorage.class,
- xStorageFactory.createInstanceWithArguments(aArgs));
+ XStorage xRootStorage = UnoRuntime.queryInterface(XStorage.class, xStorageFactory.createInstanceWithArguments(aArgs));
XStorage xUIConfig = xRootStorage.openStorageElement("Configurations2", com.sun.star.embed.ElementModes.READ);
@@ -500,58 +645,53 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
Object[] lArgs = new Object[1];
lArgs[0] = aProp;
- XInitialization xInit = (XInitialization)UnoRuntime.queryInterface(XInitialization.class, m_xDocumentAccelCfg);
+ XInitialization xInit = UnoRuntime.queryInterface(XInitialization.class, m_xDocumentAccelCfg);
xInit.initialize(lArgs);
- String test = m_xDocumentAccelCfg.getCommandByKeyEvent(convertShortcut2AWTKey("F2"));
- log.println(test);
+ // TODO: throws css::container::NoSuchElementException
+ try
+ {
+ String test = m_xDocumentAccelCfg.getCommandByKeyEvent(convertShortcut2AWTKey("F2"));
+ System.out.println(test);
+ }
+ catch(com.sun.star.container.NoSuchElementException e)
+ {
+ System.out.println("NoSuchElementException caught: " + e.getMessage());
+ }
}
//-------------------------------------------
/** @todo document me.
*/
private void SaveDocumentAcceleratorConfiguration(String sDocCfgName)
- throws java.lang.Exception
+ throws java.lang.Exception
{
- XSingleServiceFactory xStorageFactory = (XSingleServiceFactory)UnoRuntime.queryInterface(
- XSingleServiceFactory.class,
- m_xSmgr.createInstance("com.sun.star.embed.StorageFactory"));
+ XSingleServiceFactory xStorageFactory = UnoRuntime.queryInterface(XSingleServiceFactory.class, m_xSmgr.createInstance("com.sun.star.embed.StorageFactory"));
Object aArgs[] = new Object[2];
aArgs[0] = sDocCfgName;
aArgs[1] = new Integer(com.sun.star.embed.ElementModes.WRITE);
- XStorage xRootStorage = (XStorage)UnoRuntime.queryInterface(
- XStorage.class,
- xStorageFactory.createInstanceWithArguments(aArgs));
+ XStorage xRootStorage = UnoRuntime.queryInterface(XStorage.class, xStorageFactory.createInstanceWithArguments(aArgs));
XStorage xUIConfig = xRootStorage.openStorageElement("Configurations2", com.sun.star.embed.ElementModes.WRITE);
- XUIConfigurationManager xCfgMgr = (XUIConfigurationManager)UnoRuntime.queryInterface(
- XUIConfigurationManager.class,
- m_xSmgr.createInstance("com.sun.star.ui.UIConfigurationManager"));
+ XUIConfigurationManager xCfgMgr = UnoRuntime.queryInterface(XUIConfigurationManager.class, m_xSmgr.createInstance("com.sun.star.ui.UIConfigurationManager"));
- XUIConfigurationStorage xUICfgStore = (XUIConfigurationStorage)UnoRuntime.queryInterface(
- XUIConfigurationStorage.class,
- xCfgMgr);
+ XUIConfigurationStorage xUICfgStore = UnoRuntime.queryInterface(XUIConfigurationStorage.class, xCfgMgr);
xUICfgStore.setStorage(xUIConfig);
- XPropertySet xUIConfigProps = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xUIConfig);
+ XPropertySet xUIConfigProps = UnoRuntime.queryInterface(XPropertySet.class, xUIConfig);
xUIConfigProps.setPropertyValue("MediaType", "application/vnd.sun.xml.ui.configuration");
if (xCfgMgr != null)
{
- XAcceleratorConfiguration xTargetAccMgr = (XAcceleratorConfiguration)UnoRuntime.queryInterface(
- XAcceleratorConfiguration.class,
- xCfgMgr.getShortCutManager());
- XUIConfigurationPersistence xCommit1 = (XUIConfigurationPersistence)UnoRuntime.queryInterface(
- XUIConfigurationPersistence.class, xTargetAccMgr);
- XUIConfigurationPersistence xCommit2 = (XUIConfigurationPersistence)UnoRuntime.queryInterface(
- XUIConfigurationPersistence.class, xCfgMgr);
+ XAcceleratorConfiguration xTargetAccMgr = UnoRuntime.queryInterface(XAcceleratorConfiguration.class, xCfgMgr.getShortCutManager());
+ XUIConfigurationPersistence xCommit1 = UnoRuntime.queryInterface(XUIConfigurationPersistence.class, xTargetAccMgr);
+ XUIConfigurationPersistence xCommit2 = UnoRuntime.queryInterface(XUIConfigurationPersistence.class, xCfgMgr);
xCommit1.store();
xCommit2.store();
- XTransactedObject xCommit3 = (XTransactedObject)UnoRuntime.queryInterface(
- XTransactedObject.class, xRootStorage);
+ XTransactedObject xCommit3 = UnoRuntime.queryInterface(XTransactedObject.class, xRootStorage);
xCommit3.commit();
}
}
@@ -560,7 +700,7 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
/** @todo document me.
*/
private com.sun.star.awt.KeyEvent convertShortcut2AWTKey(String sShortcut)
- throws java.lang.Exception
+ throws java.lang.Exception
{
com.sun.star.awt.KeyEvent aKeyEvent = new com.sun.star.awt.KeyEvent();
KeyMapping aKeyMapping = new KeyMapping();
@@ -570,11 +710,17 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
for (int i = 1; i < sShortcutSplits.length; i++)
{
if (sShortcutSplits[i].equals("SHIFT"))
+ {
aKeyEvent.Modifiers |= com.sun.star.awt.KeyModifier.SHIFT;
+ }
else if (sShortcutSplits[i].equals("MOD1"))
+ {
aKeyEvent.Modifiers |= com.sun.star.awt.KeyModifier.MOD1;
+ }
else if (sShortcutSplits[i].equals("MOD2"))
+ {
aKeyEvent.Modifiers |= com.sun.star.awt.KeyModifier.MOD2;
+ }
}
return aKeyEvent;
@@ -584,7 +730,7 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
/** @todo document me.
*/
private String convertAWTKey2Shortcut(com.sun.star.awt.KeyEvent aKeyEvent)
- throws java.lang.Exception
+ throws java.lang.Exception
{
String sShortcut;
@@ -592,11 +738,17 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
sShortcut = aKeyMapping.mapCode2Identifier(aKeyEvent.KeyCode);
if ((aKeyEvent.Modifiers & com.sun.star.awt.KeyModifier.SHIFT) == com.sun.star.awt.KeyModifier.SHIFT)
+ {
sShortcut += "_SHIFT";
+ }
if ((aKeyEvent.Modifiers & com.sun.star.awt.KeyModifier.MOD1) == com.sun.star.awt.KeyModifier.MOD1)
+ {
sShortcut += "_MOD1";
+ }
if ((aKeyEvent.Modifiers & com.sun.star.awt.KeyModifier.MOD2) == com.sun.star.awt.KeyModifier.MOD2)
+ {
sShortcut += "_MOD2";
+ }
return sShortcut;
}
@@ -605,7 +757,7 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
/** @todo document me.
*/
private String getOfficeLocale()
- throws java.lang.Exception
+ throws java.lang.Exception
{
String sLocale = new String();
@@ -615,9 +767,9 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
if (xRootConfig != null)
{
- XNameAccess xLocale = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, xRootConfig.getByName("L10N"));
- XPropertySet xSet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xLocale);
- sLocale = (String)xSet.getPropertyValue("ooLocale");
+ XNameAccess xLocale = UnoRuntime.queryInterface(XNameAccess.class, xRootConfig.getByName("L10N"));
+ XPropertySet xSet = UnoRuntime.queryInterface(XPropertySet.class, xLocale);
+ sLocale = (String) xSet.getPropertyValue("ooLocale");
}
return sLocale;
@@ -626,8 +778,8 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
//-------------------------------------------
/** @todo document me.
*/
- private void setOfficeLocale(String sLocale)
- throws java.lang.Exception
+ private void setOfficeLocale(String sLocale)
+ throws java.lang.Exception
{
String sConfigPath = "org.openoffice.Setup";
boolean bReadOnly = false;
@@ -635,10 +787,10 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
if (xRootConfig != null)
{
- XNameAccess xLocale = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, xRootConfig.getByName("L10N"));
- XPropertySet xSet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xLocale);
+ XNameAccess xLocale = UnoRuntime.queryInterface(XNameAccess.class, xRootConfig.getByName("L10N"));
+ XPropertySet xSet = UnoRuntime.queryInterface(XPropertySet.class, xLocale);
xSet.setPropertyValue("ooLocale", sLocale);
- XChangesBatch xBatch = (XChangesBatch)UnoRuntime.queryInterface(XChangesBatch.class, xRootConfig);
+ XChangesBatch xBatch = UnoRuntime.queryInterface(XChangesBatch.class, xRootConfig);
xBatch.commitChanges();
}
}
@@ -647,13 +799,11 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
/** @todo document me.
*/
private XNameAccess openConfig(XMultiServiceFactory xSMGR,
- String sConfigPath ,
- boolean bReadOnly )
- throws java.lang.Exception
+ String sConfigPath,
+ boolean bReadOnly)
+ throws java.lang.Exception
{
- XMultiServiceFactory xConfigRoot = (XMultiServiceFactory)UnoRuntime.queryInterface(
- XMultiServiceFactory.class,
- xSMGR.createInstance("com.sun.star.configuration.ConfigurationProvider"));
+ XMultiServiceFactory xConfigRoot = UnoRuntime.queryInterface(XMultiServiceFactory.class, xSMGR.createInstance("com.sun.star.configuration.ConfigurationProvider"));
PropertyValue[] lParams = new PropertyValue[2];
lParams[0] = new PropertyValue();
@@ -666,21 +816,44 @@ public class AcceleratorsConfigurationTest extends ComplexTestCase
Object aConfig;
if (bReadOnly)
- aConfig = xConfigRoot.createInstanceWithArguments(
- "com.sun.star.configuration.ConfigurationAccess",
- lParams);
+ {
+ aConfig = xConfigRoot.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", lParams);
+ }
else
- aConfig = xConfigRoot.createInstanceWithArguments(
- "com.sun.star.configuration.ConfigurationUpdateAccess",
- lParams);
+ {
+ aConfig = xConfigRoot.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess", lParams);
+ }
- XNameAccess xConfig = (XNameAccess)UnoRuntime.queryInterface(
- XNameAccess.class,
- aConfig);
+ XNameAccess xConfig = UnoRuntime.queryInterface(XNameAccess.class, aConfig);
if (xConfig == null)
+ {
throw new com.sun.star.uno.Exception("Could not open configuration \"" + sConfigPath + "\"");
+ }
return xConfig;
}
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
}
diff --git a/framework/qa/complex/accelerators/helper/KeyMapping.java b/framework/qa/complex/accelerators/KeyMapping.java
index ec538d53b6..5d40a9a09f 100644
--- a/framework/qa/complex/accelerators/helper/KeyMapping.java
+++ b/framework/qa/complex/accelerators/KeyMapping.java
@@ -70,7 +70,7 @@ public class KeyMapping
private IdentifierHashMap aIdentifierHashMap;
private CodeHashMap aCodeHashMap;
- KeyMapping()
+ public KeyMapping()
{
KeyIdentifierInfo[] aInfoMap = {
new KeyIdentifierInfo("0", new Short(com.sun.star.awt.Key.NUM0)),
diff --git a/framework/qa/complex/accelerators/helper/makefile.mk b/framework/qa/complex/accelerators/helper/makefile.mk
index a0d10f6881..189a5fddba 100644
--- a/framework/qa/complex/accelerators/helper/makefile.mk
+++ b/framework/qa/complex/accelerators/helper/makefile.mk
@@ -25,10 +25,10 @@
#
#*************************************************************************
-PRJ = ..$/..$/..$/..
+PRJ = ../../../..
TARGET = AcceleratorsConfigurationTest
PRJNAME = framework
-PACKAGE = complex$/accelerators$/helper
+PACKAGE = complex/accelerators/helper
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
diff --git a/framework/qa/complex/accelerators/makefile.mk b/framework/qa/complex/accelerators/makefile.mk
index 3af496191d..7d54603248 100644
--- a/framework/qa/complex/accelerators/makefile.mk
+++ b/framework/qa/complex/accelerators/makefile.mk
@@ -24,63 +24,44 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-PRJ = ..$/..$/..
-TARGET = AcceleratorsConfigurationTest
-PRJNAME = $(TARGET)
-PACKAGE = complex$/accelerators
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
- OOoRunner.jar
-
-JAVAFILES = AcceleratorsConfigurationTest.java
-
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-SUBDIRS=helper
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_accelerators
-#----- make a jar from compiled files ------------------------------
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/accelerators
-MAXLINELENGTH = 100000
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ AcceleratorsConfigurationTest.java
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+# put here all other files
+JAVAFILES = $(JAVATESTFILES) \
+ KeyMapping.java
-# --- Parameters for the test --------------------------------------
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
+# OOoRunner.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+.END
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-# start the runner application
-CT_APP = org.openoffice.Runner
+ALLTAR : javatest
-# --- Targets ------------------------------------------------------
+.END
-#.IF "$(depend)" == ""
-#$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-#.ELSE
-#$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-#.ENDIF
-.INCLUDE : target.mk
-RUN: run
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
+
diff --git a/framework/qa/complex/api_internal/CheckAPI.java b/framework/qa/complex/api_internal/CheckAPI.java
index 7042034e55..c712f0a8ee 100755
--- a/framework/qa/complex/api_internal/CheckAPI.java
+++ b/framework/qa/complex/api_internal/CheckAPI.java
@@ -28,7 +28,6 @@
package complex.api_internal;
// imports
-import complexlib.ComplexTestCase;
import helper.OfficeProvider;
import helper.ProcessHandler;
import com.sun.star.task.XJob;
@@ -38,16 +37,27 @@ import com.sun.star.beans.PropertyValue;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.beans.NamedValue;
-import java.io.PrintWriter;
import java.util.Vector;
import java.util.StringTokenizer;
+
+// ---------- junit imports -----------------
+import lib.TestParameters;
+import org.junit.After;
+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.*;
+// ------------------------------------------
+
/**
* This test executes the API tests internally in StarOffice. Prerequiste is
* that a OOoRunner.jar is registered inseide of StarOffice. Adjust the joblist
* inside of the ChekAPI.props to determine which tetss will be executed.
*/
-public class CheckAPI extends ComplexTestCase {
+public class CheckAPI {
// The name of the tested service
private final String testName = "StarOfficeAPI";
@@ -56,40 +66,52 @@ public class CheckAPI extends ComplexTestCase {
* Return all test methods.
* @return The test methods.
*/
- public String[] getTestMethodNames() {
- return new String[]{"checkAPI"};
- }
+// public String[] getTestMethodNames() {
+// return new String[]{"checkAPI"};
+// }
+
+ /**
+ * The test parameters
+ */
+ private static TestParameters param = null;
/**
+ *
+ */
+ @Before public void before()
+ {
+ param = new TestParameters();
+ }
+ /**
* Execute the API tests inside of the Office. If the Office crashes, it
* will be restarted and the job will continue after the one that caused the crash.
*/
- public void checkAPI() {
- log.println("Start with test");
+ @Test public void checkAPI() {
+ System.out.println("Start with test");
// if test is idle for 5 minutes, assume that it hangs and kill it.
- param.put("TimeOut", new Integer("300000"));
+ // param.put("TimeOut", new Integer("300000"));
/* AppProvider office = (AppProvider)dcl.getInstance("helper.OfficeProvider");
Object msf = office.getManager(param);
if (msf == null) {
failed("Could not connect an Office.");
}
param.put("ServiceFactory",msf); */
- XMultiServiceFactory xMSF = (XMultiServiceFactory)param.getMSF();
+ XMultiServiceFactory xMSF = getMSF();
Object oObj = null;
try {
oObj = xMSF.createInstance("org.openoffice.RunnerService");
}
catch(com.sun.star.uno.Exception e) {
- failed("Could not create Instance of 'org.openoffice.RunnerService'");
- }
- if ( oObj == null ) {
- failed("Cannot create 'org.openoffice.RunnerService'");
+ fail("Could not create Instance of 'org.openoffice.RunnerService'");
}
+ assertNotNull("Cannot create 'org.openoffice.RunnerService'", oObj);
+
// get the parameters for the internal test
String paramList = (String)param.get("ParamList");
Vector p = new Vector();
StringTokenizer paramTokens = new StringTokenizer(paramList, " ");
- while(paramTokens.hasMoreTokens()) {
+ while(paramTokens.hasMoreTokens())
+ {
p.add(paramTokens.nextToken());
}
int length = p.size()/2+1;
@@ -98,15 +120,17 @@ public class CheckAPI extends ComplexTestCase {
internalParams[i] = new NamedValue();
internalParams[i].Name = (String)p.get(i*2);
internalParams[i].Value = p.get(i*2+1);
- log.println("Name: "+internalParams[i].Name);
- log.println("Value: "+(String)internalParams[i].Value);
+ System.out.println("Name: "+internalParams[i].Name);
+ System.out.println("Value: "+(String)internalParams[i].Value);
}
// do we have test jobs?
String testJob = (String)param.get("job");
PropertyValue[]props;
- if (testJob==null) {
- if ( param.get("job1")==null ) {
+ if (testJob==null)
+ {
+ if ( param.get("job1")==null )
+ {
// get all test jobs from runner service
XPropertyAccess xPropAcc = (XPropertyAccess)UnoRuntime.queryInterface(XPropertyAccess.class, oObj);
props = xPropAcc.getPropertyValues();
@@ -131,13 +155,13 @@ public class CheckAPI extends ComplexTestCase {
props[0].Value = testJob;
}
- log.println("Props length: "+ props.length);
+ System.out.println("Props length: "+ props.length);
for (int i=0; i<props.length; i++) {
- XJob xJob = (XJob)UnoRuntime.queryInterface(XJob.class, oObj);
+ XJob xJob = UnoRuntime.queryInterface(XJob.class, oObj);
internalParams[length-1] = new NamedValue();
internalParams[length-1].Name = "-o";
internalParams[length-1].Value = props[i].Value;
- log.println("Executing: " + (String)props[i].Value);
+ System.out.println("Executing: " + (String)props[i].Value);
String erg = null;
@@ -146,8 +170,8 @@ public class CheckAPI extends ComplexTestCase {
}
catch(Throwable t) {
// restart and go on with test!!
- t.printStackTrace((PrintWriter)log);
- failed("Test run '" + (String)props[i].Value +"' could not be executed: Office crashed and is killed!", true);
+ t.printStackTrace();
+ fail("Test run '" + (String)props[i].Value +"' could not be executed: Office crashed and is killed!");
xMSF = null;
ProcessHandler handler = (ProcessHandler)param.get("AppProvider");
handler.kill();
@@ -163,12 +187,12 @@ public class CheckAPI extends ComplexTestCase {
oObj = xMSF.createInstance("org.openoffice.RunnerService");
}
catch(com.sun.star.uno.Exception e) {
- failed("Could not create Instance of 'org.openoffice.RunnerService'");
+ fail("Could not create Instance of 'org.openoffice.RunnerService'");
}
}
- log.println(erg);
+ System.out.println(erg);
String processedErg = parseResult(erg);
- assure("Run '" + (String)props[i].Value + "' has result '" + processedErg + "'", processedErg == null, true);
+ assertTrue("Run '" + (String)props[i].Value + "' has result '" + processedErg + "'", processedErg == null);
}
}
@@ -195,6 +219,31 @@ public class CheckAPI extends ComplexTestCase {
}
return processedErg;
}
+
+
+
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
+
}
diff --git a/framework/qa/complex/api_internal/makefile.mk b/framework/qa/complex/api_internal/makefile.mk
index 4d82ba2da6..f1a22011a8 100755
--- a/framework/qa/complex/api_internal/makefile.mk
+++ b/framework/qa/complex/api_internal/makefile.mk
@@ -25,64 +25,39 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = CheckAPI
-PRJNAME = $(TARGET)
-PACKAGE = complex$/api_internal
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar mysql.jar
-JAVAFILES = CheckAPI.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-
-# --- Parameters for the test --------------------------------------
-
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_api_internal
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/api_internal
-# start the runner application
-CT_APP = org.openoffice.Runner
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ CheckAPI.java
-# --- Targets ------------------------------------------------------
+# put here all other files
+JAVAFILES = $(JAVATESTFILES)
-.IF "$(depend)" == ""
-ALL: ALLTAR $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
-.ELSE
-ALL: ALLDEP $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
-.ENDIF
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
+# OOoRunner.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
- cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
- jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-.INCLUDE : target.mk
+.END
-RUN:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_TEST)
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-run: RUN
+ALLTAR : javatest
+.END
diff --git a/framework/qa/complex/broken_document/LoadDocument.java b/framework/qa/complex/broken_document/LoadDocument.java
index e1e27907d9..789544cef0 100755
--- a/framework/qa/complex/broken_document/LoadDocument.java
+++ b/framework/qa/complex/broken_document/LoadDocument.java
@@ -27,65 +27,74 @@
package complex.broken_document;
import com.sun.star.beans.PropertyValue;
-import com.sun.star.frame.FrameSearchFlag;
+// import com.sun.star.frame.FrameSearchFlag;
import com.sun.star.frame.XComponentLoader;
import com.sun.star.frame.XFrame;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.uno.UnoRuntime;
-import complexlib.ComplexTestCase;
+
+
+// ---------- junit imports -----------------
+import org.junit.After;
+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.*;
+// ------------------------------------------
/**
* Check, if message boxes appear when the Office is in "headless" mode. Tests
* bug i15809. This test uses the broken document dbf.dbf.emf.
*/
-public class LoadDocument extends ComplexTestCase {
+public class LoadDocument {
/** defect file to load **/
- private final String mFileName = "dbf.dbf.emf";
+ // private final String mFileName = "dbf.dbf.emf";
/**
* Get all test methods.
* @return The test methods.
*/
- public String[] getTestMethodNames() {
- return new String[]{"checkHeadlessState"};
- }
+// public String[] getTestMethodNames() {
+// return new String[]{"checkHeadlessState"};
+// }
/**
* Start Office with "-headless" parameter, then
* load the broken document "dbf.dbf.emf", that brings a message box up in
* the ui, see if the headless mode of SOffice changes.
*/
- public void checkHeadlessState() {
- XMultiServiceFactory xMSF = (XMultiServiceFactory)param.getMSF();
+ @Test public void checkHeadlessState()
+ {
+ XMultiServiceFactory xMSF = getMSF();
XFrame xDesktop = null;
try {
- xDesktop = (XFrame)UnoRuntime.queryInterface(XFrame.class,
- xMSF.createInstance("com.sun.star.frame.Desktop"));
+ xDesktop = UnoRuntime.queryInterface(XFrame.class, xMSF.createInstance("com.sun.star.frame.Desktop"));
}
catch(com.sun.star.uno.Exception e) {
- failed("Could not create a desktop instance.");
+ fail("Could not create a desktop instance.");
}
- XComponentLoader xDesktopLoader = (XComponentLoader)
- UnoRuntime.queryInterface(XComponentLoader.class, xDesktop);
+ XComponentLoader xDesktopLoader = UnoRuntime.queryInterface(XComponentLoader.class, xDesktop);
System.out.println("xDektopLoader is null: " + (xDesktopLoader == null));
PropertyValue[] val = new PropertyValue[0];
- String workingDir = (String)param.get("WorkingDir") + System.getProperty("file.separator") + mFileName;
- System.out.println("Working dir: " + workingDir);
- String fileUrl = util.utils.getFullURL(workingDir);
+ // String workingDir = (String)param.get("WorkingDir") + System.getProperty("file.separator") + mFileName;
+ // System.out.println("Working dir: " + workingDir);
+ String fileUrl = complex.broken_document.TestDocument.getUrl("dbf.dbf.emf");
System.out.println("File Url: " + fileUrl);
try {
xDesktopLoader.loadComponentFromURL(fileUrl, "_blank", 0, val);
}
catch(com.sun.star.io.IOException e) {
- failed("Could not load document");
+ fail("Could not load document");
}
catch(com.sun.star.lang.IllegalArgumentException e) {
- failed("Could not load document");
+ fail("Could not load document");
}
// try again: headless mode defect now?
@@ -93,11 +102,35 @@ public class LoadDocument extends ComplexTestCase {
xDesktopLoader.loadComponentFromURL(fileUrl, "_blank", 0, val);
}
catch(com.sun.star.io.IOException e) {
- failed("Could not load document");
+ fail("Could not load document");
}
catch(com.sun.star.lang.IllegalArgumentException e) {
- failed("Could not load document");
+ fail("Could not load document");
}
}
+
+
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
+
}
diff --git a/framework/qa/complex/broken_document/TestDocument.java b/framework/qa/complex/broken_document/TestDocument.java
new file mode 100644
index 0000000000..f7b1dbfcbc
--- /dev/null
+++ b/framework/qa/complex/broken_document/TestDocument.java
@@ -0,0 +1,41 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+package complex.broken_document;
+
+import java.io.File;
+import org.openoffice.test.OfficeFileUrl;
+
+final class TestDocument
+{
+ public static String getUrl(String name)
+ {
+ return OfficeFileUrl.getAbsolute(new File("test_documents", name));
+ }
+
+ private TestDocument() {}
+}
diff --git a/framework/qa/complex/broken_document/makefile.mk b/framework/qa/complex/broken_document/makefile.mk
index c8f24a9371..8b1cf2ac3b 100755
--- a/framework/qa/complex/broken_document/makefile.mk
+++ b/framework/qa/complex/broken_document/makefile.mk
@@ -25,56 +25,41 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = CheckHeadlessState
-PRJNAME = $(TARGET)
-PACKAGE = complex$/broken_document
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = LoadDocument.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_broken_document
-# --- Parameters for the test --------------------------------------
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/broken_document
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ LoadDocument.java
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+# put here all other files
+JAVAFILES = $(JAVATESTFILES) \
+ TestDocument.java
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
+# OOoRunner.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# start the runner application
-CT_APP = org.openoffice.Runner
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-# the current directory for loading the document
-CT_WORKDIR = -WorkingDir $(PWD)
+.END
-# --- Targets ------------------------------------------------------
-
-.INCLUDE : target.mk
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
+ALLTAR : javatest
-RUN:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_WORKDIR) $(CT_TEST)
+.END
-run: RUN
diff --git a/framework/qa/complex/broken_document/dbf.dbf.emf b/framework/qa/complex/broken_document/test_documents/dbf.dbf.emf
index 11e45e9df5..11e45e9df5 100755
--- a/framework/qa/complex/broken_document/dbf.dbf.emf
+++ b/framework/qa/complex/broken_document/test_documents/dbf.dbf.emf
diff --git a/framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java b/framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java
index 8cad076b2d..3447f9291e 100644
--- a/framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java
+++ b/framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java
@@ -1,4 +1,4 @@
-package contextMenuInterceptor;
+package complex.contextMenuInterceptor;
import com.sun.star.accessibility.AccessibleRole;
import com.sun.star.accessibility.XAccessible;
@@ -9,249 +9,289 @@ import com.sun.star.awt.Rectangle;
import com.sun.star.awt.XBitmap;
import com.sun.star.awt.XExtendedToolkit;
import com.sun.star.awt.XWindow;
-import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.XPropertySet;
-import com.sun.star.beans.XPropertySetInfo;
-import com.sun.star.container.XIndexAccess;
import com.sun.star.drawing.XShape;
-import com.sun.star.frame.XComponentLoader;
-import com.sun.star.frame.XController;
-import com.sun.star.frame.XDesktop;
import com.sun.star.frame.XFrame;
import com.sun.star.frame.XModel;
import com.sun.star.lang.IndexOutOfBoundsException;
-import com.sun.star.lang.XComponent;
-import com.sun.star.lang.XInitialization;
import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.lang.XTypeProvider;
-import com.sun.star.text.XTextDocument;
-import com.sun.star.ui.XContextMenuInterceptor;
import com.sun.star.ui.XContextMenuInterception;
+import com.sun.star.ui.XContextMenuInterceptor;
import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.Type;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XInterface;
-import com.sun.star.uno.Exception;
-import com.sun.star.util.CloseVetoException;
import com.sun.star.util.XCloseable;
-import com.sun.star.view.XViewSettingsSupplier;
-import complexlib.ComplexTestCase;
import java.awt.Robot;
import java.awt.event.InputEvent;
-import java.io.PrintWriter;
-import share.LogWriter;
+import java.io.File;
import util.AccessibilityTools;
import util.DesktopTools;
import util.DrawTools;
import util.SOfficeFactory;
import util.utils;
+import org.openoffice.test.OfficeFileUrl;
+
+// ---------- junit imports -----------------
+import org.junit.After;
+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 CheckContextMenuInterceptor extends ComplexTestCase {
+public class CheckContextMenuInterceptor
+{
+
XMultiServiceFactory xMSF = null;
XFrame xFrame = null;
Point point = null;
XWindow xWindow = null;
-
- public void before() {
- xMSF = (XMultiServiceFactory)param.getMSF();
- }
-
- public void after() {
- log.println("release the popup menu");
- try {
+ com.sun.star.lang.XComponent xDrawDoc;
+
+ @Before
+ public void before()
+ {
+ xMSF = getMSF();
+ }
+
+ @After
+ public void after()
+ {
+ System.out.println("release the popup menu");
+ try
+ {
Robot rob = new Robot();
int x = point.X;
int y = point.Y;
rob.mouseMove(x, y);
rob.mousePress(InputEvent.BUTTON1_MASK);
rob.mouseRelease(InputEvent.BUTTON1_MASK);
- } catch (java.awt.AWTException e) {
- log.println("couldn't press mouse button");
}
-
- com.sun.star.util.XCloseable xClose = (com.sun.star.util.XCloseable)UnoRuntime.queryInterface(
- com.sun.star.util.XCloseable.class, xFrame);
+ catch (java.awt.AWTException e)
+ {
+ System.out.println("couldn't press mouse button");
+ }
+
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, xFrame);
try
{
- xClose.close(false);
+ xClose.close(true);
}
- catch(com.sun.star.util.CloseVetoException exVeto)
+ catch (com.sun.star.util.CloseVetoException exVeto)
{
- failed("Test frame couldn't be closed successfully.");
+ fail("Test frame couldn't be closed successfully.");
}
xFrame = null;
+
+// xClose = UnoRuntime.queryInterface(XCloseable.class, xDrawDoc);
+// try
+// {
+// xClose.close(true);
+// }
+// catch (com.sun.star.util.CloseVetoException exVeto)
+// {
+// fail("Test DrawDoc couldn't be closed successfully.");
+// }
+
}
-
- public String[] getTestMethodNames() {
- return new String[]{"checkContextMenuInterceptor"};
- }
-
- public void checkContextMenuInterceptor() {
- log.println(" **** Context Menu Interceptor *** ");
-
- try {
+
+// public String[] getTestMethodNames() {
+// return new String[]{"checkContextMenuInterceptor"};
+// }
+ @Test
+ public void checkContextMenuInterceptor()
+ {
+ System.out.println(" **** Context Menu Interceptor *** ");
+
+ try
+ {
// intialize the test document
- com.sun.star.lang.XComponent xDrawDoc = DrawTools.createDrawDoc(xMSF);
-
- SOfficeFactory SOF = SOfficeFactory.getFactory( xMSF);
- XShape oShape = SOF.createShape(xDrawDoc,5000,5000,1500,1000,"GraphicObject");
- DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc,0)).add(oShape);
-
- com.sun.star.frame.XModel xModel =
- (com.sun.star.frame.XModel)UnoRuntime.queryInterface(
- com.sun.star.frame.XModel.class, xDrawDoc);
-
+ xDrawDoc = DrawTools.createDrawDoc(xMSF);
+
+ SOfficeFactory SOF = SOfficeFactory.getFactory(xMSF);
+ XShape oShape = SOF.createShape(xDrawDoc, 5000, 5000, 1500, 1000, "GraphicObject");
+ DrawTools.getShapes(DrawTools.getDrawPage(xDrawDoc, 0)).add(oShape);
+
+ com.sun.star.frame.XModel xModel =
+ UnoRuntime.queryInterface(com.sun.star.frame.XModel.class, xDrawDoc);
+
// get the frame for later usage
xFrame = xModel.getCurrentController().getFrame();
-
+
// ensure that the document content is optimal visible
DesktopTools.zoomToEntirePage(xDrawDoc);
-
+
XBitmap xBitmap = null;
-
+
// adding graphic as ObjRelation for GraphicObjectShape
- XPropertySet oShapeProps = (XPropertySet)
- UnoRuntime.queryInterface(XPropertySet.class,oShape);
- log.println( "Inserting a shape into the document");
-
- try
+ XPropertySet oShapeProps = UnoRuntime.queryInterface(XPropertySet.class, oShape);
+ System.out.println("Inserting a shape into the document");
+
+ try
+ {
+ String sFile = OfficeFileUrl.getAbsolute(new File("space-metal.jpg"));
+ // String sFile = util.utils.getFullTestURL("space-metal.jpg");
+ oShapeProps.setPropertyValue("GraphicURL", sFile);
+ Object oProp = oShapeProps.getPropertyValue("GraphicObjectFillBitmap");
+ xBitmap = (XBitmap) AnyConverter.toObject(new Type(XBitmap.class), oProp);
+ }
+ catch (com.sun.star.lang.WrappedTargetException e)
+ {
+ }
+ catch (com.sun.star.lang.IllegalArgumentException e)
+ {
+ }
+ catch (com.sun.star.beans.PropertyVetoException e)
+ {
+ }
+ catch (com.sun.star.beans.UnknownPropertyException e)
{
- oShapeProps.setPropertyValue(
- "GraphicURL",util.utils.getFullTestURL("space-metal.jpg"));
- xBitmap = (XBitmap) AnyConverter.toObject(
- new Type(XBitmap.class),oShapeProps.getPropertyValue
- ("GraphicObjectFillBitmap"));
- } catch (com.sun.star.lang.WrappedTargetException e) {
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- } catch (com.sun.star.beans.PropertyVetoException e) {
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- }
-
+ }
+
// reuse the frame
com.sun.star.frame.XController xController = xFrame.getController();
- com.sun.star.ui.XContextMenuInterception xContextMenuInterception = null;
- com.sun.star.ui.XContextMenuInterceptor xContextMenuInterceptor = null;
-
- if ( xController != null )
+ XContextMenuInterception xContextMenuInterception = null;
+ XContextMenuInterceptor xContextMenuInterceptor = null;
+
+ if (xController != null)
{
- log.println( "Creating context menu interceptor");
-
+ System.out.println("Creating context menu interceptor");
+
// add our context menu interceptor
- xContextMenuInterception =
- (com.sun.star.ui.XContextMenuInterception)UnoRuntime.queryInterface(
- com.sun.star.ui.XContextMenuInterception.class, xController );
-
- if( xContextMenuInterception != null )
+ xContextMenuInterception =
+ UnoRuntime.queryInterface(XContextMenuInterception.class, xController);
+
+ if (xContextMenuInterception != null)
{
- ContextMenuInterceptor aContextMenuInterceptor = new ContextMenuInterceptor( xBitmap );
- xContextMenuInterceptor =
- (com.sun.star.ui.XContextMenuInterceptor)UnoRuntime.queryInterface(
- com.sun.star.ui.XContextMenuInterceptor.class, aContextMenuInterceptor );
-
- log.println( "Register context menu interceptor");
- xContextMenuInterception.registerContextMenuInterceptor( xContextMenuInterceptor );
+ ContextMenuInterceptor aContextMenuInterceptor = new ContextMenuInterceptor(xBitmap);
+ xContextMenuInterceptor =
+ UnoRuntime.queryInterface(XContextMenuInterceptor.class, aContextMenuInterceptor);
+
+ System.out.println("Register context menu interceptor");
+ xContextMenuInterception.registerContextMenuInterceptor(xContextMenuInterceptor);
}
}
-
- // utils.shortWait(10000);
-
- openContextMenu((XModel) UnoRuntime.queryInterface(XModel.class, xDrawDoc));
-
+
+ // utils.shortWait(10000);
+
+ openContextMenu(UnoRuntime.queryInterface(XModel.class, xDrawDoc));
+
checkHelpEntry();
-
+
// remove our context menu interceptor
- if ( xContextMenuInterception != null &&
- xContextMenuInterceptor != null ) {
- log.println( "Release context menu interceptor");
+ if (xContextMenuInterception != null
+ && xContextMenuInterceptor != null)
+ {
+ System.out.println("Release context menu interceptor");
xContextMenuInterception.releaseContextMenuInterceptor(
- xContextMenuInterceptor );
+ xContextMenuInterceptor);
}
}
- catch ( com.sun.star.uno.RuntimeException ex ) {
- ex.printStackTrace((PrintWriter)log);
- failed("Runtime exception caught!" + ex.getMessage());
+ catch (com.sun.star.uno.RuntimeException ex)
+ {
+ // ex.printStackTrace();
+ fail("Runtime exception caught!" + ex.getMessage());
}
- catch ( java.lang.Exception ex ) {
- ex.printStackTrace((PrintWriter)log);
- failed("Java lang exception caught!" + ex.getMessage());
+ catch (java.lang.Exception ex)
+ {
+ // ex.printStackTrace();
+ fail("Java lang exception caught!" + ex.getMessage());
}
}
- private void checkHelpEntry(){
+ private void checkHelpEntry()
+ {
XInterface toolkit = null;
-
- log.println("get accesibility...");
- try{
+
+ System.out.println("get accesibility...");
+ try
+ {
toolkit = (XInterface) xMSF.createInstance("com.sun.star.awt.Toolkit");
- } catch (com.sun.star.uno.Exception e){
- log.println("could not get Toolkit " + e.toString());
}
- XExtendedToolkit tk = (XExtendedToolkit) UnoRuntime.queryInterface(
- XExtendedToolkit.class, toolkit);
+ catch (com.sun.star.uno.Exception e)
+ {
+ System.out.println("could not get Toolkit " + e.toString());
+ }
+ XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class, toolkit);
XAccessible xRoot = null;
AccessibilityTools at = new AccessibilityTools();
- try {
- xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class,
- tk.getTopWindow(0));
-
+ try
+ {
+ xWindow = UnoRuntime.queryInterface(XWindow.class, tk.getTopWindow(0));
+
xRoot = at.getAccessibleObject(xWindow);
-
+
// at.printAccessibleTree((PrintWriter)log, xRoot, param.getBool(util.PropertyName.DEBUG_IS_ACTIVE));
- at.printAccessibleTree((PrintWriter)log, xRoot, true);
- }
- catch (com.sun.star.lang.IndexOutOfBoundsException e)
+ // at.printAccessibleTree(System.out, xRoot, true);
+ }
+ catch (com.sun.star.lang.IndexOutOfBoundsException e)
{
- log.println("Couldn't get Window");
+ System.out.println("Couldn't get Window");
}
XAccessibleContext oPopMenu = at.getAccessibleObjectForRole(xRoot, AccessibleRole.POPUP_MENU);
- log.println("ImplementationName: " + util.utils.getImplName(oPopMenu));
-
+ System.out.println("ImplementationName: " + util.utils.getImplName(oPopMenu));
+
XAccessible xHelp = null;
- try{
- log.println("Try to get first entry of context menu...");
+ try
+ {
+ System.out.println("Try to get first entry of context menu...");
xHelp = oPopMenu.getAccessibleChild(0);
-
- } catch (IndexOutOfBoundsException e){
- failed("Not possible to get first entry of context menu");
+
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ fail("Not possible to get first entry of context menu");
}
-
- if (xHelp == null) failed("first entry of context menu is NULL");
-
+
+ if (xHelp == null)
+ {
+ fail("first entry of context menu is NULL");
+ }
+
XAccessibleContext xHelpCont = xHelp.getAccessibleContext();
- if ( xHelpCont == null )
- failed("No able to retrieve accessible context from first entry of context menu");
-
+ if (xHelpCont == null)
+ {
+ fail("No able to retrieve accessible context from first entry of context menu");
+ }
+
String aAccessibleName = xHelpCont.getAccessibleName();
- if ( !aAccessibleName.equals( "Help" )) {
- log.println("Accessible name found = "+aAccessibleName );
- failed("First entry of context menu is not from context menu interceptor");
+ if (!aAccessibleName.equals("Help"))
+ {
+ System.out.println("Accessible name found = " + aAccessibleName);
+ fail("First entry of context menu is not from context menu interceptor");
}
-
+
try
{
- log.println("try to get first children of Help context...");
+ System.out.println("try to get first children of Help context...");
XAccessible xHelpChild = xHelpCont.getAccessibleChild(0);
- } catch (IndexOutOfBoundsException e){
- failed("not possible to get first children of Help context");
}
-
+ catch (IndexOutOfBoundsException e)
+ {
+ fail("not possible to get first children of Help context");
+ }
+
}
-
- private void openContextMenu(XModel aModel){
-
- log.println("try to open contex menu...");
+
+ private void openContextMenu(XModel aModel)
+ {
+
+ System.out.println("try to open contex menu...");
AccessibilityTools at = new AccessibilityTools();
xWindow = at.getCurrentWindow(xMSF, aModel);
@@ -260,14 +300,14 @@ public class CheckContextMenuInterceptor extends ComplexTestCase {
XInterface oObj = at.getAccessibleObjectForRole(xRoot, AccessibleRole.PANEL);
- XAccessibleComponent window = (XAccessibleComponent) UnoRuntime.queryInterface(
- XAccessibleComponent.class, oObj);
+ XAccessibleComponent window = UnoRuntime.queryInterface(XAccessibleComponent.class, oObj);
point = window.getLocationOnScreen();
Rectangle rect = window.getBounds();
-
- log.println("klick mouse button...");
- try {
+
+ System.out.println("klick mouse button...");
+ try
+ {
Robot rob = new Robot();
int x = point.X + (rect.Width / 2);
int y = point.Y + (rect.Height / 2);
@@ -277,11 +317,36 @@ public class CheckContextMenuInterceptor extends ComplexTestCase {
System.out.println("Release Button");
rob.mouseRelease(InputEvent.BUTTON3_MASK);
System.out.println("done");
- } catch (java.awt.AWTException e) {
- log.println("couldn't press mouse button");
}
-
+ catch (java.awt.AWTException e)
+ {
+ System.out.println("couldn't press mouse button");
+ }
+
utils.shortWait(3000);
-
+
+ }
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
}
diff --git a/framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java b/framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java
index 2a6d9e000d..6455807f56 100644
--- a/framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java
+++ b/framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java
@@ -1,130 +1,114 @@
-package contextMenuInterceptor;
+package complex.contextMenuInterceptor;
import com.sun.star.ui.*;
-import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.beans.XPropertySet;
-import com.sun.star.container.XIndexContainer;
import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.Exception;
-import com.sun.star.beans.UnknownPropertyException;
-import com.sun.star.lang.IllegalArgumentException;
-public class ContextMenuInterceptor implements XContextMenuInterceptor {
+public class ContextMenuInterceptor implements XContextMenuInterceptor
+{
- private com.sun.star.awt.XBitmap myBitmap;
-
- public ContextMenuInterceptor( com.sun.star.awt.XBitmap aBitmap ) {
- myBitmap = aBitmap;
- }
-
- public ContextMenuInterceptorAction notifyContextMenuExecute(
- com.sun.star.ui.ContextMenuExecuteEvent aEvent ) throws RuntimeException
+ private com.sun.star.awt.XBitmap myBitmap;
+
+ public ContextMenuInterceptor(com.sun.star.awt.XBitmap aBitmap)
+ {
+ myBitmap = aBitmap;
+ }
+
+ public ContextMenuInterceptorAction notifyContextMenuExecute(
+ com.sun.star.ui.ContextMenuExecuteEvent aEvent) throws RuntimeException
{
- try
+ try
{
// Retrieve context menu container and query for service factory to
// create sub menus, menu entries and separators
com.sun.star.container.XIndexContainer xContextMenu = aEvent.ActionTriggerContainer;
com.sun.star.lang.XMultiServiceFactory xMenuElementFactory =
- (com.sun.star.lang.XMultiServiceFactory)UnoRuntime.queryInterface(
- com.sun.star.lang.XMultiServiceFactory.class, xContextMenu );
-
- if ( xMenuElementFactory != null )
+ UnoRuntime.queryInterface(com.sun.star.lang.XMultiServiceFactory.class, xContextMenu);
+
+ if (xMenuElementFactory != null)
{
-
+
// create root menu entry for sub menu and sub menu
com.sun.star.beans.XPropertySet xRootMenuEntry =
- (XPropertySet)UnoRuntime.queryInterface(
- com.sun.star.beans.XPropertySet.class,
- xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger" ));
-
+ UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger"));
+
// create a line separator for our new help sub menu
com.sun.star.beans.XPropertySet xSeparator =
- (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
- com.sun.star.beans.XPropertySet.class,
- xMenuElementFactory.createInstance("com.sun.star.ui.ActionTriggerSeparator" ) );
- Short aSeparatorType = new Short( ActionTriggerSeparatorType.LINE );
- xSeparator.setPropertyValue( "SeparatorType", (Object)aSeparatorType );
-
+ UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTriggerSeparator"));
+ Short aSeparatorType = new Short(ActionTriggerSeparatorType.LINE);
+ xSeparator.setPropertyValue("SeparatorType", (Object) aSeparatorType);
+
// query sub menu for index container to get access
com.sun.star.container.XIndexContainer xSubMenuContainer =
- (com.sun.star.container.XIndexContainer)UnoRuntime.queryInterface(
- com.sun.star.container.XIndexContainer.class,
- xMenuElementFactory.createInstance("com.sun.star.ui.ActionTriggerContainer" ));
-
+ UnoRuntime.queryInterface(com.sun.star.container.XIndexContainer.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTriggerContainer"));
+
// intialize root menu entry "Help"
- xRootMenuEntry.setPropertyValue( "Text", new String( "Help" ));
- xRootMenuEntry.setPropertyValue( "CommandURL", new String( "slot:5410" ));
- xRootMenuEntry.setPropertyValue( "HelpURL", new String( "5410" ));
- xRootMenuEntry.setPropertyValue( "SubContainer", (Object)xSubMenuContainer );
- xRootMenuEntry.setPropertyValue( "Image", myBitmap );
-
+ xRootMenuEntry.setPropertyValue("Text", ("Help"));
+ xRootMenuEntry.setPropertyValue("CommandURL", ("slot:5410"));
+ xRootMenuEntry.setPropertyValue("HelpURL", ("5410"));
+ xRootMenuEntry.setPropertyValue("SubContainer", (Object) xSubMenuContainer);
+ xRootMenuEntry.setPropertyValue("Image", myBitmap);
+
// create menu entries for the new sub menu
// intialize help/content menu entry
// entry "Content"
- XPropertySet xMenuEntry = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class, xMenuElementFactory.createInstance (
- "com.sun.star.ui.ActionTrigger" ));
- xMenuEntry.setPropertyValue( "Text", new String( "Content" ));
- xMenuEntry.setPropertyValue( "CommandURL", new String( "slot:5401" ));
- xMenuEntry.setPropertyValue( "HelpURL", new String( "5401" ));
-
+ XPropertySet xMenuEntry = UnoRuntime.queryInterface(XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger"));
+ xMenuEntry.setPropertyValue("Text", ("Content"));
+ xMenuEntry.setPropertyValue("CommandURL", ("slot:5401"));
+ xMenuEntry.setPropertyValue("HelpURL", ("5401"));
+
// insert menu entry to sub menu
- xSubMenuContainer.insertByIndex ( 0, (Object)xMenuEntry );
-
+ xSubMenuContainer.insertByIndex(0, (Object) xMenuEntry);
+
// intialize help/help agent
// entry "Help Agent"
- xMenuEntry = (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
- com.sun.star.beans.XPropertySet.class,
- xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger" ));
- xMenuEntry.setPropertyValue( "Text", new String( "Help Agent" ));
- xMenuEntry.setPropertyValue( "CommandURL", new String( "slot:5962" ));
- xMenuEntry.setPropertyValue( "HelpURL", new String( "5962" ));
-
+ xMenuEntry = UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger"));
+ xMenuEntry.setPropertyValue("Text", ("Help Agent"));
+ xMenuEntry.setPropertyValue("CommandURL", ("slot:5962"));
+ xMenuEntry.setPropertyValue("HelpURL", ("5962"));
+
// insert menu entry to sub menu
- xSubMenuContainer.insertByIndex( 1, (Object)xMenuEntry );
+ xSubMenuContainer.insertByIndex(1, (Object) xMenuEntry);
// intialize help/tips
// entry "Tips"
- xMenuEntry = (com.sun.star.beans.XPropertySet)UnoRuntime.queryInterface(
- com.sun.star.beans.XPropertySet.class,
- xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger" ));
- xMenuEntry.setPropertyValue( "Text", new String( "Tips" ));
- xMenuEntry.setPropertyValue( "CommandURL", new String( "slot:5404" ));
- xMenuEntry.setPropertyValue( "HelpURL", new String( "5404" ));
+ xMenuEntry = UnoRuntime.queryInterface(com.sun.star.beans.XPropertySet.class, xMenuElementFactory.createInstance("com.sun.star.ui.ActionTrigger"));
+ xMenuEntry.setPropertyValue("Text", ("Tips"));
+ xMenuEntry.setPropertyValue("CommandURL", ("slot:5404"));
+ xMenuEntry.setPropertyValue("HelpURL", ("5404"));
// insert menu entry to sub menu
- xSubMenuContainer.insertByIndex ( 2, (Object)xMenuEntry );
-
+ xSubMenuContainer.insertByIndex(2, (Object) xMenuEntry);
+
// add separator into the given context menu
- xContextMenu.insertByIndex ( 0, (Object)xSeparator );
-
+ xContextMenu.insertByIndex(0, (Object) xSeparator);
+
// add new sub menu into the given context menu
- xContextMenu.insertByIndex ( 0, (Object)xRootMenuEntry );
-
+ xContextMenu.insertByIndex(0, (Object) xRootMenuEntry);
+
// The controller should execute the modified context menu and stop notifying other
// interceptors.
- return com.sun.star.ui.ContextMenuInterceptorAction.EXECUTE_MODIFIED ;
+ return com.sun.star.ui.ContextMenuInterceptorAction.EXECUTE_MODIFIED;
}
}
- catch ( com.sun.star.beans.UnknownPropertyException ex )
+ catch (com.sun.star.beans.UnknownPropertyException ex)
{
// do something useful
// we used a unknown property
}
- catch ( com.sun.star.lang.IndexOutOfBoundsException ex )
+ catch (com.sun.star.lang.IndexOutOfBoundsException ex)
{
// do something useful
// we used an invalid index for accessing a container
}
- catch ( com.sun.star.uno.Exception ex )
+ catch (com.sun.star.uno.Exception ex)
{
// something strange has happend!
}
- catch ( java.lang.Throwable ex )
+ catch (java.lang.Throwable ex)
{
- // catch java exceptions � do something useful
+ // catch java exceptions do something useful
}
-
+
return com.sun.star.ui.ContextMenuInterceptorAction.IGNORED;
}
}
diff --git a/framework/qa/complex/contextMenuInterceptor/makefile.mk b/framework/qa/complex/contextMenuInterceptor/makefile.mk
index f8dcaf26d2..574d986414 100644
--- a/framework/qa/complex/contextMenuInterceptor/makefile.mk
+++ b/framework/qa/complex/contextMenuInterceptor/makefile.mk
@@ -25,53 +25,39 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = ContextMenuInterceptor
-PRJNAME = framework
-PACKAGE = contextMenuInterceptor
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = ContextMenuInterceptor.java CheckContextMenuInterceptor.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_contextMenuInterceptor
-# --- Parameters for the test --------------------------------------
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/contextMenuInterceptor
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand \
- "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ CheckContextMenuInterceptor.java
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+# put here all other files
+JAVAFILES = $(JAVATESTFILES) \
+ ContextMenuInterceptor.java
-# replace $/ with . in package name
-CT_PACKAGE = -o $(PACKAGE:s\$/\.\)
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
+# OOoRunner.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# start the runner application
-CT_APP = org.openoffice.Runner
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-# --- Targets ------------------------------------------------------
+.END
-.INCLUDE : target.mk
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-RUN: run
+ALLTAR : javatest
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) -tdoc \\margritte\qaapi\workspace\qadev\testdocs $(CT_PACKAGE).CheckContextMenuInterceptor
+.END
diff --git a/framework/qa/complex/contextMenuInterceptor/space-metal.jpg b/framework/qa/complex/contextMenuInterceptor/space-metal.jpg
new file mode 100644
index 0000000000..d233443890
--- /dev/null
+++ b/framework/qa/complex/contextMenuInterceptor/space-metal.jpg
Binary files differ
diff --git a/framework/qa/complex/desktop/DesktopTerminate.java b/framework/qa/complex/desktop/DesktopTerminate.java
index f63c2adef2..b5c0a73595 100755
--- a/framework/qa/complex/desktop/DesktopTerminate.java
+++ b/framework/qa/complex/desktop/DesktopTerminate.java
@@ -27,51 +27,46 @@
package complex.desktop;
-import com.sun.star.lang.XServiceInfo;
-import com.sun.star.lang.XInitialization;
-import com.sun.star.uno.Type;
-import com.sun.star.uno.Any;
-import com.sun.star.lang.XTypeProvider;
-import com.sun.star.lang.XSingleServiceFactory;
import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.lang.XComponent;
import com.sun.star.frame.XDesktop;
-import com.sun.star.frame.XFramesSupplier;
-import com.sun.star.frame.XFrames;
-import com.sun.star.registry.XRegistryKey;
-import com.sun.star.comp.loader.FactoryHelper;
-import com.sun.star.container.XIndexAccess;
-import com.sun.star.beans.XPropertySet;
import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.AnyConverter;
-import com.sun.star.frame.XComponentLoader;
-import com.sun.star.awt.Rectangle;
-import com.sun.star.util.XCloseable;
-import helper.ConfigurationRead;
-import complexlib.ComplexTestCase;
import helper.OfficeProvider;
//import complex.persistent_window_states.helper.DocumentHandle;
+// ---------- junit imports -----------------
+import org.junit.After;
+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.*;
+// ------------------------------------------
+
/**
* Parameters:
* <ul>
* <li>NoOffice=yes - StarOffice is not started initially.</li>
* </ul>
*/
-public class DesktopTerminate extends ComplexTestCase {
+public class DesktopTerminate
+{
private XMultiServiceFactory xMSF;
- private OfficeProvider oProvider;
- private int iOfficeCloseTime = 0;
-
+ private int iOfficeCloseTime = 1000;
+
/**
* A frunction to tell the framework, which test functions are available.
* Right now, it's only 'checkPersistentWindowState'.
* @return All test methods.
*/
- public String[] getTestMethodNames() {
- return new String[]{"checkPersistentWindowState"};
- }
+// public String[] getTestMethodNames()
+// {
+// return new String[]
+// {
+// "checkPersistentWindowState"
+// };
+// }
/**
* Test if all available document types change the
@@ -94,65 +89,107 @@ public class DesktopTerminate extends ComplexTestCase {
* - close office
* - Test finished
*/
- public void checkPersistentWindowState()
+ @Test public void checkPersistentWindowState()
{
- try {
-
- log.println("Connect the first time.");
- log.println("AppExecCommand: " + (String)param.get("AppExecutionCommand"));
- log.println("ConnString: " + (String)param.get("ConnectionString"));
- oProvider = new OfficeProvider();
- iOfficeCloseTime = param.getInt("OfficeCloseTime");
- if ( iOfficeCloseTime == 0 ) {
- iOfficeCloseTime = 1000;
+ try
+ {
+
+ System.out.println("Connect the first time.");
+// System.out.println("AppExecCommand: " + (String) param.get("AppExecutionCommand"));
+// System.out.println("ConnString: " + (String) param.get("ConnectionString"));
+// oProvider = new OfficeProvider();
+// iOfficeCloseTime = param.getInt("OfficeCloseTime");
+// if (iOfficeCloseTime == 0)
+// {
+// iOfficeCloseTime = 1000;
+// }
+
+ if (!connect())
+ {
+ return;
+ }
+
+ if (!disconnect())
+ {
+ return;
}
-
- if (!connect()) return;
-
- if (!disconnect()) return;
}
- catch(Exception e) {
+ catch (Exception e)
+ {
e.printStackTrace();
}
}
- private boolean connect() {
- try {
- xMSF = (XMultiServiceFactory)oProvider.getManager(param);
- try {
+ private boolean connect()
+ {
+ try
+ {
+ xMSF = getMSF();
+ try
+ {
Thread.sleep(10000);
}
- catch(java.lang.InterruptedException e) {}
+ catch (java.lang.InterruptedException e)
+ {
+ }
}
- catch (java.lang.Exception e) {
- log.println(e.getClass().getName());
- log.println("Message: " + e.getMessage());
- failed("Cannot connect the Office.");
+ catch (java.lang.Exception e)
+ {
+ System.out.println(e.getClass().getName());
+ System.out.println("Message: " + e.getMessage());
+ fail("Cannot connect the Office.");
return false;
}
return true;
}
- private boolean disconnect() {
- try {
+ private boolean disconnect()
+ {
+ try
+ {
XDesktop desk = null;
- desk = (XDesktop) UnoRuntime.queryInterface(
- XDesktop.class, xMSF.createInstance(
- "com.sun.star.frame.Desktop"));
+ desk = UnoRuntime.queryInterface(XDesktop.class, xMSF.createInstance("com.sun.star.frame.Desktop"));
desk.terminate();
- log.println("Waiting " + iOfficeCloseTime + " milliseconds for the Office to close down");
- try {
+ System.out.println("Waiting " + iOfficeCloseTime + " milliseconds for the Office to close down");
+ try
+ {
Thread.sleep(iOfficeCloseTime);
}
- catch(java.lang.InterruptedException e) {}
+ catch (java.lang.InterruptedException e)
+ {
+ }
xMSF = null;
}
- catch (java.lang.Exception e) {
+ catch (java.lang.Exception e)
+ {
e.printStackTrace();
- failed("Cannot dispose the Office.");
+ fail("Cannot dispose the Office.");
return false;
}
return true;
}
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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()");
+ // don't do a tearDown here, desktop is already terminated.
+ // connection.tearDown();
+ }
+
+ private static final OfficeConnection connection = new OfficeConnection();
+
}
diff --git a/framework/qa/complex/desktop/makefile.mk b/framework/qa/complex/desktop/makefile.mk
index 3ad4801eb0..74db8d34e1 100755
--- a/framework/qa/complex/desktop/makefile.mk
+++ b/framework/qa/complex/desktop/makefile.mk
@@ -25,55 +25,38 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = DesktopTerminate
-PRJNAME = $(TARGET)
-PACKAGE = complex$/desktop
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = DesktopTerminate.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-
-# --- Parameters for the test --------------------------------------
-
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_desktop
+
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/desktop
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ DesktopTerminate.java
-# start the runner application
-CT_APP = org.openoffice.Runner
+# put here all other files
+JAVAFILES = $(JAVATESTFILES)
-# --- Targets ------------------------------------------------------
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+#JARFILES = ridl.jar unoil.jar jurt.jar juh.jar jut.jar java_uno.jar \
+# OOoRunner.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-.INCLUDE : target.mk
+.END
-RUN: run
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) -NoOffice yes $(CT_TESTBASE) $(CT_TEST)
+ALLTAR : javatest
+.END
diff --git a/framework/qa/complex/dispatches/helper/Interceptor.java b/framework/qa/complex/dispatches/Interceptor.java
index c4eec8f946..f7edf93cf7 100644
--- a/framework/qa/complex/dispatches/helper/Interceptor.java
+++ b/framework/qa/complex/dispatches/Interceptor.java
@@ -32,19 +32,18 @@ package complex.dispatches;
import com.sun.star.beans.PropertyValue;
// exceptions
-import com.sun.star.uno.Exception;
-import com.sun.star.uno.RuntimeException;
-
-// interfaces
-import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.DispatchDescriptor;
import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
import com.sun.star.frame.XDispatchProviderInterceptor;
-import com.sun.star.frame.XDispatchProviderInterception;
import com.sun.star.frame.XInterceptorInfo;
+import com.sun.star.frame.XStatusListener;
+
+// interfaces
+
// helper
-import com.sun.star.uno.UnoRuntime;
-import share.LogWriter;
+import com.sun.star.util.URL;
// others
//import java.lang.*;
@@ -54,10 +53,10 @@ import share.LogWriter;
/**
* implements a configurable interceptor for dispatch events.
*/
-public class Interceptor implements com.sun.star.frame.XDispatchProvider,
- com.sun.star.frame.XDispatch,
- com.sun.star.frame.XDispatchProviderInterceptor,
- com.sun.star.frame.XInterceptorInfo
+public class Interceptor implements XDispatchProvider,
+ XDispatch,
+ XDispatchProviderInterceptor,
+ XInterceptorInfo
{
// ____________________
@@ -88,8 +87,8 @@ public class Interceptor implements com.sun.star.frame.XDispatchProvider,
The slave can be used inside queryDispatch() to forward requests,
which are not handled by this interceptor instance.
*/
- private com.sun.star.frame.XDispatchProvider m_xSlave = null;
- private com.sun.star.frame.XDispatchProvider m_xMaster = null;
+ private XDispatchProvider m_xSlave = null;
+ private XDispatchProvider m_xMaster = null;
// ____________________
@@ -107,20 +106,14 @@ public class Interceptor implements com.sun.star.frame.XDispatchProvider,
*/
private boolean m_bIsRegistered = false;
- // ____________________
-
- /** used for log output.
- */
- private LogWriter m_aLog;
// ____________________
/** ctor
* It's initialize an object of this class with default values.
*/
- public Interceptor(LogWriter aLog)
+ public Interceptor()
{
- m_aLog = aLog;
}
// ____________________
@@ -134,27 +127,27 @@ public class Interceptor implements com.sun.star.frame.XDispatchProvider,
// ____________________
/** XDispatchProviderInterceptor */
- public synchronized com.sun.star.frame.XDispatchProvider getSlaveDispatchProvider()
+ public synchronized XDispatchProvider getSlaveDispatchProvider()
{
- m_aLog.println("Interceptor.getSlaveDispatchProvider() called");
+ System.out.println("Interceptor.getSlaveDispatchProvider() called");
return m_xSlave;
}
// ____________________
/** XDispatchProviderInterceptor */
- public synchronized com.sun.star.frame.XDispatchProvider getMasterDispatchProvider()
+ public synchronized XDispatchProvider getMasterDispatchProvider()
{
- m_aLog.println("Interceptor.getMasterDispatchProvider() called");
+ System.out.println("Interceptor.getMasterDispatchProvider() called");
return m_xMaster;
}
// ____________________
/** XDispatchProviderInterceptor */
- public synchronized void setSlaveDispatchProvider(com.sun.star.frame.XDispatchProvider xSlave)
+ public synchronized void setSlaveDispatchProvider(XDispatchProvider xSlave)
{
- m_aLog.println("Interceptor.setSlaveDispatchProvider("+xSlave+") called");
+ System.out.println("Interceptor.setSlaveDispatchProvider("+xSlave+") called");
if (xSlave != null)
{
@@ -162,7 +155,9 @@ public class Interceptor implements com.sun.star.frame.XDispatchProvider,
m_bIsRegistered = true;
}
else
+ {
m_bIsRegistered = false;
+ }
m_xSlave = xSlave;
}
@@ -170,9 +165,9 @@ public class Interceptor implements com.sun.star.frame.XDispatchProvider,
// ____________________
/** XDispatchProviderInterceptor */
- public synchronized void setMasterDispatchProvider(com.sun.star.frame.XDispatchProvider xMaster)
+ public synchronized void setMasterDispatchProvider(XDispatchProvider xMaster)
{
- m_aLog.println("Interceptor.setMasterDispatchProvider("+xMaster+") called");
+ System.out.println("Interceptor.setMasterDispatchProvider("+xMaster+") called");
m_xMaster = xMaster;
}
@@ -180,25 +175,25 @@ public class Interceptor implements com.sun.star.frame.XDispatchProvider,
/** XDispatchProvider
*/
- public synchronized com.sun.star.frame.XDispatch queryDispatch(com.sun.star.util.URL aURL ,
+ public synchronized XDispatch queryDispatch(URL aURL ,
String sTargetFrameName,
int nSearchFlags )
{
- m_aLog.println("Interceptor.queryDispatch('"+aURL.Complete+"', '"+sTargetFrameName+"', "+nSearchFlags+") called");
+ System.out.println("Interceptor.queryDispatch('"+aURL.Complete+"', '"+sTargetFrameName+"', "+nSearchFlags+") called");
if (impl_isBlockedURL(aURL.Complete))
{
- m_aLog.println("Interceptor.queryDispatch(): URL blocked => returns NULL");
+ System.out.println("Interceptor.queryDispatch(): URL blocked => returns NULL");
return null;
}
if (m_xSlave != null)
{
- m_aLog.println("Interceptor.queryDispatch(): ask slave ...");
+ System.out.println("Interceptor.queryDispatch(): ask slave ...");
return m_xSlave.queryDispatch(aURL, sTargetFrameName, nSearchFlags);
}
- m_aLog.println("Interceptor.queryDispatch(): no idea => returns this");
+ System.out.println("Interceptor.queryDispatch(): no idea => returns this");
return this;
}
@@ -206,12 +201,12 @@ public class Interceptor implements com.sun.star.frame.XDispatchProvider,
/** XDispatchProvider
*/
- public com.sun.star.frame.XDispatch[] queryDispatches(com.sun.star.frame.DispatchDescriptor[] lRequests)
+ public XDispatch[] queryDispatches(DispatchDescriptor[] lRequests)
{
int i = 0;
int c = lRequests.length;
- com.sun.star.frame.XDispatch[] lResults = new com.sun.star.frame.XDispatch[c];
+ XDispatch[] lResults = new XDispatch[c];
for (i=0; i<c; ++i)
{
lResults[i] = queryDispatch(lRequests[i].FeatureURL ,
@@ -226,30 +221,30 @@ public class Interceptor implements com.sun.star.frame.XDispatchProvider,
/** XDispatch
*/
- public synchronized void dispatch(com.sun.star.util.URL aURL ,
- com.sun.star.beans.PropertyValue[] lArguments)
+ public synchronized void dispatch(URL aURL ,
+ PropertyValue[] lArguments)
{
- m_aLog.println("Interceptor.dispatch('"+aURL.Complete+"') called");
+ System.out.println("Interceptor.dispatch('"+aURL.Complete+"') called");
}
// ____________________
/** XDispatch
*/
- public synchronized void addStatusListener(com.sun.star.frame.XStatusListener xListener,
+ public synchronized void addStatusListener(XStatusListener xListener,
com.sun.star.util.URL aURL )
{
- m_aLog.println("Interceptor.addStatusListener(..., '"+aURL.Complete+"') called");
+ System.out.println("Interceptor.addStatusListener(..., '"+aURL.Complete+"') called");
}
// ____________________
/** XDispatch
*/
- public synchronized void removeStatusListener(com.sun.star.frame.XStatusListener xListener,
+ public synchronized void removeStatusListener(XStatusListener xListener,
com.sun.star.util.URL aURL )
{
- m_aLog.println("Interceptor.removeStatusListener(..., '"+aURL.Complete+"') called");
+ System.out.println("Interceptor.removeStatusListener(..., '"+aURL.Complete+"') called");
}
// ____________________
@@ -332,7 +327,9 @@ public class Interceptor implements com.sun.star.frame.XDispatchProvider,
for (i=0; i<c; ++i)
{
if (impl_match(sURL, lBlockedURLs[i]))
+ {
return true;
+ }
}
return false;
diff --git a/framework/qa/complex/dispatches/checkdispatchapi.java b/framework/qa/complex/dispatches/checkdispatchapi.java
index ef612c8cc1..0084739f1b 100644
--- a/framework/qa/complex/dispatches/checkdispatchapi.java
+++ b/framework/qa/complex/dispatches/checkdispatchapi.java
@@ -24,110 +24,119 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-
package complex.dispatches;
-import com.sun.star.frame.*;
-import com.sun.star.lang.*;
-import com.sun.star.util.*;
-import com.sun.star.beans.*;
-import com.sun.star.uno.*;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.DispatchInformation;
+import com.sun.star.frame.XComponentLoader;
+import com.sun.star.frame.XDispatchInformationProvider;
+import com.sun.star.frame.XDispatchProviderInterception;
+import com.sun.star.frame.XDispatchProviderInterceptor;
+import com.sun.star.frame.XFrame;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.util.XCloseable;
+import complex.dispatches.Interceptor;
+import java.util.HashMap;
+
+
-import java.util.*;
-import complexlib.ComplexTestCase;
-import helper.*;
+// ---------- junit imports -----------------
+import org.junit.After;
+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.*;
+// ------------------------------------------
//-----------------------------------------------
/** @short Check the interface XDispatchInformationProvider
- @descr Because there exists more then one implementation of a dispatch
- object, we have to test all these implementations ...
+@descr Because there exists more then one implementation of a dispatch
+object, we have to test all these implementations ...
*/
-public class checkdispatchapi extends ComplexTestCase
+public class checkdispatchapi
{
//-------------------------------------------
// some const
-
+
//-------------------------------------------
// member
-
- /** points to the global uno service manager. */
+ /** points to the global uno service manager. */
private XMultiServiceFactory m_xMSF = null;
private connectivity.tools.HsqlDatabase db;
-
/** can be used to create new test frames. */
private XFrame m_xDesktop = null;
-
/** provides XDispatchInformationProvider interface. */
private XFrame m_xFrame = null;
//-------------------------------------------
// test environment
-
//-------------------------------------------
/** @short A function to tell the framework,
- which test functions are available.
-
- @return All test methods.
- @todo Think about selection of tests from outside ...
+ which test functions are available.
+
+ @return All test methods.
+ @todo Think about selection of tests from outside ...
*/
- public String[] getTestMethodNames()
- {
- return new String[]
- {
- "checkDispatchInfoOfWriter",
- "checkDispatchInfoOfCalc",
- "checkDispatchInfoOfDraw",
- "checkDispatchInfoOfImpress",
- "checkDispatchInfoOfMath",
- "checkDispatchInfoOfChart",
- "checkDispatchInfoOfBibliography",
- "checkDispatchInfoOfQueryDesign",
- "checkDispatchInfoOfTableDesign",
- "checkDispatchInfoOfFormGridView",
- "checkDispatchInfoOfDataSourceBrowser",
- "checkDispatchInfoOfRelationDesign",
- "checkDispatchInfoOfBasic",
- "checkDispatchInfoOfStartModule",
- "checkInterceptorLifeTime",
- "checkInterception"
- };
- }
-
+// public String[] getTestMethodNames()
+// {
+// return new String[]
+// {
+// "checkDispatchInfoOfWriter",
+// "checkDispatchInfoOfCalc",
+// "checkDispatchInfoOfDraw",
+// "checkDispatchInfoOfImpress",
+// "checkDispatchInfoOfMath",
+// "checkDispatchInfoOfChart",
+// "checkDispatchInfoOfBibliography",
+// "checkDispatchInfoOfQueryDesign",
+// "checkDispatchInfoOfTableDesign",
+// "checkDispatchInfoOfFormGridView",
+// "checkDispatchInfoOfDataSourceBrowser",
+// "checkDispatchInfoOfRelationDesign",
+// "checkDispatchInfoOfBasic",
+// "checkDispatchInfoOfStartModule",
+// "checkInterceptorLifeTime",
+// "checkInterception"
+// };
+// }
+
//-------------------------------------------
/** @short Create the environment for following tests.
- @descr create an empty test frame, where we can load
- different components inside.
+ @descr create an empty test frame, where we can load
+ different components inside.
*/
- public void before()
+ @Before public void before()
{
try
{
// get uno service manager from global test environment
- m_xMSF = (XMultiServiceFactory)param.getMSF();
+ m_xMSF = getMSF();
db = new connectivity.tools.HsqlDatabase(m_xMSF);
// create desktop
- m_xDesktop = (XFrame)UnoRuntime.queryInterface(
- XFrame.class,
- m_xMSF.createInstance("com.sun.star.frame.Desktop"));
+ m_xDesktop = UnoRuntime.queryInterface(XFrame.class, m_xMSF.createInstance("com.sun.star.frame.Desktop"));
m_xFrame = impl_createNewFrame();
}
- catch(java.lang.Throwable ex)
+ catch (java.lang.Throwable ex)
{
- failed("Cant initialize test environment.");
+ fail("Cant initialize test environment.");
}
}
//-------------------------------------------
/** @short close the environment.
*/
- public void after()
+ @After public void after()
{
db.close();
impl_closeFrame(m_xFrame);
@@ -135,109 +144,115 @@ public class checkdispatchapi extends ComplexTestCase
}
//-------------------------------------------
- public void checkDispatchInfoOfWriter()
+ @Test public void checkDispatchInfoOfWriter()
{
impl_checkDispatchInfoOfXXX("private:factory/swriter");
}
//-------------------------------------------
- public void checkDispatchInfoOfCalc()
+ @Test public void checkDispatchInfoOfCalc()
{
impl_checkDispatchInfoOfXXX("private:factory/scalc");
}
//-------------------------------------------
- public void checkDispatchInfoOfDraw()
+ @Test public void checkDispatchInfoOfDraw()
{
impl_checkDispatchInfoOfXXX("private:factory/sdraw");
}
//-------------------------------------------
- public void checkDispatchInfoOfImpress()
+ @Test public void checkDispatchInfoOfImpress()
{
impl_checkDispatchInfoOfXXX("private:factory/simpress");
}
//-------------------------------------------
- public void checkDispatchInfoOfChart()
+ @Test public void checkDispatchInfoOfChart()
{
impl_checkDispatchInfoOfXXX("private:factory/schart");
}
//-------------------------------------------
- public void checkDispatchInfoOfMath()
+ @Test public void checkDispatchInfoOfMath()
{
impl_checkDispatchInfoOfXXX("private:factory/smath");
}
//-------------------------------------------
- public void checkDispatchInfoOfDataBase()
+ @Test public void checkDispatchInfoOfDataBase()
{
impl_checkDispatchInfoOfXXX("private:factory/sdatabase");
}
//-------------------------------------------
- public void checkDispatchInfoOfBibliography()
+ @Test public void checkDispatchInfoOfBibliography()
{
impl_checkDispatchInfoOfXXX(".component:Bibliography/View1");
}
//-------------------------------------------
- public void checkDispatchInfoOfQueryDesign()
+ @Test public void checkDispatchInfoOfQueryDesign()
{
callDatabaseDispatch(".component:DB/QueryDesign");
}
//-------------------------------------------
- public void checkDispatchInfoOfTableDesign()
+ @Test public void checkDispatchInfoOfTableDesign()
{
callDatabaseDispatch(".component:DB/TableDesign");
}
//-------------------------------------------
- public void checkDispatchInfoOfFormGridView()
+ @Test public void checkDispatchInfoOfFormGridView()
{
impl_checkDispatchInfoOfXXX(".component:DB/FormGridView");
}
//-------------------------------------------
- public void checkDispatchInfoOfDataSourceBrowser()
+ @Test public void checkDispatchInfoOfDataSourceBrowser()
{
impl_checkDispatchInfoOfXXX(".component:DB/DataSourceBrowser");
}
//-------------------------------------------
- public void checkDispatchInfoOfRelationDesign()
+ @Test public void checkDispatchInfoOfRelationDesign()
{
callDatabaseDispatch(".component:DB/RelationDesign");
}
//-------------------------------------------
+
private void callDatabaseDispatch(String url)
{
try
{
final PropertyValue args = new PropertyValue();
args.Name = "ActiveConnection";
- args.Value = (Object)db.defaultConnection();
+ args.Value = (Object) db.defaultConnection();
XFrame xFrame = impl_createNewFrame();
- impl_loadIntoFrame(xFrame, url, new PropertyValue[] { args });
+ impl_loadIntoFrame(xFrame, url, new PropertyValue[]
+ {
+ args
+ });
impl_checkDispatchInfo(xFrame);
impl_closeFrame(xFrame);
- } catch(java.lang.Exception e ) {
- }
+ }
+ catch (java.lang.Exception e)
+ {
+ }
}
//-------------------------------------------
- public void checkDispatchInfoOfBasic()
+ @Test public void checkDispatchInfoOfBasic()
{
Object aComponent = impl_createUNOComponent("com.sun.star.script.BasicIDE");
impl_checkDispatchInfo(aComponent);
}
//-------------------------------------------
- public void checkDispatchInfoOfStartModule()
+ @Test public void checkDispatchInfoOfStartModule()
{
Object aComponent = impl_createUNOComponent("com.sun.star.frame.StartModule");
impl_checkDispatchInfo(aComponent);
@@ -250,60 +265,56 @@ public class checkdispatchapi extends ComplexTestCase
// xInterceptor. Otherwhise we cant check some internal states of aInterceptor at the end of this method, because
// it was already killed .-)
- Interceptor aInterceptor = new Interceptor(log);
- com.sun.star.frame.XDispatchProviderInterceptor xInterceptor = (com.sun.star.frame.XDispatchProviderInterceptor)UnoRuntime.queryInterface(
- com.sun.star.frame.XDispatchProviderInterceptor.class,
- aInterceptor);
+ Interceptor aInterceptor = new Interceptor();
+ XDispatchProviderInterceptor xInterceptor = UnoRuntime.queryInterface(XDispatchProviderInterceptor.class, aInterceptor);
- com.sun.star.frame.XFrame xFrame = impl_createNewFrame();
- com.sun.star.frame.XDispatchProviderInterception xInterception = (com.sun.star.frame.XDispatchProviderInterception)UnoRuntime.queryInterface(
- com.sun.star.frame.XDispatchProviderInterception.class,
- xFrame);
+ XFrame xFrame = impl_createNewFrame();
+ XDispatchProviderInterception xInterception = UnoRuntime.queryInterface(XDispatchProviderInterception.class, xFrame);
xInterception.registerDispatchProviderInterceptor(xInterceptor);
impl_closeFrame(xFrame);
- int nRegCount = aInterceptor.getRegistrationCount();
+ int nRegCount = aInterceptor.getRegistrationCount();
boolean bIsRegistered = aInterceptor.isRegistered();
- log.println("registration count = "+nRegCount );
- log.println("is registered ? = "+bIsRegistered);
+ System.out.println("registration count = " + nRegCount);
+ System.out.println("is registered ? = " + bIsRegistered);
if (nRegCount < 1)
- failed("Interceptor was never registered.");
+ {
+ fail("Interceptor was never registered.");
+ }
if (bIsRegistered)
- failed("Interceptor was not deregistered automaticly on closing the corresponding frame.");
+ {
+ fail("Interceptor was not deregistered automaticly on closing the corresponding frame.");
+ }
- log.println("Destruction of interception chain works as designed .-)");
+ System.out.println("Destruction of interception chain works as designed .-)");
}
//-------------------------------------------
public void checkInterception()
{
- String [] lDisabledURLs = new String [1];
- lDisabledURLs[0] = ".uno:Open";
-
- log.println("create and initialize interceptor ...");
- Interceptor aInterceptor = new Interceptor(log);
+ String[] lDisabledURLs = new String[1];
+ lDisabledURLs[0] = ".uno:Open";
+
+ System.out.println("create and initialize interceptor ...");
+ Interceptor aInterceptor = new Interceptor();
aInterceptor.setURLs4URLs4Blocking(lDisabledURLs);
-
- com.sun.star.frame.XDispatchProviderInterceptor xInterceptor = (com.sun.star.frame.XDispatchProviderInterceptor)UnoRuntime.queryInterface(
- com.sun.star.frame.XDispatchProviderInterceptor.class,
- aInterceptor);
- log.println("create and initialize frame ...");
- com.sun.star.frame.XFrame xFrame = impl_createNewFrame();
+ XDispatchProviderInterceptor xInterceptor = UnoRuntime.queryInterface(XDispatchProviderInterceptor.class, aInterceptor);
+
+ System.out.println("create and initialize frame ...");
+ XFrame xFrame = impl_createNewFrame();
impl_loadIntoFrame(xFrame, "private:factory/swriter", null);
-
- com.sun.star.frame.XDispatchProviderInterception xInterception = (com.sun.star.frame.XDispatchProviderInterception)UnoRuntime.queryInterface(
- com.sun.star.frame.XDispatchProviderInterception.class,
- xFrame);
- log.println("register interceptor ...");
+ XDispatchProviderInterception xInterception = UnoRuntime.queryInterface(XDispatchProviderInterception.class, xFrame);
+
+ System.out.println("register interceptor ...");
xInterception.registerDispatchProviderInterceptor(xInterceptor);
-
- log.println("deregister interceptor ...");
+
+ System.out.println("deregister interceptor ...");
xInterception.releaseDispatchProviderInterceptor(xInterceptor);
}
@@ -311,7 +322,7 @@ public class checkdispatchapi extends ComplexTestCase
private void impl_checkDispatchInfoOfXXX(String sXXX)
{
XFrame xFrame = impl_createNewFrame();
- impl_loadIntoFrame(xFrame, sXXX,null);
+ impl_loadIntoFrame(xFrame, sXXX, null);
impl_checkDispatchInfo(xFrame);
impl_closeFrame(xFrame);
}
@@ -319,26 +330,28 @@ public class checkdispatchapi extends ComplexTestCase
//-------------------------------------------
/** @short load an URL into the current test frame.
*/
- private void impl_loadIntoFrame(XFrame xFrame, String sURL,PropertyValue args[])
+ private void impl_loadIntoFrame(XFrame xFrame, String sURL, PropertyValue args[])
{
- XComponentLoader xLoader = (XComponentLoader)UnoRuntime.queryInterface(
- XComponentLoader.class,
- xFrame);
+ XComponentLoader xLoader = UnoRuntime.queryInterface(XComponentLoader.class, xFrame);
if (xLoader == null)
- failed("Frame does not provide required interface XComponentLoader.");
+ {
+ fail("Frame does not provide required interface XComponentLoader.");
+ }
XComponent xDoc = null;
try
{
xDoc = xLoader.loadComponentFromURL(sURL, "_self", 0, args);
}
- catch(java.lang.Throwable ex)
+ catch (java.lang.Throwable ex)
{
xDoc = null;
}
if (xDoc == null)
- failed("Could not load \""+sURL+"\".");
+ {
+ fail("Could not load \"" + sURL + "\".");
+ }
}
//-------------------------------------------
@@ -351,112 +364,135 @@ public class checkdispatchapi extends ComplexTestCase
{
aComponent = m_xMSF.createInstance(sName);
}
- catch(java.lang.Throwable ex)
+ catch (java.lang.Throwable ex)
{
aComponent = null;
}
if (aComponent == null)
- failed("Could not create UNO component \""+sName+"\".");
+ {
+ fail("Could not create UNO component \"" + sName + "\".");
+ }
return aComponent;
}
//-------------------------------------------
/** @short check the interface XDispatchInformationProvider
- at the specified component.
+ at the specified component.
*/
private void impl_checkDispatchInfo(Object aComponent)
{
- XDispatchInformationProvider xInfoProvider = (XDispatchInformationProvider)UnoRuntime.queryInterface(
- XDispatchInformationProvider.class,
- aComponent);
+ XDispatchInformationProvider xInfoProvider = UnoRuntime.queryInterface(XDispatchInformationProvider.class, aComponent);
if (xInfoProvider == null)
{
// Warning
- log.println("Warning:\tComponent does not provide the [optional!] interface XDispatchInformationProvider.");
+ System.out.println("Warning:\tComponent does not provide the [optional!] interface XDispatchInformationProvider.");
return;
}
try
{
short[] lGroups = xInfoProvider.getSupportedCommandGroups();
- int c1 = lGroups.length;
- int i1 = 0;
- for (i1=0; i1<c1; ++i1)
+ int c1 = lGroups.length;
+ int i1 = 0;
+ for (i1 = 0; i1 < c1; ++i1)
{
- short nGroup = lGroups[i1];
+ short nGroup = lGroups[i1];
DispatchInformation[] lInfos = xInfoProvider.getConfigurableDispatchInformation(nGroup);
- int c2 = lInfos.length;
- int i2 = 0;
+ int c2 = lInfos.length;
+ int i2 = 0;
// check for empty lists
// Warning
if (lInfos.length < 1)
- log.println("Warning:\tCould not get any DispatchInformation for group ["+nGroup+"].");
+ {
+ System.out.println("Warning:\tCould not get any DispatchInformation for group [" + nGroup + "].");
+ }
// check for duplicates (and by the way, if the info item match the requested group)
HashMap aCheckMap = new HashMap(c2);
- for (i2=0; i2<c2; ++i2)
+ for (i2 = 0; i2 < c2; ++i2)
{
DispatchInformation aInfo = lInfos[i2];
if (aInfo.GroupId != nGroup)
{
// Error
- failed("At least one DispatchInformation item does not match the requested group.\n\trequested group=["+nGroup+
- "] returned groupd=["+aInfo.GroupId+"] command=\""+aInfo.Command+"\"", true); // true => dont break this test
+ fail("At least one DispatchInformation item does not match the requested group.\n\trequested group=[" + nGroup
+ + "] returned groupd=[" + aInfo.GroupId + "] command=\"" + aInfo.Command + "\""); // true => dont break this test
continue;
}
if (aCheckMap.containsKey(aInfo.Command))
{
// Error
- failed("Found a duplicate item: group=["+aInfo.GroupId+"] command=\""+aInfo.Command+"\"", true); // true => dont break this test
+ fail("Found a duplicate item: group=[" + aInfo.GroupId + "] command=\"" + aInfo.Command + "\""); // true => dont break this test
continue;
}
aCheckMap.put(aInfo.Command, aInfo.Command);
- log.println("\t["+aInfo.GroupId+"] \""+aInfo.Command+"\"");
+ System.out.println("\t[" + aInfo.GroupId + "] \"" + aInfo.Command + "\"");
}
}
}
- catch(java.lang.Throwable ex)
+ catch (java.lang.Throwable ex)
{
- failed("Exception caught during using XDispatchInformationProvider.");
- ex.printStackTrace();
+ fail("Exception caught during using XDispatchInformationProvider.");
+ // ex.printStackTrace();
}
}
//-------------------------------------------
- private synchronized com.sun.star.frame.XFrame impl_createNewFrame()
+ private synchronized XFrame impl_createNewFrame()
{
- com.sun.star.frame.XFrame xFrame = null;
+ XFrame xFrame = null;
try
{
xFrame = m_xDesktop.findFrame("_blank", 0);
xFrame.getContainerWindow().setVisible(true);
}
- catch(java.lang.Throwable ex)
+ catch (java.lang.Throwable ex)
{
- failed("Could not create the frame instance.");
+ fail("Could not create the frame instance.");
}
return xFrame;
- }
+ }
//-------------------------------------------
- private synchronized void impl_closeFrame(com.sun.star.frame.XFrame xFrame)
+ private synchronized void impl_closeFrame(XFrame xFrame)
{
- com.sun.star.util.XCloseable xClose = (com.sun.star.util.XCloseable)UnoRuntime.queryInterface(
- com.sun.star.util.XCloseable.class,
- xFrame);
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, xFrame);
try
{
xClose.close(false);
}
- catch(com.sun.star.util.CloseVetoException exVeto)
+ catch (com.sun.star.util.CloseVetoException exVeto)
{
- failed("Test frame couldn't be closed successfully.");
+ fail("Test frame couldn't be closed successfully.");
}
}
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
}
diff --git a/framework/qa/complex/dispatches/helper/makefile.mk b/framework/qa/complex/dispatches/helper/makefile.mk
index be761c54fa..2b2ccab5eb 100644
--- a/framework/qa/complex/dispatches/helper/makefile.mk
+++ b/framework/qa/complex/dispatches/helper/makefile.mk
@@ -24,10 +24,10 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ = ..$/..$/..$/..
+PRJ = ../../../..
TARGET = checkdispatchapi
PRJNAME = framework
-PACKAGE = complex$/dispatches$/helper
+PACKAGE = complex/dispatches/helper
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
@@ -35,10 +35,9 @@ PACKAGE = complex$/dispatches$/helper
#----- compile .java files -----------------------------------------
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
- Generator.jar OOoRunner.jar
+JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar Generator.jar
JAVAFILES = Interceptor.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
MAXLINELENGTH = 100000
diff --git a/framework/qa/complex/dispatches/makefile.mk b/framework/qa/complex/dispatches/makefile.mk
index 87eba000cf..6a5ff79dd7 100644
--- a/framework/qa/complex/dispatches/makefile.mk
+++ b/framework/qa/complex/dispatches/makefile.mk
@@ -24,69 +24,108 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = checkdispatchapi
-PRJNAME = framework
-PACKAGE = complex$/dispatches
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
- OOoRunner.jar mysql.jar ConnectivityTools.jar
-JAVAFILES = checkdispatchapi.java
-
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-SUBDIRS=helper
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-# --- Parameters for the test --------------------------------------
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_dispatches
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/dispatches
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ checkdispatchapi.java
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+# put here all other files
+JAVAFILES = $(JAVATESTFILES) \
+ Interceptor.java
-# start the runner application
-CT_APP = org.openoffice.Runner
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar ConnectivityTools.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# --- Targets ------------------------------------------------------
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-.IF "$(depend)" == ""
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-.ELSE
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-.ENDIF
+.END
-.INCLUDE : target.mk
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-#$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
-# cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
-# jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
+ALLTAR : javatest
-RUN: run
+.END
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
+# PRJ = ..$/..$/..
+# TARGET = checkdispatchapi
+# PRJNAME = framework
+# PACKAGE = complex$/dispatches
+#
+# # --- Settings -----------------------------------------------------
+# .INCLUDE: settings.mk
+#
+#
+# #----- compile .java files -----------------------------------------
+#
+# JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
+# OOoRunner.jar mysql.jar ConnectivityTools.jar
+# JAVAFILES = checkdispatchapi.java
+#
+# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+#
+# SUBDIRS=helper
+#
+# #----- make a jar from compiled files ------------------------------
+#
+# MAXLINELENGTH = 100000
+#
+# JARCLASSDIRS = $(PACKAGE)
+# JARTARGET = $(TARGET).jar
+# JARCOMPRESS = TRUE
+#
+# # --- Parameters for the test --------------------------------------
+#
+# # start an office if the parameter is set for the makefile
+# .IF "$(OFFICE)" == ""
+# CT_APPEXECCOMMAND =
+# .ELSE
+# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
+# .ENDIF
+#
+# # test base is java complex
+# CT_TESTBASE = -TestBase java_complex
+#
+# # test looks something like the.full.package.TestName
+# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+#
+# # start the runner application
+# CT_APP = org.openoffice.Runner
+#
+# # --- Targets ------------------------------------------------------
+#
+# .IF "$(depend)" == ""
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
+# .ELSE
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
+# .ENDIF
+#
+# .INCLUDE : target.mk
+#
+# #$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
+# # cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
+# # jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
+#
+# RUN: run
+#
+# run:
+# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
+#
+#
+#
diff --git a/framework/qa/complex/disposing/GetServiceWhileDisposingOffice.java b/framework/qa/complex/disposing/GetServiceWhileDisposingOffice.java
index ec7a36d3ba..80d08b4126 100755
--- a/framework/qa/complex/disposing/GetServiceWhileDisposingOffice.java
+++ b/framework/qa/complex/disposing/GetServiceWhileDisposingOffice.java
@@ -28,47 +28,91 @@ package complex.disposing;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.uno.UnoRuntime;
-import complexlib.ComplexTestCase;
import com.sun.star.frame.XDesktop;
+// ---------- junit imports -----------------
+import org.junit.After;
+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.*;
+// ------------------------------------------
+
/**
* This test is for bug110698. The Office is closed and is continually connected
* while it closes. This did let the Office freeze. Now when the Office is
* closed, the connection is refused.
*/
-public class GetServiceWhileDisposingOffice extends ComplexTestCase {
+public class GetServiceWhileDisposingOffice
+{
- public String[] getTestMethodNames() {
- return new String[]{"checkServiceWhileDisposing"};
- }
+// public String[] getTestMethodNames()
+// {
+// return new String[]
+// {
+// "checkServiceWhileDisposing"
+// };
+// }
- public void checkServiceWhileDisposing() {
- XMultiServiceFactory xMSF = (XMultiServiceFactory)param.getMSF();
+ @Test public void checkServiceWhileDisposing()
+ {
+ XMultiServiceFactory xMSF = getMSF();
XDesktop xDesktop = null;
- try {
- xDesktop = (XDesktop)UnoRuntime.queryInterface(XDesktop.class,
- xMSF.createInstance("com.sun.star.frame.Desktop"));
+ try
+ {
+ xDesktop = UnoRuntime.queryInterface(XDesktop.class, xMSF.createInstance("com.sun.star.frame.Desktop"));
}
- catch(com.sun.star.uno.Exception e) {
- failed("Could not create a desktop instance.");
+ catch (com.sun.star.uno.Exception e)
+ {
+ fail("Could not create a desktop instance.");
}
int step = 0;
- try {
- log.println("Start the termination of the Office.");
+ try
+ {
+ System.out.println("Start the termination of the Office.");
xDesktop.terminate();
- for ( ; step<10000; step++ ) {
+ for (; step < 10000; step++)
+ {
Object o = xMSF.createInstance("com.sun.star.frame.Desktop");
}
}
- catch(com.sun.star.lang.DisposedException e) {
- log.println("DisposedException in step: " + step);
- e.printStackTrace();
+ catch (com.sun.star.lang.DisposedException e)
+ {
+ System.out.println("DisposedException in step: " + step);
}
- catch(Exception e) {
- e.printStackTrace();
- failed(e.getMessage());
+ catch (Exception e)
+ {
+ fail(e.getMessage());
}
}
+
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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()");
+ // Office is already terminated.
+ // connection.tearDown();
+ }
+ private static final OfficeConnection connection = new OfficeConnection();
+
}
diff --git a/framework/qa/complex/disposing/makefile.mk b/framework/qa/complex/disposing/makefile.mk
index dac80c08af..f24960421f 100755
--- a/framework/qa/complex/disposing/makefile.mk
+++ b/framework/qa/complex/disposing/makefile.mk
@@ -25,52 +25,37 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = GetServiceWhileDisposingOffice
-PRJNAME = $(TARGET)
-PACKAGE = complex$/disposing
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = $(TARGET).java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-MAXLINELENGTH = 100000
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_disposing
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/disposing
-# --- Parameters for the test --------------------------------------
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ GetServiceWhileDisposingOffice.java
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
+# put here all other files
+JAVAFILES = $(JAVATESTFILES)
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-# start the runner application
-CT_APP = org.openoffice.Runner
+.END
-# --- Targets ------------------------------------------------------
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-.INCLUDE : target.mk
+ALLTAR : javatest
-RUN:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_TEST)
+.END
-run: RUN
diff --git a/framework/qa/complex/framework/autosave/AutoSave.java b/framework/qa/complex/framework/autosave/AutoSave.java
index a1bf20b466..95f1179b2e 100644
--- a/framework/qa/complex/framework/autosave/AutoSave.java
+++ b/framework/qa/complex/framework/autosave/AutoSave.java
@@ -27,24 +27,48 @@
package complex.framework.autosave;
-import com.sun.star.frame.*;
-import com.sun.star.lang.*;
-import com.sun.star.util.*;
-import com.sun.star.beans.*;
-import com.sun.star.uno.*;
-import com.sun.star.sheet.*;
-import com.sun.star.table.*;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.frame.FeatureStateEvent;
+import com.sun.star.frame.XDispatch;
+import com.sun.star.frame.XDispatchProvider;
+import com.sun.star.frame.XModel;
+import com.sun.star.frame.XStatusListener;
+import com.sun.star.frame.XStorable;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.FillDirection;
+import com.sun.star.sheet.XCellSeries;
+import com.sun.star.table.XCellRange;
+import com.sun.star.util.XCloseable;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.util.URL;
+import com.sun.star.util.XURLTransformer;
import java.util.*;
+import util.utils;
+
-import complexlib.*;
-import helper.*;
-import util.*;
+// ---------- junit imports -----------------
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openoffice.test.OfficeConnection;
+import util.SOfficeFactory;
+import static org.junit.Assert.*;
+// ------------------------------------------
//-----------------------------------------------
/** @short Check some use cases of the AutoSave feature
*/
-public class AutoSave extends ComplexTestCase
+public class AutoSave
{
//-------------------------------------------
class AutoSaveListener implements XStatusListener
@@ -64,9 +88,7 @@ public class AutoSave extends ComplexTestCase
{
m_xAutoSave = xAutoSave;
- XURLTransformer xParser = (XURLTransformer)UnoRuntime.queryInterface(
- XURLTransformer.class,
- xSMGR.createInstance("com.sun.star.util.URLTransformer"));
+ XURLTransformer xParser = UnoRuntime.queryInterface(XURLTransformer.class, xSMGR.createInstance("com.sun.star.util.URLTransformer"));
URL[] aURL = new URL[1];
aURL[0] = new URL();
aURL[0].Complete = "vnd.sun.star.autorecovery:/doAutoSave";
@@ -169,13 +191,13 @@ public class AutoSave extends ComplexTestCase
@return All test methods.
@todo Think about selection of tests from outside ...
*/
- public String[] getTestMethodNames()
- {
- return new String[]
- {
- "checkConcurrentAutoSaveToNormalUISave",
- };
- }
+// public String[] getTestMethodNames()
+// {
+// return new String[]
+// {
+// "checkConcurrentAutoSaveToNormalUISave",
+// };
+// }
//-------------------------------------------
/** @short Create the environment for following tests.
@@ -183,22 +205,20 @@ public class AutoSave extends ComplexTestCase
@descr create an empty test frame, where we can load
different components inside.
*/
- public void before()
+ @Before public void before()
{
m_aLog = new Protocol(Protocol.MODE_HTML | Protocol.MODE_STDOUT, Protocol.FILTER_NONE, utils.getUsersTempDir() + "/complex_log_ascii_01.html");
try
{
// get uno service manager from global test environment
- m_xSMGR = (XMultiServiceFactory)param.getMSF();
+ m_xSMGR = getMSF();
// get another helper to e.g. create test documents
m_aSOF = SOfficeFactory.getFactory(m_xSMGR);
// create AutoSave instance
- m_xAutoSave = (XDispatch)UnoRuntime.queryInterface(
- XDispatch.class,
- m_xSMGR.createInstance("com.sun.star.comp.framework.AutoRecovery"));
+ m_xAutoSave = UnoRuntime.queryInterface(XDispatch.class, m_xSMGR.createInstance("com.sun.star.comp.framework.AutoRecovery"));
// prepare AutoSave
// make sure it will be started every 1 min
@@ -209,22 +229,20 @@ public class AutoSave extends ComplexTestCase
aConfig = null;
// is needed to parse dispatch commands
- m_xURLParser = (XURLTransformer)UnoRuntime.queryInterface(
- XURLTransformer.class,
- m_xSMGR.createInstance("com.sun.star.util.URLTransformer"));
+ m_xURLParser = UnoRuntime.queryInterface(XURLTransformer.class, m_xSMGR.createInstance("com.sun.star.util.URLTransformer"));
}
catch(java.lang.Throwable ex)
{
m_aLog.log(ex);
- failed("Couldn't create test environment");
+ fail("Couldn't create test environment");
}
}
//-------------------------------------------
/** @short close the environment.
*/
- public void after()
+ @After public void after()
{
// ???
}
@@ -249,9 +267,7 @@ public class AutoSave extends ComplexTestCase
xSheet.getCellByPosition(0, 1).setFormula("=a1+1");
m_aLog.log("Retrieve big range.");
XCellRange xRange = xSheet.getCellRangeByName("A1:Z9999");
- XCellSeries xSeries = (XCellSeries)UnoRuntime.queryInterface(
- XCellSeries.class,
- xRange);
+ XCellSeries xSeries = UnoRuntime.queryInterface(XCellSeries.class, xRange);
m_aLog.log("Duplicate cells from top to bottom inside range.");
xSeries.fillAuto(FillDirection.TO_BOTTOM, 2);
m_aLog.log("Duplicate cells from left to right inside range.");
@@ -281,12 +297,8 @@ public class AutoSave extends ComplexTestCase
aURL[0].Complete = ".uno:SaveAs";
m_xURLParser.parseStrict(aURL);
- XModel xModel = (XModel)UnoRuntime.queryInterface(
- XModel.class,
- xDoc);
- XDispatchProvider xProvider = (XDispatchProvider)UnoRuntime.queryInterface(
- XDispatchProvider.class,
- xModel.getCurrentController());
+ XModel xModel = UnoRuntime.queryInterface(XModel.class, xDoc);
+ XDispatchProvider xProvider = UnoRuntime.queryInterface(XDispatchProvider.class, xModel.getCurrentController());
XDispatch xDispatch = xProvider.queryDispatch(aURL[0], "_self", 0);
PropertyValue[] lArgs = new PropertyValue[3];
@@ -334,9 +346,7 @@ public class AutoSave extends ComplexTestCase
{
try
{
- XCloseable xClose = (XCloseable)UnoRuntime.queryInterface(
- XCloseable.class,
- xDoc);
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, xDoc);
if (xClose != null)
{
xClose.close(false);
@@ -344,7 +354,9 @@ public class AutoSave extends ComplexTestCase
nRetry = 0;
}
else
+ {
m_aLog.log(Protocol.TYPE_ERROR, "closeDoc() = ERROR. Doc doesnt provide needed interface!");
+ }
}
catch(com.sun.star.util.CloseVetoException exVeto)
{
@@ -402,7 +414,7 @@ public class AutoSave extends ComplexTestCase
* from another thread. So these operations should be started at the same time.
* It should not crash. The AutoSave request must be postphoned.
*/
- public void checkConcurrentAutoSaveToNormalUISave()
+ @Test public void checkConcurrentAutoSaveToNormalUISave()
{
m_aLog.log(Protocol.TYPE_TESTMARK , "AutoSave");
m_aLog.log(Protocol.TYPE_SCOPE_OPEN, "checkConcurrentAutoSaveToNormalUISave()");
@@ -451,4 +463,27 @@ public class AutoSave extends ComplexTestCase
closeDoc(xDoc);
}
}
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
}
diff --git a/framework/qa/complex/framework/autosave/ConfigHelper.java b/framework/qa/complex/framework/autosave/ConfigHelper.java
index 3bc4683f4f..a7f5df8cc7 100644
--- a/framework/qa/complex/framework/autosave/ConfigHelper.java
+++ b/framework/qa/complex/framework/autosave/ConfigHelper.java
@@ -1,6 +1,5 @@
package complex.framework.autosave;
-import java.lang.*;
import com.sun.star.uno.*;
import com.sun.star.lang.*;
import com.sun.star.container.*;
@@ -20,9 +19,7 @@ class ConfigHelper
{
m_xSMGR = xSMGR;
- XMultiServiceFactory xConfigRoot = (XMultiServiceFactory)UnoRuntime.queryInterface(
- XMultiServiceFactory.class,
- m_xSMGR.createInstance("com.sun.star.configuration.ConfigurationProvider"));
+ XMultiServiceFactory xConfigRoot = UnoRuntime.queryInterface(XMultiServiceFactory.class, m_xSMGR.createInstance("com.sun.star.configuration.ConfigurationProvider"));
PropertyValue[] lParams = new PropertyValue[1];
lParams[0] = new PropertyValue();
@@ -31,20 +28,20 @@ class ConfigHelper
Object aConfig;
if (bReadOnly)
- aConfig = xConfigRoot.createInstanceWithArguments(
- "com.sun.star.configuration.ConfigurationAccess",
- lParams);
+ {
+ aConfig = xConfigRoot.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", lParams);
+ }
else
- aConfig = xConfigRoot.createInstanceWithArguments(
- "com.sun.star.configuration.ConfigurationUpdateAccess",
- lParams);
+ {
+ aConfig = xConfigRoot.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess", lParams);
+ }
- m_xConfig = (XHierarchicalNameAccess)UnoRuntime.queryInterface(
- XHierarchicalNameAccess.class,
- aConfig);
+ m_xConfig = UnoRuntime.queryInterface(XHierarchicalNameAccess.class, aConfig);
if (m_xConfig == null)
- throw new com.sun.star.uno.Exception("Could not open configuration \""+sConfigPath+"\"");
+ {
+ throw new com.sun.star.uno.Exception("Could not open configuration \"" + sConfigPath + "\"");
+ }
}
//-----------------------------------------------
@@ -54,9 +51,7 @@ class ConfigHelper
{
try
{
- XPropertySet xPath = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class,
- m_xConfig.getByHierarchicalName(sRelPath));
+ XPropertySet xPath = UnoRuntime.queryInterface(XPropertySet.class, m_xConfig.getByHierarchicalName(sRelPath));
return xPath.getPropertyValue(sKey);
}
catch(com.sun.star.uno.Exception ex)
@@ -73,9 +68,7 @@ class ConfigHelper
{
try
{
- XPropertySet xPath = (XPropertySet)UnoRuntime.queryInterface(
- XPropertySet.class,
- m_xConfig.getByHierarchicalName(sRelPath));
+ XPropertySet xPath = UnoRuntime.queryInterface(XPropertySet.class, m_xConfig.getByHierarchicalName(sRelPath));
xPath.setPropertyValue(sKey, aValue);
}
catch(com.sun.star.uno.Exception ex)
@@ -89,9 +82,7 @@ class ConfigHelper
{
try
{
- XChangesBatch xBatch = (XChangesBatch)UnoRuntime.queryInterface(
- XChangesBatch.class,
- m_xConfig);
+ XChangesBatch xBatch = UnoRuntime.queryInterface(XChangesBatch.class, m_xConfig);
xBatch.commitChanges();
}
catch(com.sun.star.uno.Exception ex)
diff --git a/framework/qa/complex/framework/autosave/makefile.mk b/framework/qa/complex/framework/autosave/makefile.mk
index e903c9ad5f..2e8e3dca1f 100644
--- a/framework/qa/complex/framework/autosave/makefile.mk
+++ b/framework/qa/complex/framework/autosave/makefile.mk
@@ -24,66 +24,104 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ = ..$/..$/..$/..
-TARGET = AutoSave
-PRJNAME = framework
-PACKAGE = complex$/framework$/autosave
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
- OOoRunner.jar mysql.jar
-JAVAFILES = AutoSave.java ConfigHelper.java Protocol.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-# --- Parameters for the test --------------------------------------
-
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+PRJ = ../../../..
+PRJNAME = framework
+TARGET = qa_complex_framework_autosave
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/framework/autosave
-# start the runner application
-CT_APP = org.openoffice.Runner
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ AutoSave.java
-# --- Targets ------------------------------------------------------
+# put here all other files
+JAVAFILES = $(JAVATESTFILES) \
+ ConfigHelper.java \
+ Protocol.java
-.IF "$(depend)" == ""
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-.ELSE
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-.ENDIF
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-.INCLUDE : target.mk
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-#$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
-# cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
-# jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
+.END
-RUN: run
-
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
+ALLTAR : javatest
+.END
+#
+# PRJ = ..$/..$/..$/..
+# TARGET = AutoSave
+# PRJNAME = framework
+# PACKAGE = complex$/framework$/autosave
+#
+# # --- Settings -----------------------------------------------------
+# .INCLUDE: settings.mk
+#
+#
+# #----- compile .java files -----------------------------------------
+#
+# JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
+# OOoRunner.jar mysql.jar
+# JAVAFILES = AutoSave.java ConfigHelper.java Protocol.java
+# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+#
+# #----- make a jar from compiled files ------------------------------
+#
+# MAXLINELENGTH = 100000
+#
+# JARCLASSDIRS = $(PACKAGE)
+# JARTARGET = $(TARGET).jar
+# JARCOMPRESS = TRUE
+#
+# # --- Parameters for the test --------------------------------------
+#
+# # start an office if the parameter is set for the makefile
+# .IF "$(OFFICE)" == ""
+# CT_APPEXECCOMMAND =
+# .ELSE
+# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
+# .ENDIF
+#
+# # test base is java complex
+# CT_TESTBASE = -TestBase java_complex
+#
+# # test looks something like the.full.package.TestName
+# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+#
+# # start the runner application
+# CT_APP = org.openoffice.Runner
+#
+# # --- Targets ------------------------------------------------------
+#
+# .IF "$(depend)" == ""
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
+# .ELSE
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
+# .ENDIF
+#
+# .INCLUDE : target.mk
+#
+# #$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
+# # cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
+# # jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
+#
+# RUN: run
+#
+# run:
+# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST)
+#
+#
+#
diff --git a/framework/qa/complex/framework/recovery/RecoveryTest.java b/framework/qa/complex/framework/recovery/RecoveryTest.java
index 0afd03b525..523975a837 100644
--- a/framework/qa/complex/framework/recovery/RecoveryTest.java
+++ b/framework/qa/complex/framework/recovery/RecoveryTest.java
@@ -84,6 +84,16 @@ import util.SOfficeFactory;
import util.UITools;
import util.utils;
+// ---------- junit imports -----------------
+import org.junit.After;
+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 RecoveryTest extends ComplexTestCase {
static XMultiServiceFactory xMSF;
diff --git a/framework/qa/complex/imageManager/CheckImageManager.java b/framework/qa/complex/imageManager/CheckImageManager.java
index 4dac998623..f2a6cb1f8b 100755
--- a/framework/qa/complex/imageManager/CheckImageManager.java
+++ b/framework/qa/complex/imageManager/CheckImageManager.java
@@ -1,13 +1,5 @@
-package imageManager;
+package complex.imageManager;
-import imageManager.interfaces._XComponent;
-import imageManager.interfaces._XImageManager;
-import imageManager.interfaces._XInitialization;
-import imageManager.interfaces._XTypeProvider;
-import imageManager.interfaces._XUIConfiguration;
-import imageManager.interfaces._XUIConfigurationPersistence;
-import com.sun.star.beans.PropertyValue;
-import com.sun.star.container.XIndexAccess;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XInitialization;
import com.sun.star.lang.XMultiServiceFactory;
@@ -15,125 +7,135 @@ import com.sun.star.lang.XTypeProvider;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XInterface;
import com.sun.star.ui.XImageManager;
-import complexlib.ComplexTestCase;
import com.sun.star.ui.XModuleUIConfigurationManagerSupplier;
import com.sun.star.ui.XUIConfiguration;
import com.sun.star.ui.XUIConfigurationManager;
import com.sun.star.ui.XUIConfigurationPersistence;
-import java.io.PrintWriter;
-import share.LogWriter;
+
+
+// ---------- junit imports -----------------
+import lib.TestParameters;
+import org.junit.After;
+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 CheckImageManager extends ComplexTestCase {
+public class CheckImageManager {
boolean checkUIConfigManager = false;
XMultiServiceFactory xMSF = null;
-
- public void before() {
- xMSF = (XMultiServiceFactory)param.getMSF();
+ /**
+ * The test parameters
+ */
+ private static TestParameters param = null;
+
+ @Before public void before()
+ {
+ xMSF = getMSF();
+ param = new TestParameters();
+ param.put("ServiceFactory", xMSF); // some qadevOOo functions need the ServiceFactory
}
- public String[] getTestMethodNames() {
- return new String[]{"checkImageManagerFromModule"};//, "checkImageManager"};
- }
+// public String[] getTestMethodNames() {
+// return new String[]{"checkImageManagerFromModule"};//, "checkImageManager"};
+// }
- public void checkImageManagerFromModule() {
- log.println(" **** ImageManager from ModuleUIConfigurationManager *** ");
+ @Test public void checkImageManagerFromModule()
+ {
+ System.out.println(" **** ImageManager from ModuleUIConfigurationManager *** ");
XUIConfigurationManager xManager = null;
try {
Object o = (XInterface)xMSF.createInstance(
"com.sun.star.ui.ModuleUIConfigurationManagerSupplier");
XModuleUIConfigurationManagerSupplier xMUICMS =
- (XModuleUIConfigurationManagerSupplier)UnoRuntime.queryInterface(
- XModuleUIConfigurationManagerSupplier.class, o);
+ UnoRuntime.queryInterface(XModuleUIConfigurationManagerSupplier.class, o);
xManager = xMUICMS.getUIConfigurationManager(
"com.sun.star.text.TextDocument");
}
catch(com.sun.star.uno.Exception e) {
- e.printStackTrace((PrintWriter)log);
- failed("Exception. " + e.getMessage());
+ fail("Exception. " + e.getMessage());
}
- XImageManager xImageManager = (XImageManager)UnoRuntime.queryInterface(
- XImageManager.class, xManager.getImageManager());
+ XImageManager xImageManager = UnoRuntime.queryInterface(XImageManager.class, xManager.getImageManager());
performChecks(xImageManager, "ModuleUIConfig", xManager);
}
public void checkImageManager() {
- log.println(" **** ImageManager from UIConfigurationManager *** ");
+ System.out.println(" **** ImageManager from UIConfigurationManager *** ");
XUIConfigurationManager xManager = null;
try {
- xManager = (XUIConfigurationManager)UnoRuntime.queryInterface(
- XUIConfigurationManager.class, xMSF.createInstance(
- "com.sun.star.comp.framework.UIConfigurationManager"));
+ xManager = UnoRuntime.queryInterface(XUIConfigurationManager.class, xMSF.createInstance("com.sun.star.comp.framework.UIConfigurationManager"));
}
catch(com.sun.star.uno.Exception e) {
- e.printStackTrace((PrintWriter)log);
- failed("Exception. " + e.getMessage());
+ fail("Exception. " + e.getMessage());
}
- XImageManager xImageManager = (XImageManager)UnoRuntime.queryInterface(
- XImageManager.class, xManager.getImageManager());
+ XImageManager xImageManager = UnoRuntime.queryInterface(XImageManager.class, xManager.getImageManager());
performChecks(xImageManager, "UIConfig", xManager);
}
private void performChecks(XImageManager xImageManager, String testObjectName, XUIConfigurationManager xManager) {
util.dbg.printInterfaces(xImageManager);
- OXUIConfigurationListenerImpl configListener = new OXUIConfigurationListenerImpl(log, xManager, xMSF);
+ OXUIConfigurationListenerImpl configListener = new OXUIConfigurationListenerImpl(xManager, xMSF);
param.put("XUIConfiguration.XUIConfigurationListenerImpl", configListener);
- XInitialization xInit = (XInitialization)UnoRuntime.queryInterface(XInitialization.class, xImageManager);
- _XInitialization _xInit = new _XInitialization(log, param, xInit);
- assure(testObjectName + "::XInitialization.initialize", _xInit._initialize(), true);
+ XInitialization xInit = UnoRuntime.queryInterface(XInitialization.class, xImageManager);
+ _XInitialization _xInit = new _XInitialization(param, xInit);
+ assertTrue(testObjectName + "::XInitialization.initialize", _xInit._initialize());
// xImageManager is already there, just write a test ;-)
- _XImageManager _xImage = new _XImageManager(log, param, xImageManager);
- assure(testObjectName + "::XImageManager.getAllImageNames", _xImage._getAllImageNames(), true);
- assure(testObjectName + "::XImageManager.getImages", _xImage._getImages(), true);
- assure(testObjectName + "::XImageManager.hasImage", _xImage._hasImage(), true);
- assure(testObjectName + "::XImageManager.insertImages", _xImage._insertImages(), true);
- assure(testObjectName + "::XImageManager.removeImages", _xImage._removeImages(), true);
- assure(testObjectName + "::XImageManager.replaceImages", _xImage._replaceImages(), true);
- assure(testObjectName + "::XImageManager.reset", _xImage._reset(), true);
+ _XImageManager _xImage = new _XImageManager(param, xImageManager);
+ assertTrue(testObjectName + "::XImageManager.getAllImageNames", _xImage._getAllImageNames());
+ assertTrue(testObjectName + "::XImageManager.getImages", _xImage._getImages());
+ assertTrue(testObjectName + "::XImageManager.hasImage", _xImage._hasImage());
+ assertTrue(testObjectName + "::XImageManager.insertImages", _xImage._insertImages());
+ assertTrue(testObjectName + "::XImageManager.removeImages", _xImage._removeImages());
+ assertTrue(testObjectName + "::XImageManager.replaceImages", _xImage._replaceImages());
+ assertTrue(testObjectName + "::XImageManager.reset", _xImage._reset());
- XTypeProvider xType = (XTypeProvider)UnoRuntime.queryInterface(XTypeProvider.class, xImageManager);
- _XTypeProvider _xType = new _XTypeProvider(log,param,xType);
- assure(testObjectName + "::XTypeProvider.getImplementationId", _xType._getImplementationId(), true);
- assure(testObjectName + "::XTypeProvider.getTypes", _xType._getTypes(), true);
+ XTypeProvider xType = UnoRuntime.queryInterface(XTypeProvider.class, xImageManager);
+ _XTypeProvider _xType = new _XTypeProvider(param, xType);
+ assertTrue(testObjectName + "::XTypeProvider.getImplementationId", _xType._getImplementationId());
+ assertTrue(testObjectName + "::XTypeProvider.getTypes", _xType._getTypes());
- XUIConfiguration xUIConfig = (XUIConfiguration)UnoRuntime.queryInterface(XUIConfiguration.class, xImageManager);
- _XUIConfiguration _xUIConfig = new _XUIConfiguration(log, param, xUIConfig);
+ XUIConfiguration xUIConfig = UnoRuntime.queryInterface(XUIConfiguration.class, xImageManager);
+ _XUIConfiguration _xUIConfig = new _XUIConfiguration(param, xUIConfig);
_xUIConfig.before();
- assure(testObjectName + "::XUIConfig.addConfigurationListener", _xUIConfig._addConfigurationListener(), true);
- assure(testObjectName + "::XUIConfig.removeConfigurationListener", _xUIConfig._removeConfigurationListener(), true);
+ assertTrue(testObjectName + "::XUIConfig.addConfigurationListener", _xUIConfig._addConfigurationListener());
+ assertTrue(testObjectName + "::XUIConfig.removeConfigurationListener", _xUIConfig._removeConfigurationListener());
XUIConfigurationPersistence xUIConfigPersistence = (XUIConfigurationPersistence)UnoRuntime.queryInterface(XUIConfiguration.class, xImageManager);
- _XUIConfigurationPersistence _xUIConfigPersistence = new _XUIConfigurationPersistence(log, param, xUIConfigPersistence);
+ _XUIConfigurationPersistence _xUIConfigPersistence = new _XUIConfigurationPersistence(param, xUIConfigPersistence);
_xUIConfigPersistence.before();
- assure(testObjectName + "::XUIConfigPersistence.isModified", _xUIConfigPersistence._isModified(), true);
- assure(testObjectName + "::XUIConfigPersistence.isReadOnly", _xUIConfigPersistence._isReadOnly(), true);
- assure(testObjectName + "::XUIConfigPersistence.reload", _xUIConfigPersistence._reload(), true);
- assure(testObjectName + "::XUIConfigPersistence.store", _xUIConfigPersistence._store(), true);
- assure(testObjectName + "::XUIConfigPersistence.storeToStorage", _xUIConfigPersistence._storeToStorage(), true);
+ assertTrue(testObjectName + "::XUIConfigPersistence.isModified", _xUIConfigPersistence._isModified());
+ // System.out.println(testObjectName + "::XUIConfigPersistence.isReadOnly "+ _xUIConfigPersistence._isReadOnly());
+ assertTrue(testObjectName + "::XUIConfigPersistence.isReadOnly", _xUIConfigPersistence._isReadOnly());
+ assertTrue(testObjectName + "::XUIConfigPersistence.reload", _xUIConfigPersistence._reload());
+ assertTrue(testObjectName + "::XUIConfigPersistence.store", _xUIConfigPersistence._store());
+ assertTrue(testObjectName + "::XUIConfigPersistence.storeToStorage", _xUIConfigPersistence._storeToStorage());
- XComponent xComp = (XComponent)UnoRuntime.queryInterface(XComponent.class, xImageManager);
- _XComponent _xComp = new _XComponent(log, param, xComp);
+ XComponent xComp = UnoRuntime.queryInterface(XComponent.class, xImageManager);
+ _XComponent _xComp = new _XComponent(param, xComp);
_xComp.before();
- assure(testObjectName + "::XComponent.addEventListener", _xComp._addEventListener(), true);
- assure(testObjectName + "::XComponent.removeEventListener", _xComp._removeEventListener(), true);
- assure(testObjectName + "::XComponent.dispose", _xComp._dispose(), true);
+ assertTrue(testObjectName + "::XComponent.addEventListener", _xComp._addEventListener());
+ assertTrue(testObjectName + "::XComponent.removeEventListener", _xComp._removeEventListener());
+ assertTrue(testObjectName + "::XComponent.dispose", _xComp._dispose());
}
class OXUIConfigurationListenerImpl implements _XUIConfiguration.XUIConfigurationListenerImpl {
private boolean triggered = false;
- private LogWriter log = null;
private XUIConfigurationManager xUIManager = null;
private XMultiServiceFactory xMSF = null;
- public OXUIConfigurationListenerImpl(LogWriter _log, XUIConfigurationManager xUIManager, XMultiServiceFactory xMSF) {
- log = _log;
+ public OXUIConfigurationListenerImpl(XUIConfigurationManager xUIManager, XMultiServiceFactory xMSF) {
+
this.xUIManager = xUIManager;
this.xMSF = xMSF;
}
@@ -167,23 +169,23 @@ public class CheckImageManager extends ComplexTestCase {
}
catch(com.sun.star.container.NoSuchElementException e) {
- log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
e.printStackTrace((java.io.PrintWriter)log);
}
catch(com.sun.star.lang.IllegalArgumentException e) {
- log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
e.printStackTrace((java.io.PrintWriter)log);
}
catch(com.sun.star.lang.IllegalAccessException e) {
- log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
e.printStackTrace((java.io.PrintWriter)log);
}
catch(com.sun.star.lang.IndexOutOfBoundsException e) {
- log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
e.printStackTrace((java.io.PrintWriter)log);
}
catch(com.sun.star.lang.WrappedTargetException e) {
- log.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
+ System.out.println("_XUIConfiguration.XUIConfigurationListenerImpl: Exception.");
e.printStackTrace((java.io.PrintWriter)log);
} */
}
@@ -194,4 +196,28 @@ public class CheckImageManager extends ComplexTestCase {
}
}
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
+
}
diff --git a/framework/qa/complex/imageManager/interfaces/_XComponent.java b/framework/qa/complex/imageManager/_XComponent.java
index e86743c7b5..10545f6a27 100755
--- a/framework/qa/complex/imageManager/interfaces/_XComponent.java
+++ b/framework/qa/complex/imageManager/_XComponent.java
@@ -25,11 +25,9 @@
*
************************************************************************/
-package imageManager.interfaces;
+package complex.imageManager;
import com.sun.star.container.XNameContainer;
-import share.LogWriter;
-
import com.sun.star.frame.XDesktop;
import com.sun.star.lang.EventObject;
import com.sun.star.lang.XComponent;
@@ -54,7 +52,6 @@ public class _XComponent {
private XNameContainer xContainer = null;
private XComponent altDispose = null;
TestParameters tEnv = null;
- LogWriter log = null;
boolean listenerDisposed[] = new boolean[2];
String[] Loutput = new String[2];
@@ -78,8 +75,7 @@ public class _XComponent {
XEventListener listener1 = new MyEventListener(0, "EV1");
XEventListener listener2 = new MyEventListener(1, "EV2");
- public _XComponent(LogWriter log, TestParameters tEnv, XComponent oObj) {
- this.log = log;
+ public _XComponent(TestParameters tEnv, XComponent oObj) {
this.tEnv = tEnv;
this.oObj = oObj;
}
@@ -119,10 +115,14 @@ public class _XComponent {
* <code>dispose</code> method call.
*/
public boolean _removeEventListener() {
- if (disposed) return false;
+ if (disposed)
+ {
+ System.out.println("Hint: already disposed.");
+ return false;
+ }
// the second listener should not be called
oObj.removeEventListener( listener2 );
- log.println(Thread.currentThread() + " is removing EL " + listener2);
+ System.out.println(Thread.currentThread() + " is removing EL " + listener2);
return true;
} // finished _removeEventListener()
@@ -142,24 +142,32 @@ public class _XComponent {
public boolean _dispose() {
disposed = false;
- log.println( "begin dispose" + Thread.currentThread());
+ System.out.println( "begin dispose" + Thread.currentThread());
XDesktop oDesk = (XDesktop) tEnv.get("Desktop");
if (oDesk !=null) {
oDesk.terminate();
}
else {
if (altDispose == null)
+ {
oObj.dispose();
+ }
else
+ {
altDispose.dispose();
+ }
}
try {
Thread.sleep(500) ;
} catch (InterruptedException e) {}
- if (Loutput[0]!=null) log.println(Loutput[0]);
- if (Loutput[1]!=null) log.println(Loutput[1]);
- log.println( "end dispose" + Thread.currentThread());
+ if (Loutput[0]!=null){
+ System.out.println(Loutput[0]);
+ }
+ if (Loutput[1]!=null) {
+ System.out.println(Loutput[1]);
+ }
+ System.out.println( "end dispose" + Thread.currentThread());
disposed = true;
// check that dispose() works OK.
diff --git a/framework/qa/complex/imageManager/interfaces/_XImageManager.java b/framework/qa/complex/imageManager/_XImageManager.java
index bc0a124cf3..8e2cb097fa 100755
--- a/framework/qa/complex/imageManager/interfaces/_XImageManager.java
+++ b/framework/qa/complex/imageManager/_XImageManager.java
@@ -24,26 +24,26 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-package imageManager.interfaces;
+package complex.imageManager;
import com.sun.star.graphic.XGraphic;
import com.sun.star.ui.ImageType;
import com.sun.star.ui.XImageManager;
import lib.TestParameters;
-import share.LogWriter;
+
/**
*
*/
public class _XImageManager {
- LogWriter log = null;
+
TestParameters tEnv = null;
String[]imageNames = null;
XGraphic[] xGraphicArray = null;
public XImageManager oObj;
- public _XImageManager(LogWriter log, TestParameters tEnv, XImageManager oObj) {
- this.log = log;
+ public _XImageManager( TestParameters tEnv, XImageManager oObj) {
+
this.tEnv = tEnv;
this.oObj = oObj;
}
@@ -52,7 +52,9 @@ public class _XImageManager {
short s = ImageType.COLOR_NORMAL + ImageType.SIZE_DEFAULT;
imageNames = oObj.getAllImageNames(s);
for (int i=0; i<(imageNames.length>10?10:imageNames.length); i++)
+ {
System.out.println("###### Image: " + imageNames[i]);
+ }
return imageNames != null;
}
@@ -70,11 +72,12 @@ public class _XImageManager {
boolean result = true;
short s = ImageType.COLOR_NORMAL + ImageType.SIZE_DEFAULT;
try { // check the first image names, 10 at max
- for (int i=0; i<(imageNames.length>10?10:imageNames.length); i++)
+ for (int i=0; i<(imageNames.length>10?10:imageNames.length); i++)
+ {
result &= oObj.hasImage(s, imageNames[i]);
+ }
}
catch(com.sun.star.lang.IllegalArgumentException e) {
- e.printStackTrace((java.io.PrintWriter)log);
result = false;
}
return result;
diff --git a/framework/qa/complex/imageManager/interfaces/_XInitialization.java b/framework/qa/complex/imageManager/_XInitialization.java
index 115f581f7e..7af6a0d735 100755
--- a/framework/qa/complex/imageManager/interfaces/_XInitialization.java
+++ b/framework/qa/complex/imageManager/_XInitialization.java
@@ -25,9 +25,9 @@
*
************************************************************************/
-package imageManager.interfaces;
+package complex.imageManager;
+
-import share.LogWriter;
import com.sun.star.lang.XInitialization;
@@ -48,12 +48,12 @@ import lib.TestParameters;
*/
public class _XInitialization {
- LogWriter log = null;
+
TestParameters tEnv = null;
public static XInitialization oObj = null;
- public _XInitialization(LogWriter log, TestParameters tEnv, XInitialization oObj) {
- this.log = log;
+ public _XInitialization(TestParameters tEnv, XInitialization oObj) {
+
this.tEnv = tEnv;
this.oObj = oObj;
}
@@ -75,8 +75,7 @@ public class _XInitialization {
}
} catch (com.sun.star.uno.Exception e) {
- log.println("Exception occured while method calling.") ;
- e.printStackTrace((java.io.PrintWriter)log) ;
+ System.out.println("Exception occured while method calling.") ;
result = false ;
}
diff --git a/framework/qa/complex/imageManager/interfaces/_XTypeProvider.java b/framework/qa/complex/imageManager/_XTypeProvider.java
index 7af00b163e..845d782706 100755
--- a/framework/qa/complex/imageManager/interfaces/_XTypeProvider.java
+++ b/framework/qa/complex/imageManager/_XTypeProvider.java
@@ -25,9 +25,8 @@
*
************************************************************************/
-package imageManager.interfaces;
+package complex.imageManager;
-import share.LogWriter;
import com.sun.star.lang.XTypeProvider;
@@ -46,13 +45,13 @@ import lib.TestParameters;
*/
public class _XTypeProvider {
- LogWriter log = null;
+
TestParameters tEnv = null;
public static XTypeProvider oObj = null;
public static Type[] types = null;
- public _XTypeProvider(LogWriter log, TestParameters tEnv, XTypeProvider oObj) {
- this.log = log;
+ public _XTypeProvider(TestParameters tEnv, XTypeProvider oObj) {
+
this.tEnv = tEnv;
this.oObj = oObj;
}
@@ -63,9 +62,9 @@ public class _XTypeProvider {
*/
public boolean _getImplementationId() {
boolean result = true;
- log.println("testing getImplementationId() ... ");
+ System.out.println("testing getImplementationId() ... ");
- log.println("The ImplementationId is "+oObj.getImplementationId());
+ System.out.println("The ImplementationId is "+oObj.getImplementationId());
result = true;
return result;
@@ -74,24 +73,24 @@ public class _XTypeProvider {
/**
- * Ñalls the method and checks the return value.<p>
+ * Calls the method and checks the return value.<p>
* Has <b>OK</b> status if one of the return value equals to the
* type <code>com.sun.star.lang.XTypeProvider</code>.
*/
public boolean _getTypes() {
boolean result = false;
- log.println("getting Types...");
+ System.out.println("getting Types...");
types = oObj.getTypes();
for (int i=0;i<types.length;i++) {
int k = i+1;
- log.println(k+". Type is "+types[i].toString());
+ System.out.println(k+". Type is "+types[i].toString());
if (types[i].toString().equals
("Type[com.sun.star.lang.XTypeProvider]")) {
result = true;
}
}
if (!result) {
- log.println("Component must provide Type "
+ System.out.println("Component must provide Type "
+"<com.sun.star.lang.XTypeProvider>");
}
diff --git a/framework/qa/complex/imageManager/interfaces/_XUIConfiguration.java b/framework/qa/complex/imageManager/_XUIConfiguration.java
index 1a3936bbc6..da1c81ae25 100755
--- a/framework/qa/complex/imageManager/interfaces/_XUIConfiguration.java
+++ b/framework/qa/complex/imageManager/_XUIConfiguration.java
@@ -25,20 +25,18 @@
*
************************************************************************/
-package imageManager.interfaces;
+package complex.imageManager;
+
-import com.sun.star.lang.XServiceInfo;
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.ui.XModuleUIConfigurationManagerSupplier;
import com.sun.star.ui.XUIConfiguration;
import com.sun.star.ui.XUIConfigurationListener;
import lib.TestParameters;
-import share.LogWriter;
+
public class _XUIConfiguration {
- LogWriter log = null;
+
TestParameters tEnv = null;
public XUIConfiguration oObj;
XUIConfigurationListenerImpl xListener = null;
@@ -51,8 +49,7 @@ public class _XUIConfiguration {
}
- public _XUIConfiguration(LogWriter log, TestParameters tEnv, XUIConfiguration oObj) {
- this.log = log;
+ public _XUIConfiguration(TestParameters tEnv, XUIConfiguration oObj) {
this.tEnv = tEnv;
this.oObj = oObj;
}
diff --git a/framework/qa/complex/imageManager/interfaces/_XUIConfigurationPersistence.java b/framework/qa/complex/imageManager/_XUIConfigurationPersistence.java
index b3fb3a1e76..cb398db23f 100755
--- a/framework/qa/complex/imageManager/interfaces/_XUIConfigurationPersistence.java
+++ b/framework/qa/complex/imageManager/_XUIConfigurationPersistence.java
@@ -25,26 +25,23 @@
*
************************************************************************/
-package imageManager.interfaces;
+package complex.imageManager;
import com.sun.star.embed.XStorage;
-import com.sun.star.lang.XServiceInfo;
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.ui.XModuleUIConfigurationManagerSupplier;
import com.sun.star.ui.XUIConfigurationPersistence;
import lib.TestParameters;
-import share.LogWriter;
+
public class _XUIConfigurationPersistence {
- LogWriter log = null;
+
TestParameters tEnv = null;
public XUIConfigurationPersistence oObj;
private XStorage xStore = null;
- public _XUIConfigurationPersistence(LogWriter log, TestParameters tEnv, XUIConfigurationPersistence oObj) {
- this.log = log;
+ public _XUIConfigurationPersistence(TestParameters tEnv, XUIConfigurationPersistence oObj) {
+
this.tEnv = tEnv;
this.oObj = oObj;
}
@@ -58,7 +55,7 @@ public class _XUIConfigurationPersistence {
oObj.reload();
}
catch(com.sun.star.uno.Exception e) {
- e.printStackTrace((java.io.PrintWriter)log);
+
}
return true;
}
@@ -68,7 +65,7 @@ public class _XUIConfigurationPersistence {
oObj.store();
}
catch(com.sun.star.uno.Exception e) {
- e.printStackTrace((java.io.PrintWriter)log);
+
}
return true;
}
@@ -80,7 +77,7 @@ public class _XUIConfigurationPersistence {
}
catch(com.sun.star.uno.Exception e) {
result = false;
- e.printStackTrace((java.io.PrintWriter)log);
+
}
return result;
}
diff --git a/framework/qa/complex/imageManager/interfaces/makefile.mk b/framework/qa/complex/imageManager/interfaces/makefile.mk
index 039eba5760..f7b6f5ebf0 100755
--- a/framework/qa/complex/imageManager/interfaces/makefile.mk
+++ b/framework/qa/complex/imageManager/interfaces/makefile.mk
@@ -25,10 +25,10 @@
#
#*************************************************************************
-PRJ = ..$/..$/..$/..
+PRJ = ../../../..
TARGET = ImageManager
PRJNAME = framework
-PACKAGE = imageManager$/interfaces
+PACKAGE = complex/imageManager/interfaces
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
@@ -37,10 +37,16 @@ PACKAGE = imageManager$/interfaces
#----- compile .java files -----------------------------------------
JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = _XComponent.java _XUIConfiguration.java _XImageManager.java \
- _XUIConfigurationPersistence.java _XInitialization.java _XTypeProvider.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+JAVAFILES = \
+_XComponent.java \
+_XUIConfiguration.java \
+_XImageManager.java \
+_XUIConfigurationPersistence.java \
+_XInitialization.java \
+_XTypeProvider.java
+
+JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
#----- make a jar from compiled files ------------------------------
diff --git a/framework/qa/complex/imageManager/makefile.mk b/framework/qa/complex/imageManager/makefile.mk
index 3b508b718d..133e522b13 100755
--- a/framework/qa/complex/imageManager/makefile.mk
+++ b/framework/qa/complex/imageManager/makefile.mk
@@ -25,55 +25,99 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = ImageManager
-PRJNAME = framework
-PACKAGE = imageManager
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
-JAVAFILES = CheckImageManager.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-MAXLINELENGTH = 100000
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_imageManager
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/imageManager
-# --- Parameters for the test --------------------------------------
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ CheckImageManager.java
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand \
- "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
+# put here all other files
+JAVAFILES = $(JAVATESTFILES) \
+ _XComponent.java \
+ _XImageManager.java \
+ _XInitialization.java \
+ _XTypeProvider.java \
+ _XUIConfiguration.java \
+ _XUIConfigurationPersistence.java
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# replace $/ with . in package name
-CT_PACKAGE = -o $(PACKAGE:s\$/\.\)
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-# start the runner application
-CT_APP = org.openoffice.Runner
+.END
-# --- Targets ------------------------------------------------------
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-.INCLUDE : target.mk
+ALLTAR : javatest
-RUN: run
+.END
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_PACKAGE).CheckImageManager
+#
+#
+# PRJ = ..$/..$/..
+# TARGET = ImageManager
+# PRJNAME = framework
+# PACKAGE = imageManager
+#
+# # --- Settings -----------------------------------------------------
+# .INCLUDE: settings.mk
+#
+#
+# #----- compile .java files -----------------------------------------
+#
+# JARFILES = mysql.jar mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
+# JAVAFILES = CheckImageManager.java
+# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+#
+# #----- make a jar from compiled files ------------------------------
+#
+# MAXLINELENGTH = 100000
+#
+# JARCLASSDIRS = $(PACKAGE)
+# JARTARGET = $(TARGET).jar
+# JARCOMPRESS = TRUE
+#
+# # --- Parameters for the test --------------------------------------
+#
+# # start an office if the parameter is set for the makefile
+# .IF "$(OFFICE)" == ""
+# CT_APPEXECCOMMAND =
+# .ELSE
+# CT_APPEXECCOMMAND = -AppExecutionCommand \
+# "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
+# .ENDIF
+#
+# # test base is java complex
+# CT_TESTBASE = -TestBase java_complex
+#
+# # replace $/ with . in package name
+# CT_PACKAGE = -o $(PACKAGE:s\$/\.\)
+#
+# # start the runner application
+# CT_APP = org.openoffice.Runner
+#
+# # --- Targets ------------------------------------------------------
+#
+# .INCLUDE : target.mk
+#
+# RUN: run
+#
+# run:
+# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_PACKAGE).CheckImageManager
+#
+#
diff --git a/framework/qa/complex/loadAllDocuments/CheckXComponentLoader.java b/framework/qa/complex/loadAllDocuments/CheckXComponentLoader.java
index f65612e247..3df97b0542 100644
--- a/framework/qa/complex/loadAllDocuments/CheckXComponentLoader.java
+++ b/framework/qa/complex/loadAllDocuments/CheckXComponentLoader.java
@@ -28,30 +28,17 @@
package complex.loadAllDocuments;
import com.sun.star.beans.PropertyValue;
-import com.sun.star.beans.XPropertySet;
-import com.sun.star.comp.loader.FactoryHelper;
import com.sun.star.frame.FrameSearchFlag;
import com.sun.star.frame.XComponentLoader;
import com.sun.star.frame.XFrame;
import com.sun.star.frame.XStorable;
import com.sun.star.io.XInputStream;
import com.sun.star.lang.XComponent;
-import com.sun.star.lang.XInitialization;
import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.lang.XServiceInfo;
-import com.sun.star.lang.XSingleServiceFactory;
-import com.sun.star.lang.XTypeProvider;
-import com.sun.star.registry.XRegistryKey;
-import com.sun.star.uno.Type;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.util.XCloseable;
import com.sun.star.ucb.XSimpleFileAccess;
-import complex.loadAllDocuments.helper.InteractionHandler;
-import complex.loadAllDocuments.helper.StatusIndicator;
-import complex.loadAllDocuments.helper.StreamSimulator;
-
-import complexlib.ComplexTestCase;
import helper.URLHelper;
@@ -59,9 +46,19 @@ import java.io.File;
import java.io.InputStreamReader;
import java.util.Enumeration;
-import java.util.StringTokenizer;
import java.util.Vector;
+// ---------- junit imports -----------------
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openoffice.test.OfficeConnection;
+import org.openoffice.test.OfficeFileUrl;
+import static org.junit.Assert.*;
+// ------------------------------------------
+
//-----------------------------------------------
/** @short Check the interface method XComponentLoader.loadComponentFromURL()
@@ -80,7 +77,7 @@ import java.util.Vector;
@todo We need a further test for accessing UNC pathes on windows!
*/
-public class CheckXComponentLoader extends ComplexTestCase
+public class CheckXComponentLoader
{
//-------------------------------------------
// some const
@@ -96,7 +93,7 @@ public class CheckXComponentLoader extends ComplexTestCase
/** File/URL separators. */
private static final String fs_url = "/";
- private static final String fs_sys = System.getProperty("file.separator");
+ // private static final String fs_sys = System.getProperty("file.separator");
/** used for testing password protected files. */
private static final String SUFFIX_PASSWORD_TEMPFILE = "password_";
@@ -140,18 +137,18 @@ public class CheckXComponentLoader extends ComplexTestCase
@return All test methods.
@todo Think about selection of tests from outside ...
*/
- public String[] getTestMethodNames()
- {
- // TODO think about trigger of sub-tests from outside
- return new String[]
- {
- "checkURLEncoding" ,
- "checkURLHandling" ,
- "checkUsingOfMediaDescriptor",
- "checkStreamLoading" ,
- "checkLoadingWithPassword"
- };
- }
+// public String[] getTestMethodNames()
+// {
+// // TODO think about trigger of sub-tests from outside
+// return new String[]
+// {
+// "checkURLEncoding" ,
+// "checkURLHandling" ,
+// "checkUsingOfMediaDescriptor",
+// "checkStreamLoading" ,
+// "checkLoadingWithPassword"
+// };
+// }
//-------------------------------------------
/** @short Create the environment for following tests.
@@ -159,59 +156,51 @@ public class CheckXComponentLoader extends ComplexTestCase
@descr Use either a component loader from desktop or
from frame
*/
- public void before()
+ @Before public void before()
{
// get uno service manager from global test environment
- m_xMSF = (XMultiServiceFactory)param.getMSF();
+ m_xMSF = getMSF();
// create stream provider
try
{
- m_xStreamProvider = (XSimpleFileAccess)UnoRuntime.queryInterface(
- XSimpleFileAccess.class,
- m_xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess"));
+ m_xStreamProvider = UnoRuntime.queryInterface(XSimpleFileAccess.class, m_xMSF.createInstance("com.sun.star.ucb.SimpleFileAccess"));
}
catch(java.lang.Throwable ex)
{
- ex.printStackTrace();
- failed("Could not create a stream provider instance.");
+ fail("Could not create a stream provider instance.");
}
// create desktop instance
try
{
- m_xDesktop = (XFrame)UnoRuntime.queryInterface(
- XFrame.class,
- m_xMSF.createInstance("com.sun.star.frame.Desktop"));
+ m_xDesktop = UnoRuntime.queryInterface(XFrame.class, m_xMSF.createInstance("com.sun.star.frame.Desktop"));
}
catch(java.lang.Throwable ex)
{
- ex.printStackTrace();
- failed("Could not create the desktop instance.");
+ fail("Could not create the desktop instance.");
}
// create frame instance
- m_xFrame = m_xDesktop.findFrame("testFrame_componentLoader" ,
+ m_xFrame = m_xDesktop.findFrame("testFrame_componentLoader",
FrameSearchFlag.TASKS | FrameSearchFlag.CREATE);
- if (m_xFrame==null)
- failed("Couldn't create test frame.");
+ assertNotNull("Couldn't create test frame.", m_xFrame);
// define default loader for testing
// TODO think about using of bot loader instances!
- m_xLoader = (XComponentLoader)UnoRuntime.queryInterface(
- XComponentLoader.class,
- m_xDesktop);
- if (m_xLoader==null)
- failed("Desktop service doesnt support needed component loader interface.");
+ m_xLoader = UnoRuntime.queryInterface(XComponentLoader.class, m_xDesktop);
+ assertNotNull("Desktop service doesnt support needed component loader interface.", m_xLoader);
// get temp path for this environment
- m_sTempPath = (String) param.get("TempPath");
- m_sTempPath = "."+fs_sys;
+ final String tempDirURL = util.utils.getOfficeTemp/*Dir*/(getMSF());
+ m_sTempPath = graphical.FileHelper.getSystemPathFromFileURL(tempDirURL);
+ // m_sTempPath = "."+fs_sys;
// get all files from the given directory
// TODO URLHelper should ignore directories!
m_lTestFiles = new Vector();
- m_sTestDocPath = (String) param.get("TestDocumentPath");
+ final String sTestDocURL = OfficeFileUrl.getAbsolute(new File("testdocuments"));
+ m_sTestDocPath = graphical.FileHelper.getSystemPathFromFileURL(sTestDocURL);
try
{
File aBaseDir = new File(m_sTestDocPath);
@@ -232,36 +221,35 @@ public class CheckXComponentLoader extends ComplexTestCase
}
String sCompletePath = aFile.getAbsolutePath();
- String sSubPath = sCompletePath.substring(nBasePathLength + 1);
+ String sSubPath = sCompletePath.substring(nBasePathLength);
// Some test files are checked into CVS. ignore CVS helper files!
- if (sSubPath.indexOf("CVS") > -1)
- continue;
+// if (sSubPath.indexOf("CVS") > -1)
+// {
+// continue;
+// }
m_lTestFiles.add(sSubPath);
}
}
catch(java.lang.Throwable ex)
{
- ex.printStackTrace();
- failed("Couldn't find test documents.");
+ fail("Couldn't find test documents.");
}
}
//-------------------------------------------
/** @short close the environment.
*/
- public void after()
+ @After public void after()
{
- XCloseable xClose = (XCloseable)UnoRuntime.queryInterface(
- XCloseable.class,
- m_xFrame);
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, m_xFrame);
try
{
xClose.close(false);
}
catch(com.sun.star.util.CloseVetoException exVeto)
- { failed("Test frame couldn't be closed successfully."); }
+ { fail("Test frame couldn't be closed successfully."); }
m_xFrame = null;
m_xLoader = null;
@@ -270,7 +258,7 @@ public class CheckXComponentLoader extends ComplexTestCase
//-------------------------------------------
/** @short Look for files in the given directory for loading.
*/
- public void checkUsingOfMediaDescriptor()
+ @Test public void checkUsingOfMediaDescriptor()
{
InteractionHandler xHandler = new InteractionHandler();
StatusIndicator xIndicator = new StatusIndicator(StatusIndicator.SHOWSTATUS_LOG);
@@ -292,17 +280,26 @@ public class CheckXComponentLoader extends ComplexTestCase
Enumeration aSnapshot = m_lTestFiles.elements();
while (aSnapshot.hasMoreElements())
{
- File aSysFile = new File(m_sTestDocPath+fs_sys+(String)aSnapshot.nextElement());
+ File aSysFile = new File(m_sTestDocPath, (String)aSnapshot.nextElement());
String sURL = URLHelper.getFileURLFromSystemPath(aSysFile);
- loadURL(m_xLoader, RESULT_VALID_DOC, sURL, "_blank", 0, lProps);
-
- // Its not needed to reset this using states!
- // Its done internaly ...
- if (!xIndicator.wasUsed())
- failed("External progress was not used for loading.");
- if (xHandler.wasUsed())
- failed("External interaction handler was not used for loading.");
+ if (/*! (sURL.endsWith(".jpg") ||
+ sURL.endsWith(".gif"))*/
+ true
+ )
+ {
+ loadURL(m_xLoader, RESULT_VALID_DOC, sURL, "_blank", 0, lProps);
+ // Its not needed to reset this using states!
+ // Its done internaly ...
+ if (!xIndicator.wasUsed())
+ {
+ System.out.println("External progress was not used for loading.");
+ }
+ if (xHandler.wasUsed())
+ {
+ System.out.println("External interaction handler was not used for loading.");
+ }
+ }
}
}
@@ -313,17 +310,23 @@ public class CheckXComponentLoader extends ComplexTestCase
String sPrefix )
{
File aDir = new File(sTempPath);
- if (!aDir.exists())
- failed("Could not access temp directory \""+sTempPath+"\".");
+ aDir.mkdirs();
+// if (!aDir.exists())
+// {
+// fail("Could not access temp directory \"" + sTempPath + "\".");
+// }
+ // TODO: create a temp file which not exist!
for (int i=0; i<999999; ++i)
{
File aTempFile = new File(aDir, sSuffix+i+sPrefix);
if (!aTempFile.exists())
+ {
return aTempFile.getAbsolutePath();
+ }
}
- failed("Seems that all temp file names are currently in use!");
+ fail("Seems that all temp file names are currently in use!");
return null;
}
@@ -360,25 +363,19 @@ public class CheckXComponentLoader extends ComplexTestCase
{
// load it
xDoc = xLoader.loadComponentFromURL(sSourceURL, "_blank", 0, lLoadProps);
- if (xDoc == null)
- failed("Could create office document, which should be saved as temp one.");
+ assertNotNull("Could create office document, which should be saved as temp one.", xDoc);
// save it as temp file
- XStorable xStore = (XStorable)UnoRuntime.queryInterface(
- XStorable.class,
- xDoc);
+ XStorable xStore = UnoRuntime.queryInterface(XStorable.class, xDoc);
xStore.storeAsURL(sTargetURL, lSaveProps);
// Dont forget to close this file. Otherwise the temp file is locked!
- XCloseable xClose = (XCloseable)UnoRuntime.queryInterface(
- XCloseable.class,
- xDoc);
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, xDoc);
xClose.close(false);
}
catch(java.lang.Throwable ex)
{
- ex.printStackTrace();
- failed("Could not create temp office document.");
+ fail("Could not create temp office document.");
}
}
@@ -389,7 +386,7 @@ public class CheckXComponentLoader extends ComplexTestCase
as password for the ftp connection,
or - if none given a default one.
*/
- public void checkLoadingWithPassword()
+ @Test public void checkLoadingWithPassword()
{
String sTempFile = impl_getTempFileName(m_sTempPath, SUFFIX_PASSWORD_TEMPFILE, PREFIX_PASSWORD_TEMPFILE);
File aTestFile = new File(sTempFile);
@@ -414,14 +411,14 @@ public class CheckXComponentLoader extends ComplexTestCase
lArgs2[0].Value = Boolean.TRUE;
loadURL(m_xLoader, RESULT_VALID_DOC, sTestURL, "_blank", 0, lArgs1);
- loadURL(m_xLoader, RESULT_EMPTY_DOC, sTestURL, "_blank", 0, lArgs2);
+// TODO: wrong? loadURL(m_xLoader, RESULT_EMPTY_DOC, sTestURL, "_blank", 0, lArgs2);
}
/**
* Check URL encoding. The first filename that matches "*.sxw"
* is used as source for several encodings.
*/
- public void checkURLEncoding() {
+ @Test public void checkURLEncoding() {
PropertyValue[] lProps = new PropertyValue[1];
lProps[0] = new PropertyValue();
@@ -432,21 +429,17 @@ public class CheckXComponentLoader extends ComplexTestCase
InputStreamReader in = new InputStreamReader(System.in);
String sSystemEncoding = in.getEncoding();
- log.println("This system's encoding: " + sSystemEncoding);
+ System.out.println("This system's encoding: " + sSystemEncoding);
- if (m_lTestFiles == null) {
- failed("Found an empty directory. There are no files for testing.");
+ assertNotNull("Found an empty directory. There are no files for testing.", m_lTestFiles);
- return;
- }
// get a file name as byte array
Enumeration aSnapshot = m_lTestFiles.elements();
byte[] baURL = null;
while (aSnapshot.hasMoreElements()) {
- File aFile = new File(m_sTestDocPath + fs_sys +
- aSnapshot.nextElement());
+ File aFile = new File(m_sTestDocPath, (String)aSnapshot.nextElement());
String sFile = URLHelper.getFileURLFromSystemPath(aFile);
// take the first sxw file as stream
@@ -457,11 +450,7 @@ public class CheckXComponentLoader extends ComplexTestCase
}
}
- if (baURL == null) {
- failed("Found no file to load. Cannot test.");
-
- return;
- }
+ assertNotNull("Found no file to load. Cannot test.", baURL);
//construct several different encoded strings
String[] sEncoding = new String[] {
@@ -477,7 +466,7 @@ public class CheckXComponentLoader extends ComplexTestCase
for (int i = 0; i < sEncoding.length; i = i + 2) {
try {
String encURL = new String(baURL, sEncoding[i]);
- log.println("ENC[" + sEncoding[i] + "]");
+ System.out.println("ENC[" + sEncoding[i] + "]");
if (sEncoding[i + 1].equals("TRUE")) {
loadURL(m_xLoader, RESULT_VALID_DOC, encURL, "_blank", 0,
@@ -488,8 +477,8 @@ public class CheckXComponentLoader extends ComplexTestCase
lProps);
}
} catch (java.io.UnsupportedEncodingException e) {
- failed("Unsopported Encoding: " + sEncoding[i] +
- "\n Not able to test encoding on this platform.", true);
+ fail("Unsopported Encoding: " + sEncoding[i] +
+ "\n Not able to test encoding on this platform.");
}
}
}
@@ -502,107 +491,107 @@ public class CheckXComponentLoader extends ComplexTestCase
* 4. FTP URLs
* 5. HTTP URLs
*/
- public void checkURLHandling() {
- PropertyValue[] lProps = new PropertyValue[1];
-
- lProps[0] = new PropertyValue();
- lProps[0].Name = "Hidden";
- lProps[0].Value = Boolean.TRUE;
-
- log.println("check possible but unsupported URLs");
-
- String[] sIllegalArgs = new String[] {
- "slot:5000", "slot:10909", ".uno:SaveAs", ".uno:Open",
- };
- loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sIllegalArgs,
- "_blank", 0, lProps);
-
- log.println("check stupid URLs");
-
- sIllegalArgs = new String[] {
- "slot:xxx", "slot:111111111", ".uno:save_as", ".uno:open_this",
- ".UnO:*",
- };
- loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sIllegalArgs,
- "_blank", 0, lProps);
-
- String[] sEmptyDocs = new String[] {
- "mailo:hansi.meier@germany.sun.com", "file:/c:\\test/file.cxx",
- "file:///c|:\\test/file.cxx", "http_server://staroffice-doc\\",
- "c:\\\\test///\\test.sxw", "news_:staroffice-doc",
- "newsletter@blubber", "private_factory/swriter",
- "private:factory//swriter", "private:factory/swriter/___",
- "c:\\test\\test.sxw", "macro:///ImportWizard.Main.Main",
- "macro:///Euro.AutoPilotRun.StartAutoPilot",
- "service:com.sun.star.frame.Frame",
- "mailto:steffen.grund@germany.sun.com", "news:staroffice-doc",
- "macro:/ExportWizard", "macro://Euro.AutoPilotRun.StartAutoPilot",
- "service:com.sun.star.frame."
- };
-
- //with cws_loadenv01 changed to IllegalArgumentException
- loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sEmptyDocs, "_blank", 0,
- lProps);
-
- log.println("check case senstive URLs");
-
- sIllegalArgs = new String[] {
- "sLot:5000", "sloT:10909", ".unO:SaveAs", ".uno:OPEN",
- };
- loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sIllegalArgs,
- "_blank", 0, lProps);
-
- sEmptyDocs = new String[] {
- "private:factory/SWRITER", "private:factory/SWRITER/WEB",
- "macro:///importwizard.main.main",
- "Macro:///euro.autopilotrun.startautopilot",
- "Service:Com.Sun.Star.Frame.Frame",
- "Mailto:andreas.schluens@germany.sun.com", "neWs:staroffice-doc",
- "News:Staroffice-doc"
- };
-
- //with cws_loadenv01 changed to IllegalArgumentException
- loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sEmptyDocs, "_blank", 0,
- lProps);
-
- log.println("check FTP URLs");
-
- String sFTPURL = (String) param.get("FtpAccess");
- Enumeration aSnapshot = m_lTestFiles.elements();
-
- while (aSnapshot.hasMoreElements()) {
- String doc = (String) aSnapshot.nextElement();
-
-
- // if os is windows
- doc = doc.replace('\\', '/');
- if (doc.indexOf("CVS")<0) {
- loadURL(m_xLoader, RESULT_VALID_DOC, sFTPURL + "/" + doc,
- "_blank", 0, lProps);
- }
- }
-
- log.println("check HTTP URLs");
-
- String sHTTPURL = (String) param.get("HttpAccess");
- aSnapshot = m_lTestFiles.elements();
-
- while (aSnapshot.hasMoreElements()) {
- String doc = (String) aSnapshot.nextElement();
-
-
- // if os is windows
- doc = doc.replace('\\', '/');
- if (doc.indexOf("CVS")<0) {
- loadURL(m_xLoader, RESULT_VALID_DOC, sHTTPURL + "/" + doc,
- "_blank", 0, lProps);
- }
- }
- }
+// public void checkURLHandling() {
+// PropertyValue[] lProps = new PropertyValue[1];
+//
+// lProps[0] = new PropertyValue();
+// lProps[0].Name = "Hidden";
+// lProps[0].Value = Boolean.TRUE;
+//
+// System.out.println("check possible but unsupported URLs");
+//
+// String[] sIllegalArgs = new String[] {
+// "slot:5000", "slot:10909", ".uno:SaveAs", ".uno:Open",
+// };
+// loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sIllegalArgs,
+// "_blank", 0, lProps);
+//
+// System.out.println("check stupid URLs");
+//
+// sIllegalArgs = new String[] {
+// "slot:xxx", "slot:111111111", ".uno:save_as", ".uno:open_this",
+// ".UnO:*",
+// };
+// loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sIllegalArgs,
+// "_blank", 0, lProps);
+//
+// String[] sEmptyDocs = new String[] {
+// "mailo:hansi.meier@germany.sun.com", "file:/c:\\test/file.cxx",
+// "file:///c|:\\test/file.cxx", "http_server://staroffice-doc\\",
+// "c:\\\\test///\\test.sxw", "news_:staroffice-doc",
+// "newsletter@blubber", "private_factory/swriter",
+// "private:factory//swriter", "private:factory/swriter/___",
+// "c:\\test\\test.sxw", "macro:///ImportWizard.Main.Main",
+// "macro:///Euro.AutoPilotRun.StartAutoPilot",
+// "service:com.sun.star.frame.Frame",
+// "mailto:steffen.grund@germany.sun.com", "news:staroffice-doc",
+// "macro:/ExportWizard", "macro://Euro.AutoPilotRun.StartAutoPilot",
+// "service:com.sun.star.frame."
+// };
+//
+// //with cws_loadenv01 changed to IllegalArgumentException
+// loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sEmptyDocs, "_blank", 0,
+// lProps);
+//
+// System.out.println("check case senstive URLs");
+//
+// sIllegalArgs = new String[] {
+// "sLot:5000", "sloT:10909", ".unO:SaveAs", ".uno:OPEN",
+// };
+// loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sIllegalArgs,
+// "_blank", 0, lProps);
+//
+// sEmptyDocs = new String[] {
+// "private:factory/SWRITER", "private:factory/SWRITER/WEB",
+// "macro:///importwizard.main.main",
+// "Macro:///euro.autopilotrun.startautopilot",
+// "Service:Com.Sun.Star.Frame.Frame",
+// "Mailto:andreas.schluens@germany.sun.com", "neWs:staroffice-doc",
+// "News:Staroffice-doc"
+// };
+//
+// //with cws_loadenv01 changed to IllegalArgumentException
+// loadURL(m_xLoader, RESULT_ILLEGALARGUMENTEXCEPTION, sEmptyDocs, "_blank", 0,
+// lProps);
+//
+// System.out.println("check FTP URLs");
+//
+// String sFTPURL = (String) param.get("FtpAccess");
+// Enumeration aSnapshot = m_lTestFiles.elements();
+//
+// while (aSnapshot.hasMoreElements()) {
+// String doc = (String) aSnapshot.nextElement();
+//
+//
+// // if os is windows
+// doc = doc.replace('\\', '/');
+// if (doc.indexOf("CVS")<0) {
+// loadURL(m_xLoader, RESULT_VALID_DOC, sFTPURL + "/" + doc,
+// "_blank", 0, lProps);
+// }
+// }
+//
+// System.out.println("check HTTP URLs");
+//
+// String sHTTPURL = (String) param.get("HttpAccess");
+// aSnapshot = m_lTestFiles.elements();
+//
+// while (aSnapshot.hasMoreElements()) {
+// String doc = (String) aSnapshot.nextElement();
+//
+//
+// // if os is windows
+// doc = doc.replace('\\', '/');
+// if (doc.indexOf("CVS")<0) {
+// loadURL(m_xLoader, RESULT_VALID_DOC, sHTTPURL + "/" + doc,
+// "_blank", 0, lProps);
+// }
+// }
+// }
/** TODo document me
*/
- public void checkStreamLoading()
+ @Test public void checkStreamLoading()
{
PropertyValue[] lProps = new PropertyValue[2];
@@ -616,11 +605,13 @@ public class CheckXComponentLoader extends ComplexTestCase
Enumeration aSnapshot = m_lTestFiles.elements();
while (aSnapshot.hasMoreElements())
{
- File aFile = new File(m_sTestDocPath + fs_sys + (String) aSnapshot.nextElement());
+ File aFile = new File(m_sTestDocPath, (String) aSnapshot.nextElement());
String sURL = URLHelper.getFileURLFromSystemPath(aFile);
- if (sURL.indexOf("CVS") > -1)
- continue;
+// if (sURL.indexOf("CVS") > -1)
+// {
+// continue;
+// }
try
{
@@ -628,12 +619,15 @@ public class CheckXComponentLoader extends ComplexTestCase
lProps[1].Value = xStream;
}
catch(com.sun.star.uno.Exception e)
- { failed("Could not open test file \""+sURL+"\" for stream test."); }
+ {
+ fail("Could not open test file \""+sURL+"\" for stream test.");
+ }
// check different version of "private:stream" URL!
loadURL(m_xLoader, RESULT_VALID_DOC, "private:stream" , "_blank", 0, lProps);
- loadURL(m_xLoader, RESULT_VALID_DOC, "private:stream/", "_blank", 0, lProps);
- }
+ // loadURL(m_xLoader, RESULT_VALID_DOC, "private:stream" , "_blank", 0, lProps);
+ // loadURL(m_xLoader, RESULT_VALID_DOC, "private:stream/", "_blank", 0, lProps);
+ }
}
/**
@@ -664,10 +658,8 @@ public class CheckXComponentLoader extends ComplexTestCase
} catch (com.sun.star.io.IOException exIO) {
nResult = RESULT_IOEXCEPTION;
} catch (com.sun.star.uno.RuntimeException exRuntime) {
- exRuntime.printStackTrace();
nResult = RESULT_RUNTIMEEXCEPTION;
} catch (Exception e) {
- e.printStackTrace();
nResult = RESULT_EXCEPTION;
}
@@ -677,22 +669,22 @@ public class CheckXComponentLoader extends ComplexTestCase
xDoc = null;
}
} catch (com.sun.star.uno.RuntimeException exClosing) {
- log.println("exception during disposing of a document found!" +
+ System.out.println("exception during disposing of a document found!" +
" Doesn't influence test - but should be checked.");
}
String sMessage = "URL[\"" + sURL + "\"]";
if (nResult == nRequiredResult) {
- log.println(sMessage + " expected result [" +
+ System.out.println(sMessage + " expected result [" +
convertResult2String(nResult) + "] ");
} else {
- failed(sMessage + " unexpected result [" +
+ fail(sMessage + " unexpected result [" +
convertResult2String(nResult) + "] " +
"\nrequired was [" +
convertResult2String(nRequiredResult) + "]" +
- "\nwe got [" + convertResult2String(nResult) + "]",
- true);
+ "\nwe got [" + convertResult2String(nResult) + "]"
+ );
}
}
@@ -700,8 +692,9 @@ public class CheckXComponentLoader extends ComplexTestCase
String[] sURL, String sTarget, int nFlags,
PropertyValue[] lProps) {
for (int i = 0; i < sURL.length; i++)
- loadURL(m_xLoader, nRequiredResult, sURL[i], sTarget, nFlags,
- lProps);
+ {
+ loadURL(m_xLoader, nRequiredResult, sURL[i], sTarget, nFlags, lProps);
+ }
}
/**
@@ -730,4 +723,28 @@ public class CheckXComponentLoader extends ComplexTestCase
return "unknown!";
}
-} \ No newline at end of file
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
+
+}
diff --git a/framework/qa/complex/loadAllDocuments/helper/InteractionHandler.java b/framework/qa/complex/loadAllDocuments/InteractionHandler.java
index f018912a2b..7bbb50e42f 100644
--- a/framework/qa/complex/loadAllDocuments/helper/InteractionHandler.java
+++ b/framework/qa/complex/loadAllDocuments/InteractionHandler.java
@@ -24,7 +24,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-package complex.loadAllDocuments.helper;
+package complex.loadAllDocuments;
import com.sun.star.beans.PropertyValue;
diff --git a/framework/qa/complex/loadAllDocuments/helper/StatusIndicator.java b/framework/qa/complex/loadAllDocuments/StatusIndicator.java
index 4320462835..cdbce9d7c6 100644
--- a/framework/qa/complex/loadAllDocuments/helper/StatusIndicator.java
+++ b/framework/qa/complex/loadAllDocuments/StatusIndicator.java
@@ -24,7 +24,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-package complex.loadAllDocuments.helper;
+package complex.loadAllDocuments;
// __________ Imports __________
diff --git a/framework/qa/complex/loadAllDocuments/helper/StreamSimulator.java b/framework/qa/complex/loadAllDocuments/StreamSimulator.java
index 99c12fa90b..6214963f33 100644
--- a/framework/qa/complex/loadAllDocuments/helper/StreamSimulator.java
+++ b/framework/qa/complex/loadAllDocuments/StreamSimulator.java
@@ -24,7 +24,7 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-package complex.loadAllDocuments.helper;
+package complex.loadAllDocuments;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.ucb.XSimpleFileAccess;
diff --git a/framework/qa/complex/loadAllDocuments/TestDocument.java b/framework/qa/complex/loadAllDocuments/TestDocument.java
new file mode 100644
index 0000000000..db5ca563a0
--- /dev/null
+++ b/framework/qa/complex/loadAllDocuments/TestDocument.java
@@ -0,0 +1,41 @@
+/*************************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+************************************************************************/
+
+package complex.loadAllDocuments;
+
+import java.io.File;
+import org.openoffice.test.OfficeFileUrl;
+
+final class TestDocument
+{
+ public static String getUrl(String name)
+ {
+ return OfficeFileUrl.getAbsolute(new File("testdocuments", name));
+ }
+
+ private TestDocument() {}
+}
diff --git a/framework/qa/complex/loadAllDocuments/helper/makefile.mk b/framework/qa/complex/loadAllDocuments/helper/makefile.mk
index 98c414c2c1..05a3c7a997 100644
--- a/framework/qa/complex/loadAllDocuments/helper/makefile.mk
+++ b/framework/qa/complex/loadAllDocuments/helper/makefile.mk
@@ -24,10 +24,10 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ = ..$/..$/..$/..
+PRJ = ../../../..
TARGET = CheckXComponentLoader
PRJNAME = framework
-PACKAGE = complex$/loadAllDocuments$/helper
+PACKAGE = complex/loadAllDocuments/helper
# --- Settings -----------------------------------------------------
.INCLUDE: settings.mk
@@ -35,10 +35,9 @@ PACKAGE = complex$/loadAllDocuments$/helper
#----- compile .java files -----------------------------------------
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
- Generator.jar
+JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar
JAVAFILES = InteractionHandler.java StatusIndicator.java StreamSimulator.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)/$(PACKAGE)/$(i:b).class)
MAXLINELENGTH = 100000
diff --git a/framework/qa/complex/loadAllDocuments/makefile.mk b/framework/qa/complex/loadAllDocuments/makefile.mk
index 02aacd36d2..ebf0265620 100644
--- a/framework/qa/complex/loadAllDocuments/makefile.mk
+++ b/framework/qa/complex/loadAllDocuments/makefile.mk
@@ -24,68 +24,111 @@
# for a copy of the LGPLv3 License.
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = CheckXComponentLoader
-PRJNAME = framework
-PACKAGE = complex$/loadAllDocuments
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
- OOoRunner.jar mysql.jar
-JAVAFILES = CheckXComponentLoader.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-SUBDIRS = helper
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-# --- Parameters for the test --------------------------------------
-
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_loadAllDocuments
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/loadAllDocuments
-# start the runner application
-CT_APP = org.openoffice.Runner
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ CheckXComponentLoader.java
-# --- Targets ------------------------------------------------------
+# put here all other files
+JAVAFILES = $(JAVATESTFILES) \
+ InteractionHandler.java \
+ StatusIndicator.java \
+ StreamSimulator.java \
+ TestDocument.java
-.IF "$(depend)" == ""
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
-.ELSE
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
-.ENDIF
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-.INCLUDE : target.mk
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-$(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
- cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
- jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
+.END
+
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-RUN: run
+ALLTAR : javatest
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST) -tdoc $(PWD)$/testdocuments
+.END
+#
+#
+# PRJ = ..$/..$/..
+# TARGET = CheckXComponentLoader
+# PRJNAME = framework
+# PACKAGE = complex$/loadAllDocuments
+#
+# # --- Settings -----------------------------------------------------
+# .INCLUDE: settings.mk
+#
+#
+# #----- compile .java files -----------------------------------------
+#
+# JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar \
+# OOoRunner.jar mysql.jar
+# JAVAFILES =
+# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+#
+# SUBDIRS = helper
+#
+# #----- make a jar from compiled files ------------------------------
+#
+# MAXLINELENGTH = 100000
+#
+# JARCLASSDIRS = $(PACKAGE)
+# JARTARGET = $(TARGET).jar
+# JARCOMPRESS = TRUE
+#
+# # --- Parameters for the test --------------------------------------
+#
+# # start an office if the parameter is set for the makefile
+# .IF "$(OFFICE)" == ""
+# CT_APPEXECCOMMAND =
+# .ELSE
+# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
+# .ENDIF
+#
+# # test base is java complex
+# CT_TESTBASE = -TestBase java_complex
+#
+# # test looks something like the.full.package.TestName
+# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+#
+# # start the runner application
+# CT_APP = org.openoffice.Runner
+#
+# # --- Targets ------------------------------------------------------
+#
+# .IF "$(depend)" == ""
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLTAR
+# .ELSE
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : ALLDEP
+# .ENDIF
+#
+# .INCLUDE : target.mk
+#
+# $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props : $(JAVAFILES:b).props
+# cp $(JAVAFILES:b).props $(CLASSDIR)$/$(PACKAGE)$/$(JAVAFILES:b).props
+# jar uf $(CLASSDIR)$/$(JARTARGET) -C $(CLASSDIR) $(PACKAGE)$/$(JAVAFILES:b).props
+#
+# RUN: run
+#
+# run:
+# +java -cp $(CLASSPATH) $(CT_APP) $(CT_TESTBASE) $(CT_APPEXECCOMMAND) $(CT_TEST) -tdoc $(PWD)$/testdocuments
+#
+#
+#
diff --git a/framework/qa/complex/loadAllDocuments/password_check.sxw b/framework/qa/complex/loadAllDocuments/testdocuments/password_check.sxw
index ec545b99e2..ec545b99e2 100644
--- a/framework/qa/complex/loadAllDocuments/password_check.sxw
+++ b/framework/qa/complex/loadAllDocuments/testdocuments/password_check.sxw
Binary files differ
diff --git a/framework/qa/complex/path_settings/PathSettingsTest.java b/framework/qa/complex/path_settings/PathSettingsTest.java
index b264bbd558..527176aaae 100755
--- a/framework/qa/complex/path_settings/PathSettingsTest.java
+++ b/framework/qa/complex/path_settings/PathSettingsTest.java
@@ -27,432 +27,992 @@
package complex.path_settings;
import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyVetoException;
+import com.sun.star.beans.UnknownPropertyException;
import com.sun.star.beans.XFastPropertySet;
import com.sun.star.beans.XMultiPropertySet;
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.lang.XMultiServiceFactory;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.AnyConverter;
-import complexlib.ComplexTestCase;
-public class PathSettingsTest extends ComplexTestCase {
+// ---------- junit imports -----------------
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.junit.After;
+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
+{
private static XMultiServiceFactory xMSF;
-
// the test object: an instance of the tested service
- private static Object oObj = null;
+ private static Object aPathSettings = null;
// the properties of the service
- private static Property[] props = null;
- private static String[] propNames = null;
- private static String[] availablePropNames = new String[]{
- "Addin",
- "AutoCorrect",
- "Autotext",
- "Backup",
- "Basic",
- "Bitmap",
- "Config",
- "Dictionary",
- "Favorite",
- "Filter",
- "Gallery",
- "Help",
- "Linguistic",
- "Module",
- "Palette",
- "Plugin",
- "Temp",
- "Template",
- "UIConfig",
- "UserConfig",
- "UserDictionary",
- "Work",
-};
- private static String[] propVals = null;
+ 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"
- };
- }
-
+// 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 'oObj' and 'props' variables.
+ * This methods sets the 'aPathSettings' and 'xPropertyInfoOfPathSettings' variables.
*/
- public void before() {
- try {
- xMSF = (XMultiServiceFactory)param.getMSF();
-// oObj = xMSF.createInstance("com.sun.star.util.PathSettings");
- oObj = xMSF.createInstance("com.sun.star.comp.framework.PathSettings");
- System.out.println("Implementation: " + util.utils.getImplName(oObj));
- System.out.println("Service: ");
- util.dbg.getSuppServices(oObj);
- if (oObj == null) throw new com.sun.star.uno.Exception();
- XPropertySet xProp = (XPropertySet)
- UnoRuntime.queryInterface(XPropertySet.class, oObj);
-
- props = xProp.getPropertySetInfo().getProperties();
- propNames = new String[props.length];
- propVals = new String[props.length];
+ @Before
+ public void before()
+ {
+ try
+ {
+ xMSF = getMSF();
+// aPathSettings = xMSF.createInstance("com.sun.star.util.PathSettings");
+ aPathSettings = xMSF.createInstance("com.sun.star.comp.framework.PathSettings");
+ assertNotNull("Can't instantiate com.sun.star.util.PathSettings.", 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
- log.println("\n---- All properties ----");
- for (int i = 1; i < props.length; i++) {
- propNames[i] = props[i].Name;
- Object o = xProp.getPropertyValue(propNames[i]);
- System.out.println("#### Object: " + o.getClass().getName() + " - " + o.toString());
- propVals[i] = AnyConverter.toString(o);
- System.out.println("#### String " + propVals[i]);
- log.println("Property Name: " + propNames[i]);
- log.println("Property Value: " + propVals[i]);
- }
- log.println("---- Finish showing properties ----\n");
- }
- catch(com.sun.star.uno.Exception e) {
- e.printStackTrace();
- log.println(e.getClass().getName());
- log.println("Message: " + e.getMessage());
- failed("Could not create an instance of the test object.");
- }
- catch(Exception e) {
- e.printStackTrace();
- failed("What exception?");
+ 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.uno.Exception e)
+ {
+ /* ignore */
}
+ return sValue;
}
/**
- * This tests the XFastPropertySet interface implementation.
+ * Simple existance test, if this fails, the Lists must update
*/
- public void checkXFastPropertySet()
+ @Test
+ public void checkInternalListConsistence()
{
- log.println("---- Testing the XFastPropertySet interface ----");
-
- // creating instances
- XFastPropertySet xFPS = (XFastPropertySet)
- UnoRuntime.queryInterface(XFastPropertySet.class, oObj);
-
- String name = null;
- // do for all properties
- for (int i = 0; i < props.length; i++) {
- try {
- Property property = props[i];
- name = property.Name;
- int handle = property.Handle;
-
- // get property name and initial value
- log.println("Test property with name: " + name);
- String val = (String)xFPS.getFastPropertyValue(handle);
- log.println("Property has initial value: '" + val + "'");
-
- // set to a new correct value
- String newVal = changeToCorrectValue(val);
- log.println("Try to change to correct value '" + newVal + "'");
- xFPS.setFastPropertyValue(handle, newVal);
+ // 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 the change
- String checkVal = (String)xFPS.getFastPropertyValue(handle);
- assure("Did not change value on property " + name + ".", checkVal.equals(newVal));
+ // 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);
+ }
+ }
+ }
- newVal = changeToIncorrectValue(val);
- log.println("Try to change to incorrect value '" + newVal + "'");
- try {
- xFPS.setFastPropertyValue(handle, newVal);
- }
- catch(com.sun.star.lang.IllegalArgumentException e) {
- log.println("Correctly thrown Exception caught.");
+ /**
+ * 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;
+ }
- // check if changed
- checkVal = (String)xFPS.getFastPropertyValue(handle);
- assure("Value did change on property " + name + " though it should not have.",
- !checkVal.equals(newVal));
-
- // set back to initial setting
- xFPS.setFastPropertyValue(handle, val);
-
- // check if changed
- checkVal = (String)xFPS.getFastPropertyValue(handle);
- assure("Did not change value back to original on property "
- + name, checkVal.equals(val));
- log.println("Test of property " + name + " finished\n");
+ private String getPropertyValueAsString(String _sName)
+ {
+ final XPropertySet xPropSet_of_PathSettings = UnoRuntime.queryInterface(XPropertySet.class, aPathSettings);
+ String sValue = "";
+ {
+ Object o;
+ try
+ {
+ o = xPropSet_of_PathSettings.getPropertyValue(_sName);
+ sValue = convertToString(o);
+ }
+ catch (UnknownPropertyException ex)
+ {
}
- catch(com.sun.star.uno.Exception e) {
-// e.printStackTrace();
- log.println(e.getClass().getName());
- log.println("Message: " + e.getMessage());
- failed("Unexpected exception on property " + name + ".");
- continue;
+ catch (WrappedTargetException ex)
+ {
}
}
- log.println("---- Test of XFastPropertySet finished ----\n");
+ return sValue;
}
-
- // ____________________
/**
- * This tests the XMultiPropertySet interface implementation.
+ * Shows the path settings
+ * @throws UnknownPropertyException
+ * @throws WrappedTargetException
*/
- public void checkXMultiPropertySet()
+ @Test
+ public void showPathSettings() throws UnknownPropertyException, WrappedTargetException
{
- log.println("---- Testing the XMultiPropertySet interface ----");
- XMultiPropertySet xMPS = (XMultiPropertySet)
- UnoRuntime.queryInterface(XMultiPropertySet.class, oObj);
-
- String[] correctVals = new String[props.length];
- String[] incorrectVals = new String[props.length];
-
- // get intitial values and create new ones
- for (int i = 0; i < props.length; i++) {
- correctVals[i] = changeToCorrectValue(propVals[i]);
- incorrectVals[i] = changeToIncorrectValue(propVals[i]);
- }
-
- try {
- // add a change listener
- MyChangeListener mListener = new MyChangeListener();
- xMPS.addPropertiesChangeListener(propNames, mListener);
-
- // first change props to correct values
- log.println("Change to correct values.");
- xMPS.setPropertyValues(propNames, correctVals);
- assure("Could not change to correct values with XMultiPropoertySet.",
- verifyPropertySet(xMPS,propNames,correctVals)>0);
-
- // second, change to incorrect values: expect an exception
- log.println("Try to change to incorrect values.");
- try {
- xMPS.setPropertyValues(propNames, incorrectVals);
- }
- catch(com.sun.star.lang.IllegalArgumentException r) {
- log.println("Correctly thrown Exception caught.");
- }
- assure("Did change to incorrect values with XMultiPropertySet," +
- " but should not have.",
- verifyPropertySet(xMPS,propNames,correctVals)>0);
-
- // third, change back to initial values
- log.println("Change back to initial values.");
- xMPS.setPropertyValues(propNames, propVals);
- assure("Could not change back to initial values with" +
- " XMultiPropertySet.",
- verifyPropertySet(xMPS,propNames,propVals)>0);
-
- // fire the event for the listener
- log.println("Fire event.");
- xMPS.firePropertiesChangeEvent(propNames, mListener);
- assure("Event was not fired on XMultiPropertySet.",
- mListener.changePropertiesEventFired());
- }
- catch(com.sun.star.uno.Exception e) {
-// e.printStackTrace();
- log.println(e.getClass().getName());
- log.println("Message: " + e.getMessage());
- failed("Unexpected exception on XMultiPropertySet.");
- }
-
- // test finished
- log.println("---- Test of XMultiPropertySet finished ----\n");
+ 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.uno.Exception 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);
+ }
+
/**
- * Verify if the values of xProp are the same as vals.
- * @param xProp A XMultiPropertySet.
- * @param propNames 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
+ * 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 int verifyPropertySet(XMultiPropertySet xProp,
- String[] propNames, String[] vals)
+ private boolean checkPaths(String _aPath, String _aOtherPath)
{
- int ret=0;
- if (vals.length != propNames.length) {
- log.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) {
- log.println("Property '" + propNames[i] +
- "' was supposed to have value:");
- log.println(vals[i]);
- log.println("but has value:");
- log.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;
+ 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 XPropertySet interface implementation.
+ * This tests the XFastPropertySet interface implementation.
*/
- public void checkXPropertySet()
+ @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)
{
- log.println("---- Testing the XPropertySet interface ----");
+ // 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;
+ }
- XPropertySet xPS = (XPropertySet)
- UnoRuntime.queryInterface(XPropertySet.class, oObj);
+ if (!AnyConverter.isArray(oValue))
+ {
+ System.out.println(" Internal error, type wrong. PathSetting property with name:" + name + " should be an array.");
+ return false;
+ }
- MyChangeListener mListener1 = new MyChangeListener();
- MyChangeListener mListener2 = new MyChangeListener();
+ String val;
+ try
+ {
+ Object oValues = AnyConverter.toArray(oValue);
- for (int i=0; i<props.length; i++) {
- // adding listeners
- String name = propNames[i];
- log.println("Testing property '" + name + "'");
- try {
- log.println("Add 2 Listeners.");
- xPS.addPropertyChangeListener(name, mListener1);
- xPS.addVetoableChangeListener(name, mListener1);
- xPS.addPropertyChangeListener(name, mListener2);
- xPS.addVetoableChangeListener(name, mListener2);
- // change the property
- log.println("Change value.");
- String changeVal = changeToCorrectValue(propVals[i]);
- xPS.setPropertyValue(name, changeVal);
- String newVal = (String)xPS.getPropertyValue(name);
+ final String[] aValues = (String[])oValues;
- assure("Value did not change on property " + name + ".",
- newVal.equals(changeVal));
+ // 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 + "'");
- assure("Listener 1 was not called.", checkListener(mListener1), true);
- assure("Listener 2 was not called.", checkListener(mListener2), true);
+ // set to a new correct value
+ String newVal = changeToCorrectValue(val);
+ assertFalse("newVal must not equal val.", newVal.equals(val));
- mListener1.resetListener();
- mListener2.resetListener();
+ System.out.println(" Try to change to a correct value '" + newVal + "'");
+ aNewValues[0] = newVal;
- log.println("Remove Listener 1.");
+ 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;
+ }
- xPS.removePropertyChangeListener(name, mListener1);
- xPS.removeVetoableChangeListener(name, mListener1);
+ // Property_internal can't change we will not arrive bejond this line
- // change the property
- log.println("Change value back.");
- xPS.setPropertyValue(name, propVals[i]);
- newVal = (String)xPS.getPropertyValue(name);
- assure("Value did not change on property " + name,
- newVal.equals(propVals[i]));
+ // 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;
+ }
- assure("Listener was called, although it was removed on" +
- " property " + name + ".", !checkListener(mListener1), true);
- assure("Listener 2 was not called on property " + name + ".",
- checkListener(mListener2), true);
+ // 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.");
+ }
}
- catch(com.sun.star.uno.Exception e) {
- e.printStackTrace();
- log.println(e.getClass().getName());
- log.println("Message: " + e.getMessage());
- failed("Unexpcted exception on property " + name);
- continue;
+
+ // 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;
}
- log.println("Finish testing property '" + propNames[i] + "'\n");
}
- log.println("---- Test of XPropertySet finished ----\n");
-
+ catch (com.sun.star.uno.Exception e)
+ {
+ System.out.println(" FAIL: getFastPropertyValue(handle:=" + handle + ", name:='" + name + "')" + e.getMessage());
+ bResult = false;
+ }
+ return bResult;
}
- private boolean checkListener(MyChangeListener ml) {
- return ml.changePropertyEventFired() ||
- ml.changePropertiesEventFired() ||
- ml.vetoableChangeEventFired();
+ 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) {
+ private String changeToCorrectValue(String path)
+ {
// the simplest possiblity
- if ( path == null || path.equals("") ) {
- return "file:///tmp";
+ if (path == null || path.equals(""))
+ {
+ String sTempDir = System.getProperty("java.io.tmpdir");
+ sTempDir = util.utils.getFullURL(sTempDir);
+ return sTempDir; // "file:///tmp";
}
- return path + "/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) {
- // the simplest possiblity
+ private String changeToIncorrectValue(String path)
+ {
+ // return an illegal path
return "fileblablabla";
}
-
/**
- * Listener implementation which sets a flag when
- * listener was called.
- */
+ * 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 disposeCalled = 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) {
- disposeCalled = true;
- }
-
- public void resetListener() {
- propChanged = false;
- propertiesChanged = false;
- disposeCalled = false;
- vetoableChanged = false;
- }
-
- public boolean changePropertyEventFired() {
- return propChanged;
- }
- public boolean changePropertiesEventFired() {
- return propertiesChanged;
- }
- public boolean vetoableChangeEventFired() {
- return vetoableChanged;
- }
+ XPropertyChangeListener,
+ XVetoableChangeListener
+ {
- };
+ private boolean propChanged = false;
+ private boolean propertiesChanged = false;
+ private boolean disposeCalled = 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)
+ {
+ disposeCalled = true;
+ }
+
+ public void resetListener()
+ {
+ propChanged = false;
+ propertiesChanged = false;
+ disposeCalled = false;
+ vetoableChanged = false;
+ }
+
+ public boolean changePropertyEventFired()
+ {
+ return propChanged;
+ }
+
+ public boolean changePropertiesEventFired()
+ {
+ return propertiesChanged;
+ }
+
+ public boolean vetoableChangeEventFired()
+ {
+ return vetoableChanged;
+ }
+ }
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
}
diff --git a/framework/qa/complex/path_settings/makefile.mk b/framework/qa/complex/path_settings/makefile.mk
index 70af7817ac..05900d46e1 100755
--- a/framework/qa/complex/path_settings/makefile.mk
+++ b/framework/qa/complex/path_settings/makefile.mk
@@ -25,60 +25,38 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = PathSettings
-PRJNAME = $(TARGET)
-PACKAGE = complex$/path_settings
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar mysql.jar
-JAVAFILES = PathSettingsTest.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+# @echo "OOO_SUBSEQUENT_TESTS not set, do nothing."
+.ELSE
-# --- Parameters for the test --------------------------------------
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_path_settings
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/path_settings
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ PathSettingsTest.java
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+# put here all other files
+JAVAFILES = $(JAVATESTFILES)
-# start the runner application
-CT_APP = org.openoffice.Runner
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# --- Targets ------------------------------------------------------
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-.IF "$(depend)" == ""
-ALL : ALLTAR
-.ELSE
-ALL: ALLDEP
-.ENDIF
+.END
-.INCLUDE : target.mk
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-RUN: run
+ALLTAR : javatest
-run:
- +java -version
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_TEST)
+.END
diff --git a/framework/qa/complex/path_substitution/PathSubstitutionTest.java b/framework/qa/complex/path_substitution/PathSubstitutionTest.java
index 88877d8c76..23eea8da42 100755
--- a/framework/qa/complex/path_substitution/PathSubstitutionTest.java
+++ b/framework/qa/complex/path_substitution/PathSubstitutionTest.java
@@ -29,16 +29,26 @@ package complex.path_substitution;
import com.sun.star.lang.XMultiServiceFactory;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.util.XStringSubstitution;
-import complexlib.ComplexTestCase;
+
import java.util.Vector;
+// ---------- junit imports -----------------
+import org.junit.After;
+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 PathSubstitutionTest extends ComplexTestCase {
+public class PathSubstitutionTest
+{
private static XMultiServiceFactory xMSF;
-
// all substitution variables
private VariableContainer substVars = null;
@@ -47,14 +57,14 @@ public class PathSubstitutionTest extends ComplexTestCase {
* Right now, it's only 'checkXStringSubstitution'.
* @return All test methods.
*/
- public String[] getTestMethodNames() {
- return new String[]{"checkXStringSubstitution"};
- }
-
+// public String[] getTestMethodNames() {
+// return new String[]{"checkXStringSubstitution"};
+// }
/**
* Create an array with all substitution variables
*/
- private void initialize() {
+ @Before private void initialize()
+ {
substVars = new VariableContainer();
substVars.add("$(prog)", false, true);
substVars.add("$(inst)", false, true);
@@ -64,65 +74,72 @@ public class PathSubstitutionTest extends ComplexTestCase {
substVars.add("$(temp)", false, true);
substVars.add("$(lang)", false, false);
substVars.add("$(langid)", false, false);
- substVars.add("$(vlang)", false,false);
+ substVars.add("$(vlang)", false, false);
// path won't resubstitute
- substVars.add("$(path)", false,false);
+ substVars.add("$(path)", false, false);
}
/**
* One actual test: as the method 'getTestMethodNames()' tells.
*/
- public void checkXStringSubstitution()
+ @Test public void checkXStringSubstitution()
{
- xMSF = (XMultiServiceFactory)param.getMSF();
- log.println("---- Testing the XStringSubstitution interface ----");
- log.println("Create intance of test object.\n");
+ xMSF = getMSF();
+ System.out.println("---- Testing the XStringSubstitution interface ----");
+ System.out.println("Create intance of test object.\n");
XStringSubstitution oObj = null;
- try {
+ try
+ {
Object x = xMSF.createInstance(
- "com.sun.star.util.PathSubstitution");
- oObj = (XStringSubstitution)
- UnoRuntime.queryInterface(XStringSubstitution.class, x);
- if (oObj == null) throw new com.sun.star.uno.Exception();
- }
- catch(com.sun.star.uno.Exception e) {
- log.println(e.getClass().getName());
- log.println("Message: " + e.getMessage());
- failed("Could not create an instance of the test object.");
+ "com.sun.star.util.PathSubstitution");
+ oObj = UnoRuntime.queryInterface(XStringSubstitution.class, x);
+ if (oObj == null)
+ {
+ throw new com.sun.star.uno.Exception();
+ }
+ }
+ 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.");
return;
}
- initialize();
+// initialize();
- for (int i=0; i<substVars.size(); i++) {
+ for (int i = 0; i < substVars.size(); i++)
+ {
String var = substVars.getVariable(i);
- log.println("Testing var '" + var + "'");
- try {
+ System.out.println("Testing var '" + var + "'");
+ try
+ {
String substVal = oObj.getSubstituteVariableValue(var);
- log.println("\tvalue '" + substVal + "'");
- substVars.putValue(i,substVal);
+ System.out.println("\tvalue '" + substVal + "'");
+ substVars.putValue(i, substVal);
// simple check: let path in a string replace
String substString = var + "/additional/path";
- log.println("Substitute '"+substString+"'");
+ System.out.println("Substitute '" + substString + "'");
String newValue = oObj.substituteVariables(substString, true);
- log.println("Return value '"+newValue+"'");
+ System.out.println("Return value '" + newValue + "'");
// 2do: better check for correct substitution
- assure("Did not substitute '"
- + substString+"' to '" + newValue
+ assertTrue("Did not substitute '"
+ + substString + "' to '" + newValue
+ "' correctly:", newValue.startsWith(substVal));
// simple check part two:
//make substitution backwards if possible
- if (substVars.canReSubstitute(i)) {
+ if (substVars.canReSubstitute(i))
+ {
substString = substVal + "/additional/path";
- log.println("Substitute backwards '"+substString+"'");
+ System.out.println("Substitute backwards '" + substString + "'");
newValue = oObj.reSubstituteVariables(substString);
- log.println("Return value '"+newValue+"'");
+ System.out.println("Return value '" + newValue + "'");
// 2do: better check for correct substitution
- assure("Did not reSubstitute '"
+ assertTrue("Did not reSubstitute '"
+ substString + "' to '" + newValue
+ "' correctly:", checkResubstitute(newValue, var));
}
@@ -131,28 +148,32 @@ public class PathSubstitutionTest extends ComplexTestCase {
//in middle of text works
substString = "file:///starting/" + var + "/path";
- log.println("Substitute '"+substString+"'");
+ System.out.println("Substitute '" + substString + "'");
newValue = oObj.substituteVariables(substString, false);
- log.println("Return value '"+newValue+"'");
+ System.out.println("Return value '" + newValue + "'");
boolean erg = true;
- if(substVars.onlySubstituteAtBegin(i))
+ if (substVars.onlySubstituteAtBegin(i))
+ {
// in this case it should not have worked
- erg = newValue.indexOf(substVal)==-1;
+ erg = newValue.indexOf(substVal) == -1;
+ }
else
- erg = newValue.indexOf(substVal)!=-1;
-
- assure("Did not substitute '"
+ {
+ erg = newValue.indexOf(substVal) != -1;
+ }
+ assertTrue("Did not substitute '"
+ substString + "' to '" + newValue
+ "' correctly:", erg);
}
- catch(com.sun.star.uno.Exception e) {
- log.println(e.getClass().getName());
- log.println("Message: " + e.getMessage());
- failed("Could not create an instance of the test object.");
+ 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.");
return;
}
- log.println("Finish testing '" + var + "'\n");
+ System.out.println("Finish testing '" + var + "'\n");
}
// check of greedy resubstitution
@@ -161,20 +182,21 @@ public class PathSubstitutionTest extends ComplexTestCase {
String instPth = substVars.getValue(inst);
String progPth = substVars.getValue(prog);
- if (progPth.startsWith(instPth) && instPth.startsWith(progPth)) {
- log.println("Greedy ReSubstitute");
+ if (progPth.startsWith(instPth) && instPth.startsWith(progPth))
+ {
+ System.out.println("Greedy ReSubstitute");
String substString = progPth + "/additional/path";
String newVal = oObj.reSubstituteVariables(substString);
- log.println("String '" + substString +
- "' should be resubstituted with");
- log.println("Variable '" + prog + "' instead of Variable '" +
- inst + "'");
- assure("Did not reSubstitute '" + substString
+ System.out.println("String '" + substString
+ + "' should be resubstituted with");
+ System.out.println("Variable '" + prog + "' instead of Variable '"
+ + inst + "'");
+ assertTrue("Did not reSubstitute '" + substString
+ "' to '" + newVal + "' correctly:",
newVal.startsWith(prog));
}
- log.println(
+ System.out.println(
"---- Finish testing the XStringSubstitution interface ----");
}
@@ -182,65 +204,118 @@ public class PathSubstitutionTest extends ComplexTestCase {
* test the resubstitution
* @return true, if resubstitution is correct.
*/
- private boolean checkResubstitute(String subst, String original) {
+ private boolean checkResubstitute(String subst, String original)
+ {
// simple: subst starts with original
- if ( subst.startsWith(original) ) {
+ if (subst.startsWith(original))
+ {
return true;
}
- else { // hard: been resubstituted with a differernt variable.
- for (int i=0; i<substVars.size(); i++) {
+ else
+ { // hard: been resubstituted with a differernt variable.
+ for (int i = 0; i < substVars.size(); i++)
+ {
String var = substVars.getVariable(i);
- if ( subst.startsWith(var) && original.startsWith(original)) {
+ if (subst.startsWith(var) && original.startsWith(original))
+ {
return true;
}
}
}
return false;
}
+
/**
* Class for containing the substitution variables with their
* values and some information.
*/
- private class VariableContainer {
+ private class VariableContainer
+ {
+
public Vector varName;
public Vector varValue;
public Vector substAtBegin;
public Vector resubst;
- public VariableContainer() {
+ public VariableContainer()
+ {
varName = new Vector();
varValue = new Vector();
substAtBegin = new Vector();
resubst = new Vector();
}
- public void add(String var) {
+ public void add(String var)
+ {
varName.add(var);
substAtBegin.add(Boolean.TRUE);
resubst.add(Boolean.TRUE);
}
+
public void add(String var, boolean onlySubstAtBegin,
- boolean canResubst) {
+ boolean canResubst)
+ {
varName.add(var);
this.substAtBegin.add(new Boolean(onlySubstAtBegin));
this.resubst.add(new Boolean(canResubst));
}
- public void putValue(int i, String val) {
+ public void putValue(int i, String val)
+ {
varValue.add(i, val);
}
- public int size() { return varName.size(); }
- public String getVariable(int i) { return (String)varName.get(i); }
- public String getValue(int i) { return (String)varName.get(i); }
- public String getValue(String var) {
- return (String)varValue.get(varName.indexOf(var));
+ public int size()
+ {
+ return varName.size();
}
- public boolean onlySubstituteAtBegin(int i) {
- return ((Boolean)substAtBegin.get(i)).booleanValue();
+
+ public String getVariable(int i)
+ {
+ return (String) varName.get(i);
}
- public boolean canReSubstitute(int i) {
- return ((Boolean)resubst.get(i)).booleanValue();
+
+ public String getValue(int i)
+ {
+ return (String) varName.get(i);
}
+
+ public String getValue(String var)
+ {
+ return (String) varValue.get(varName.indexOf(var));
+ }
+
+ public boolean onlySubstituteAtBegin(int i)
+ {
+ return ((Boolean) substAtBegin.get(i)).booleanValue();
+ }
+
+ public boolean canReSubstitute(int i)
+ {
+ return ((Boolean) resubst.get(i)).booleanValue();
+ }
+ }
+
+ private XMultiServiceFactory getMSF()
+ {
+ final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface(XMultiServiceFactory.class, connection.getComponentContext().getServiceManager());
+ return xMSF1;
+ }
+
+ // 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();
}
diff --git a/framework/qa/complex/path_substitution/makefile.mk b/framework/qa/complex/path_substitution/makefile.mk
index a266d3fa41..338affbf70 100755
--- a/framework/qa/complex/path_substitution/makefile.mk
+++ b/framework/qa/complex/path_substitution/makefile.mk
@@ -25,59 +25,98 @@
#
#*************************************************************************
-PRJ = ..$/..$/..
-TARGET = PathSubstitution
-PRJNAME = $(TARGET)
-PACKAGE = complex$/path_substitution
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar mysql.jar
-JAVAFILES = PathSubstitutionTest.java
-JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+.ELSE
-JARCLASSDIRS = $(PACKAGE)
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
+PRJ = ../../..
+PRJNAME = framework
+TARGET = qa_complex_path_substitution
-# --- Parameters for the test --------------------------------------
+.IF "$(OOO_JUNIT_JAR)" != ""
+PACKAGE = complex/path_substitution
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
+# here store only Files which contain a @Test
+JAVATESTFILES = \
+ PathSubstitutionTest.java
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
+# put here all other files
+JAVAFILES = $(JAVATESTFILES)
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+JARFILES = OOoRunner.jar ridl.jar test.jar unoil.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
-# start the runner application
-CT_APP = org.openoffice.Runner
+# Sample how to debug
+# JAVAIFLAGS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9003,suspend=y
-# --- Targets ------------------------------------------------------
+.END
-.IF "$(depend)" == ""
-ALL : ALLTAR
-.ELSE
-ALL: ALLDEP
-.ENDIF
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
-.INCLUDE : target.mk
+ALLTAR : javatest
-RUN: run
+.END
-run:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_TEST)
+#
+#
+#
+#
+# PRJ = ..$/..$/..
+# TARGET = PathSubstitution
+# PRJNAME = $(TARGET)
+# PACKAGE = complex$/path_substitution
+#
+# # --- Settings -----------------------------------------------------
+# .INCLUDE: settings.mk
+#
+#
+# #----- compile .java files -----------------------------------------
+#
+# JARFILES = ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar mysql.jar
+# JAVAFILES = PathSubstitutionTest.java
+# JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+#
+# #----- make a jar from compiled files ------------------------------
+#
+# MAXLINELENGTH = 100000
+#
+# JARCLASSDIRS = $(PACKAGE)
+# JARTARGET = $(TARGET).jar
+# JARCOMPRESS = TRUE
+#
+# # --- Parameters for the test --------------------------------------
+#
+# # start an office if the parameter is set for the makefile
+# .IF "$(OFFICE)" == ""
+# CT_APPEXECCOMMAND =
+# .ELSE
+# CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
+# .ENDIF
+#
+# # test base is java complex
+# CT_TESTBASE = -TestBase java_complex
+#
+# # test looks something like the.full.package.TestName
+# CT_TEST = -o $(PACKAGE:s\$/\.\).$(JAVAFILES:b)
+#
+# # start the runner application
+# CT_APP = org.openoffice.Runner
+#
+# # --- Targets ------------------------------------------------------
+#
+# .IF "$(depend)" == ""
+# ALL : ALLTAR
+# .ELSE
+# ALL: ALLDEP
+# .ENDIF
+#
+# .INCLUDE : target.mk
+#
+# RUN: run
+#
+# run:
+# +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_TEST)
+#
diff --git a/framework/qa/complex/sequence/CheckSequenceOfEnum.java b/framework/qa/complex/sequence/CheckSequenceOfEnum.java
deleted file mode 100755
index 90399c5030..0000000000
--- a/framework/qa/complex/sequence/CheckSequenceOfEnum.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-package complex.sequence;
-
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.enumexample.XEnumSequence;
-import com.sun.star.beans.PropertyState;
-import com.sun.star.uno.UnoRuntime;
-import complexlib.ComplexTestCase;
-
-/**
- * The test is for bug 111128. The mapping of sequence<enumeration> between
- * Java and C++ from the IDL definition was erroneous. This test checks, if
- * the mapping works.
- */
-public class CheckSequenceOfEnum extends ComplexTestCase {
-
- /**
- * Return all test methods.
- * @return The test methods.
- */
- public String[] getTestMethodNames() {
- return new String[]{"checkSequence"};
- }
-
- /**
- * Check the sequence<enumeration> mapping between Java and C++.
- * Since the Office does
- * not use such a construct itself, a C++ component with an own defined
- * interface is used for testing.
- */
- public void checkSequence() {
- try {
- XMultiServiceFactory xMSF = (XMultiServiceFactory) param.getMSF();
- Object oObj = xMSF.createInstance("com.sun.star.enumexample.ChangeSequenceOrder");
- assure("Build the shared library 'changeSequenceOrder' in directory 'enumexample' and\n"
- + "register the created zip 'EnumSequenceComponent' before executing this test.", oObj != null);
- // build a first sequence
- PropertyState[] aOriginalSequence = new PropertyState[] {
- PropertyState.DIRECT_VALUE,
- PropertyState.DEFAULT_VALUE,
- PropertyState.AMBIGUOUS_VALUE
- };
- XEnumSequence xSequence = (XEnumSequence)UnoRuntime.queryInterface(XEnumSequence.class, oObj);
- PropertyState[] aChangedSequence = xSequence.getSequenceInChangedOrder(aOriginalSequence);
- assure("Did not return a correct sequence.", checkSequence(aOriginalSequence, aChangedSequence));
- }
- catch(Exception e) {
- e.printStackTrace();
- failed("Exception!");
- }
- }
-
- private boolean checkSequence(PropertyState[] aOriginalSequence, PropertyState[] aChangedSequence) {
- boolean erg = true;
- int length = aOriginalSequence.length;
- for ( int i=0; i<length; i++ ) {
- if ( aOriginalSequence[i] != aChangedSequence[length -1 - i]) {
- log.println("Checking '" + aOriginalSequence[i] + "' == '" + aChangedSequence[length - 1 - i] + "'");
- erg = false;
- }
- if ( aChangedSequence[length - 1 - i].getValue() != PropertyState.fromInt(i).getValue() ) {
- log.println("Checking '" + aChangedSequence[length - 1 - i].getValue() + "' == '" + PropertyState.fromInt(i).getValue() + "'");
- erg = false;
- }
- }
- return erg;
- }
-}
-
-
diff --git a/framework/qa/complex/sequence/makefile.mk b/framework/qa/complex/sequence/makefile.mk
deleted file mode 100755
index ba18b278d7..0000000000
--- a/framework/qa/complex/sequence/makefile.mk
+++ /dev/null
@@ -1,98 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ = ..$/..$/..
-TARGET = CheckSequenceOfEnum
-PRJNAME = $(TARGET)
-PACKAGE = complex$/sequence
-
-# --- Settings -----------------------------------------------------
-.INCLUDE: settings.mk
-
-
-#----- compile .java files -----------------------------------------
-
-JARFILES = mysql.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar CheckSequenceOfEnum.jar
-JAVAFILES = CheckSequenceOfEnum.java
-
-ENUMSEQUENCEIDL = com.sun.star.enumexample.XEnumSequence
-
-#----- make a jar from compiled files ------------------------------
-
-MAXLINELENGTH = 100000
-
-JARCLASSDIRS = $(PACKAGE) com
-JARTARGET = $(TARGET).jar
-JARCOMPRESS = TRUE
-
-# --- Parameters for the test --------------------------------------
-
-# start an office if the parameter is set for the makefile
-.IF "$(OFFICE)" == ""
-CT_APPEXECCOMMAND =
-.ELSE
-CT_APPEXECCOMMAND = -AppExecutionCommand "$(OFFICE)$/soffice -accept=socket,host=localhost,port=8100;urp;"
-.ENDIF
-
-# test base is java complex
-CT_TESTBASE = -TestBase java_complex
-
-# test looks something like the.full.package.TestName
-CT_TEST = -o $(PACKAGE:s\$/\.\).CheckSequenceOfEnum
-
-# start the runner application
-CT_APP = org.openoffice.Runner
-
-RDB = $(BIN)$/myudkapi.rdb
-JAVADIR = $(OUT)$/misc$/java
-
-# --- Targets ------------------------------------------------------
-
-.IF "$(depend)" == ""
-ALL: GENJAVAFILES ALLTAR
-.ELSE
-ALL: ALLDEP
-.ENDIF
-
-
-.INCLUDE : target.mk
-
-$(RDB) :
- +idlc -I$(IDL) -I$(SOLARIDLDIR) -O$(BIN) $?
- +regmerge $@ /UCR $(BIN)$/{$(?:f:s/.idl/.urd/)}
- +regmerge $@ / $(SOLARBINDIR)$/udkapi.rdb
- touch $@
-
-GENJAVAFILES :
- -+$(MKDIR) $(CLASSDIR) >& $(NULLDEV)
- -+$(MKDIR) $(JAVADIR) >& $(NULLDEV)
- +javamaker -BUCR -nD -O$(CLASSDIR) $(RDB) -T$(ENUMSEQUENCEIDL)
-
-RUN:
- +java -cp $(CLASSPATH) $(CT_APP) $(CT_APPEXECCOMMAND) $(CT_TESTBASE) $(CT_TEST)
-
-run: RUN
diff --git a/framework/qa/unoapi/framework.sce b/framework/qa/unoapi/framework.sce
index dad0c838de..76f3d1b089 100755
--- a/framework/qa/unoapi/framework.sce
+++ b/framework/qa/unoapi/framework.sce
@@ -2,7 +2,7 @@
-o fwl.FilterFactory
-o fwl.FrameLoaderFactory
-o fwl.SubstituteVariables
--o fwl.TypeDetection
+#i113245 -o fwl.TypeDetection
#i84346 -o fwl.PathSettings
-o fwk.DispatchRecorder
-o fwk.DispatchRecorderSupplier
@@ -17,7 +17,7 @@
-o fwk.ServiceHandler
-o fwk.URLTransformer
-o fwk.MacrosMenuController
--o fwk.ModuleManager
+#i112746 -o fwk.ModuleManager
-o fwk.UIElementFactoryManager
-o fwk.UICommandDescription
-o fwk.LayoutManager
diff --git a/framework/source/classes/resource.src b/framework/source/classes/resource.src
index 5c0f7d087a..702fb431f5 100644
--- a/framework/source/classes/resource.src
+++ b/framework/source/classes/resource.src
@@ -175,6 +175,7 @@ ModalDialog DLG_LICENSE
MultiLineEdit ML_LICENSE
{
+ HelpID = "framework:MultiLineEdit:DLG_LICENSE:ML_LICENSE";
PosSize = MAP_APPFONT ( LICENSE_COL_1 , LICENSE_ROW_1 , LICENSE_WIDTH , LICENSE_HEIGHT ) ;
Border = TRUE ;
VScroll = TRUE ;
@@ -221,6 +222,7 @@ ModalDialog DLG_LICENSE
PushButton PB_PAGEDOWN
{
+ HelpID = "framework:PushButton:DLG_LICENSE:PB_PAGEDOWN";
TabStop = TRUE ;
Pos = MAP_APPFONT ( LICENSE_COL_4 , LICENSE_ROW_3 ) ;
Size = MAP_APPFONT ( PD_WIDTH , PB_HEIGHT ) ;
@@ -261,6 +263,7 @@ ModalDialog DLG_LICENSE
PushButton PB_ACCEPT
{
+ HelpID = "framework:PushButton:DLG_LICENSE:PB_ACCEPT";
TabStop = TRUE ;
Pos = MAP_APPFONT ( LICENSE_COL_4 - PD_WIDTH - OFFSET_IMG , LICENSE_ROW_6 ) ;
Size = MAP_APPFONT ( PD_WIDTH , PB_HEIGHT ) ;
@@ -268,6 +271,7 @@ ModalDialog DLG_LICENSE
PushButton PB_DECLINE
{
+ HelpID = "framework:PushButton:DLG_LICENSE:PB_DECLINE";
TabStop = TRUE ;
Pos = MAP_APPFONT ( LICENSE_COL_4 , LICENSE_ROW_6 ) ;
Size = MAP_APPFONT ( PD_WIDTH , PB_HEIGHT ) ;
diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx
index 1b0cd5717a..6a668cd12a 100644
--- a/framework/source/layoutmanager/layoutmanager.cxx
+++ b/framework/source/layoutmanager/layoutmanager.cxx
@@ -4005,7 +4005,7 @@ IMPL_LINK( LayoutManager, WindowEventListener, VclSimpleEvent*, pEvent )
if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
{
pToolBox = (ToolBox *)pWindow;
- aToolbarName = pToolBox->GetSmartHelpId().GetStr();
+ aToolbarName = rtl::OStringToOUString( pToolBox->GetHelpId(), RTL_TEXTENCODING_UTF8 );
sal_Int32 i = aToolbarName.lastIndexOf( ':' );
if (( aToolbarName.getLength() > 0 ) &&
( i > 0 ) && (( i+ 1 ) < aToolbarName.getLength() ))
@@ -4066,7 +4066,7 @@ IMPL_LINK( LayoutManager, WindowEventListener, VclSimpleEvent*, pEvent )
if ( pWindow && pWindow->GetType() == WINDOW_TOOLBOX )
{
pToolBox = (ToolBox *)pWindow;
- aToolbarName = pToolBox->GetSmartHelpId().GetStr();
+ aToolbarName = rtl::OStringToOUString( pToolBox->GetHelpId(), RTL_TEXTENCODING_UTF8 );
if (( aToolbarName.getLength() > 0 ) && ( m_nLockCount == 0 ))
m_aAsyncLayoutTimer.Start();
}
diff --git a/framework/source/services/backingwindow.cxx b/framework/source/services/backingwindow.cxx
index 8817e60e92..274e9f01fc 100644
--- a/framework/source/services/backingwindow.cxx
+++ b/framework/source/services/backingwindow.cxx
@@ -29,6 +29,7 @@
#include "precompiled_framework.hxx"
#include "backingwindow.hxx"
+#include "classes/resource.hrc"
#include "framework.hrc"
#include "classes/fwkresid.hxx"
#include <services.h>
@@ -231,15 +232,15 @@ BackingWindow::BackingWindow( Window* i_pParent ) :
if( mxDesktop.is() )
mxDesktopDispatchProvider = Reference< XDispatchProvider >( mxDesktop, UNO_QUERY );
- maWriterButton.SetSmartHelpId( SmartId( String( RTL_CONSTASCII_USTRINGPARAM( ".HelpId:StartCenter:WriterButton" ) ) ) );
- maCalcButton.SetSmartHelpId( SmartId( String( RTL_CONSTASCII_USTRINGPARAM( ".HelpId:StartCenter:CalcButton" ) ) ) );
- maImpressButton.SetSmartHelpId( SmartId( String( RTL_CONSTASCII_USTRINGPARAM( ".HelpId:StartCenter:ImpressButton" ) ) ) );
- maDrawButton.SetSmartHelpId( SmartId( String( RTL_CONSTASCII_USTRINGPARAM( ".HelpId:StartCenter:DrawButton" ) ) ) );
- maDBButton.SetSmartHelpId( SmartId( String( RTL_CONSTASCII_USTRINGPARAM( ".HelpId:StartCenter:DBButton" ) ) ) );
- maMathButton.SetSmartHelpId( SmartId( String( RTL_CONSTASCII_USTRINGPARAM( ".HelpId:StartCenter:MathButton" ) ) ) );
- maTemplateButton.SetSmartHelpId( SmartId( String( RTL_CONSTASCII_USTRINGPARAM( ".HelpId:StartCenter:TemplateButton" ) ) ) );
- maOpenButton.SetSmartHelpId( SmartId( String( RTL_CONSTASCII_USTRINGPARAM( ".HelpId:StartCenter:OpenButton" ) ) ) );
- maToolbox.SetSmartHelpId( SmartId( String( RTL_CONSTASCII_USTRINGPARAM( ".HelpId:StartCenter:Toolbox" ) ) ) );
+ maWriterButton.SetHelpId( ".HelpId:StartCenter:WriterButton" );
+ maCalcButton.SetHelpId( ".HelpId:StartCenter:CalcButton" );
+ maImpressButton.SetHelpId( ".HelpId:StartCenter:ImpressButton" );
+ maDrawButton.SetHelpId( ".HelpId:StartCenter:DrawButton" );
+ maDBButton.SetHelpId( ".HelpId:StartCenter:DBButton" );
+ maMathButton.SetHelpId( ".HelpId:StartCenter:MathButton" );
+ maTemplateButton.SetHelpId( ".HelpId:StartCenter:TemplateButton" );
+ maOpenButton.SetHelpId( ".HelpId:StartCenter:OpenButton" );
+ maToolbox.SetHelpId( ".HelpId:StartCenter:Toolbox" );
// init background
initBackground();
@@ -388,8 +389,13 @@ void BackingWindow::prepareRecentFileMenu()
aBuf.append( aMenuTitle );
mpRecentMenu->InsertItem( static_cast<USHORT>(i+1), aBuf.makeStringAndClear() );
}
- maOpenButton.SetPopupMenu( mpRecentMenu );
}
+ else
+ {
+ String aNoDoc( FwkResId( STR_NODOCUMENT ) );
+ mpRecentMenu->InsertItem( 0xffff, aNoDoc );
+ }
+ maOpenButton.SetPopupMenu( mpRecentMenu );
}
void BackingWindow::initBackground()
diff --git a/framework/source/services/menudocumenthandler.cxx b/framework/source/services/menudocumenthandler.cxx
deleted file mode 100644
index 0fb110c3a3..0000000000
--- a/framework/source/services/menudocumenthandler.cxx
+++ /dev/null
@@ -1,903 +0,0 @@
-/*****************************************