'************************************************************************* ' ' 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_XDispatchRecorder.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. ' '************************************************************************* '************************************************************************* ' Be sure that all variables are dimensioned: option explicit '************************************************************************* ' This Interface/Service test depends on the following GLOBAL variables, ' which must be specified in the object creation: ' - Global dispRecFrame As Object '************************************************************************* Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.frame.XDispatchRecorder '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Test.StartMethod("startRecording()") bOK = true oObj.startRecording(dispRecFrame) Test.MethodTested("startRecording()", bOK) Test.StartMethod("endRecording()") bOK = true Dim dispURL As com.sun.star.util.URL dispURL = parseURL(".uno:InsertText") Dim dispArgs(0) As new com.sun.star.beans.PropertyValue dispArgs(0).Name = "Text" dispArgs(0).Value = "XDispatchRecorder.endRecording()" Out.log("Dispatching event for frame ...") Dim disp As Object disp = dispRecFrame.queryDispatch(dispURL, "", 0) disp.dispatch(dispURL, dispArgs()) wait(2000) Out.log("Ending record ...") oObj.endRecording() Out.log("Getting macro ... :") Dim macro As String macro = oObj.getRecordedMacro() Out.log("'" + macro + "'") if (len(macro) <> 0) then bOK = instr(macro, dispURL.Complete) > -1 and _ instr(macro, dispArgs(0).Value) > -1 if (Not bOK) then Out.log("Dispatch URL '" + dispURL.Complete _ + "' or its argument '" + dispArgs(0).Value _ + "' was not found in macro returned - FAILED") end if else bOK = false end if Test.MethodTested("endRecording()", bOK) Test.StartMethod("recordDispatch()") bOK = true Out.log("Recording dispatch ...") oObj.recordDispatch(dispURL, dispArgs()) Out.log("Getting macro ... :") macro = oObj.getRecordedMacro() Out.log("'" + macro + "'") if (len(macro) <> 0) then bOK = instr(macro, dispURL.Complete) > -1 and _ instr(macro, dispArgs(0).Value) > -1 if (Not bOK) then Out.log("Dispatch URL '" + dispURL.Complete _ + "' or its argument '" + dispArgs(0).Value _ + "' was not found in macro returned - FAILED") end if else bOK = false end if Test.MethodTested("recordDispatch()", bOK) Test.StartMethod("recordDispatchAsComment()") bOK = true Out.log("Recording dispatch ...") oObj.recordDispatchAsComment(dispURL, dispArgs()) Out.log("Getting macro ... :") macro = oObj.getRecordedMacro() Out.log("'" + macro + "'") if (len(macro) <> 0) then bOK = instr(macro, dispURL.Complete) > -1 and _ instr(macro, dispArgs(0).Value) > -1 if (Not bOK) then Out.log("Dispatch URL '" + dispURL.Complete _ + "' or its argument '" + dispArgs(0).Value _ + "' was not found in macro returned - FAILED") end if else bOK = false end if Test.MethodTested("recordDispatchAsComment()", bOK) Test.StartMethod("getRecordedMacro()") bOK = true Test.MethodTested("getRecordedMacro()", 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