1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?>
2*b1cdbd2cSJim Jagielski<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3*b1cdbd2cSJim Jagielski<script:module xmlns:script="http://openoffice.org/2000/script" script:name="frame_XDispatchProvider" script:language="StarBasic">
4*b1cdbd2cSJim Jagielski
5*b1cdbd2cSJim Jagielski
6*b1cdbd2cSJim Jagielski'*************************************************************************
7*b1cdbd2cSJim Jagielski'
8*b1cdbd2cSJim Jagielski'  Licensed to the Apache Software Foundation (ASF) under one
9*b1cdbd2cSJim Jagielski'  or more contributor license agreements.  See the NOTICE file
10*b1cdbd2cSJim Jagielski'  distributed with this work for additional information
11*b1cdbd2cSJim Jagielski'  regarding copyright ownership.  The ASF licenses this file
12*b1cdbd2cSJim Jagielski'  to you under the Apache License, Version 2.0 (the
13*b1cdbd2cSJim Jagielski'  "License"); you may not use this file except in compliance
14*b1cdbd2cSJim Jagielski'  with the License.  You may obtain a copy of the License at
15*b1cdbd2cSJim Jagielski'
16*b1cdbd2cSJim Jagielski'    http://www.apache.org/licenses/LICENSE-2.0
17*b1cdbd2cSJim Jagielski'
18*b1cdbd2cSJim Jagielski'  Unless required by applicable law or agreed to in writing,
19*b1cdbd2cSJim Jagielski'  software distributed under the License is distributed on an
20*b1cdbd2cSJim Jagielski'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21*b1cdbd2cSJim Jagielski'  KIND, either express or implied.  See the License for the
22*b1cdbd2cSJim Jagielski'  specific language governing permissions and limitations
23*b1cdbd2cSJim Jagielski'  under the License.
24*b1cdbd2cSJim Jagielski'
25*b1cdbd2cSJim Jagielski'*************************************************************************
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski
28*b1cdbd2cSJim Jagielski
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski
31*b1cdbd2cSJim Jagielski' Be sure that all variables are dimensioned:
32*b1cdbd2cSJim Jagielskioption explicit
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski'*************************************************************************
35*b1cdbd2cSJim Jagielski' This Interface/Service test depends on the following GLOBAL variables,
36*b1cdbd2cSJim Jagielski' which must be specified in the object creation:
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski'     - Global dispatchUrl As String
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim Jagielski'*************************************************************************
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielski
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim JagielskiSub RunTest()
47*b1cdbd2cSJim Jagielski
48*b1cdbd2cSJim Jagielski'*************************************************************************
49*b1cdbd2cSJim Jagielski' INTERFACE:
50*b1cdbd2cSJim Jagielski' com.sun.star.frame.XDispatchProvider
51*b1cdbd2cSJim Jagielski'*************************************************************************
52*b1cdbd2cSJim JagielskiOn Error Goto ErrHndl
53*b1cdbd2cSJim Jagielski    Dim bOK As Boolean
54*b1cdbd2cSJim Jagielski    Dim url As new com.sun.star.util.URL
55*b1cdbd2cSJim Jagielski    Dim dispatcher As Object
56*b1cdbd2cSJim Jagielski    Dim descriptors(1) As new com.sun.star.frame.DispatchDescriptor
57*b1cdbd2cSJim Jagielski    Dim dispatchers As Variant
58*b1cdbd2cSJim Jagielski
59*b1cdbd2cSJim Jagielski    Out.Log("Using Url for dispatch : " + dispatchUrl)
60*b1cdbd2cSJim Jagielski
61*b1cdbd2cSJim Jagielski    url.Complete = dispatchUrl
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielski    Dim oURLTransformer As Object
64*b1cdbd2cSJim Jagielski    oURLTransformer = createUnoService("com.sun.star.util.URLTransformer")
65*b1cdbd2cSJim Jagielski    Dim aUrl As Variant
66*b1cdbd2cSJim Jagielski    aUrl = Array(url)
67*b1cdbd2cSJim Jagielski    oURLTransformer.parseStrict(aUrl)
68*b1cdbd2cSJim Jagielski
69*b1cdbd2cSJim Jagielski    Test.StartMethod("queryDispatch()")
70*b1cdbd2cSJim Jagielski    dispatcher = oObj.queryDispatch(aUrl(0), "frame", _
71*b1cdbd2cSJim Jagielski        com.sun.star.frame.FrameSearchFlag.ALL)
72*b1cdbd2cSJim Jagielski    bOK = NOT isNull(dispatcher)
73*b1cdbd2cSJim Jagielski    Out.Log("Dispatch is null : " + isNull(dispatcher))
74*b1cdbd2cSJim Jagielski    bOK = bOK AND hasUnoInterfaces(dispatcher, "com.sun.star.frame.XDispatch")
75*b1cdbd2cSJim Jagielski    Test.MethodTested("queryDispatch()", bOK)
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim Jagielski    Test.StartMethod("queryDispatches()")
78*b1cdbd2cSJim Jagielski    bOK = true
79*b1cdbd2cSJim Jagielski    descriptors(0).FeatureURL = url
80*b1cdbd2cSJim Jagielski    descriptors(0).FrameName = "Frame1"
81*b1cdbd2cSJim Jagielski    descriptors(0).SearchFlags = com.sun.star.frame.FrameSearchFlag.ALL
82*b1cdbd2cSJim Jagielski    descriptors(1).FeatureURL = url
83*b1cdbd2cSJim Jagielski    descriptors(1).FrameName = "Frame2"
84*b1cdbd2cSJim Jagielski    descriptors(1).SearchFlags = com.sun.star.frame.FrameSearchFlag.ALL
85*b1cdbd2cSJim Jagielski    dispatchers = oObj.queryDispatches(descriptors())
86*b1cdbd2cSJim Jagielski    if isArray(dispatchers) then
87*b1cdbd2cSJim Jagielski       if ubound(descriptors()) &lt;&gt; ubound(dispatchers()) then
88*b1cdbd2cSJim Jagielski          bOK = false
89*b1cdbd2cSJim Jagielski          Out.Log("Number of returned dispatchers : " + _
90*b1cdbd2cSJim Jagielski              ubound(dispatchers()) + " - FAILED")
91*b1cdbd2cSJim Jagielski       endIf
92*b1cdbd2cSJim Jagielski    else
93*b1cdbd2cSJim Jagielski       bOK = false
94*b1cdbd2cSJim Jagielski       Out.Log("Returned value is not Array")
95*b1cdbd2cSJim Jagielski    EndIf
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski    Test.MethodTested("queryDispatches()", bOK)
98*b1cdbd2cSJim Jagielski
99*b1cdbd2cSJim JagielskiExit Sub
100*b1cdbd2cSJim JagielskiErrHndl:
101*b1cdbd2cSJim Jagielski    Test.Exception()
102*b1cdbd2cSJim Jagielski    bOK = false
103*b1cdbd2cSJim Jagielski    resume next
104*b1cdbd2cSJim JagielskiEnd Sub
105*b1cdbd2cSJim Jagielski</script:module>
106