blob: bce1b80dffc593d8f8de66dd13c3991f77c91b27 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="frame_XDispatchRecorderSupplier" script:language="StarBasic">
'*************************************************************************
'
' 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.
'
'*************************************************************************
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) &lt;&gt; 0) then
bOK = instr(macro, dispURL.Complete) &gt; -1 and _
instr(macro, dispArgs(0).Value) &gt; -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
</script:module>