'************************************************************************* ' ' Licensed to the Apache Software Foundation (ASF) under one ' or more contributor license agreements. See the NOTICE file ' distributed with this work for additional information ' regarding copyright ownership. The ASF licenses this file ' to you under the Apache License, Version 2.0 (the ' "License"); you may not use this file except in compliance ' with the License. You may obtain a copy of the License at ' ' http://www.apache.org/licenses/LICENSE-2.0 ' ' Unless required by applicable law or agreed to in writing, ' software distributed under the License is distributed on an ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ' KIND, either express or implied. See the License for the ' specific language governing permissions and limitations ' under the 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