'************************************************************************* ' ' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ' ' Copyright 2008 by Sun Microsystems, Inc. ' ' OpenOffice.org - a multi-platform office productivity suite ' ' $RCSfile: frame_XDispatchRecorderSupplier.xba,v $ ' ' $Revision: 1.3 $ ' ' 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 ' ' for a copy of the LGPLv3 License. ' '************************************************************************* '************************************************************************* Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.frame.XDispatchRecorderSupplier '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim oldRecorder As Object Test.StartMethod("getDispatchRecorder()") oldRecorder = oObj.getDispatchRecorder() Test.StartMethod("setDispatchRecorder()") Dim newRecorder As Object newRecorder = createUnoService("com.sun.star.comp.framework.DispatchRecorder") oObj.setDispatchRecorder(newRecorder) Test.StartMethod("dispatchAndRecord()") bOK = true oDoc = createDocument("swriter", cObjectName) Dim desktop As Object desktop = createUnoService("com.sun.star.frame.Desktop") Dim curFrame As Object curFrame = desktop.getCurrentFrame() Dim dispURL As com.sun.star.util.URL dispURL = parseURL(".uno:InsertText") Dim disp As Object disp = curFrame.queryDispatch(dispURL, "", 0) Dim dispArgs(0) As new com.sun.star.beans.PropertyValue dispArgs(0).Name = "Text" dispArgs(0).Value = "XDispatchRecorderSupplier" Out.log("Dispatching and recording ...") oObj.dispatchAndRecord(dispURL, dispArgs(), disp) Dim macro As String macro = newRecorder.getRecordedMacro() Out.log("Recorder macro :" + chr(10) + macro) if (len(macro) <> 0) then bOK = instr(macro, dispURL.Complete) > -1 and _ instr(macro, dispArgs(0).Value) > -1 end if Test.MethodTested("dispatchAndRecord()", bOK) bOK = true if (isNull(oldRecorder)) then bOK = true else Dim oldMacro As String oldMacro = oldRecorder.getRecordedMacro() Out.log("RecordedMacro of previous dispatch recorder: " + chr(10) + oldMacro) bOK = oldMacro = macro endif Test.MethodTested("getDispatchRecorder()", bOK) Test.MethodTested("setDispatchRecorder()", bOK) Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub Function parseURL(complURL As String) As com.sun.star.util.URL Dim url As new com.sun.star.util.URL url.Complete = complURL Dim urlTrans As Object urlTrans = createUnoService("com.sun.star.util.URLTransformer") urlTrans.parseStrict(url) parseURL = url End Function