1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3<script:module xmlns:script="http://openoffice.org/2000/script" script:name="lang_XMultiServiceFactory" script:language="StarBasic">
4
5
6'*************************************************************************
7'
8' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9'
10' Copyright 2000, 2010 Oracle and/or its affiliates.
11'
12' OpenOffice.org - a multi-platform office productivity suite
13'
14' This file is part of OpenOffice.org.
15'
16' OpenOffice.org is free software: you can redistribute it and/or modify
17' it under the terms of the GNU Lesser General Public License version 3
18' only, as published by the Free Software Foundation.
19'
20' OpenOffice.org is distributed in the hope that it will be useful,
21' but WITHOUT ANY WARRANTY; without even the implied warranty of
22' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23' GNU Lesser General Public License version 3 for more details
24' (a copy is included in the LICENSE file that accompanied this code).
25'
26' You should have received a copy of the GNU Lesser General Public License
27' version 3 along with OpenOffice.org.  If not, see
28' <http://www.openoffice.org/license.html>
29' for a copy of the LGPLv3 License.
30'
31'*************************************************************************
32'*************************************************************************
33
34
35
36'*************************************************************************
37' This Interface/Service test depends on the following GLOBAL variables,
38' which must be specified in the object creation:
39
40'     - Global cServiceName As String ie. "com.sun.star.drawing.RectangleShape"
41'     - Global bCreateInstanceWithoutArguments As Boolean
42'     - Global aArguments() As Variant
43
44'*************************************************************************
45
46
47
48
49
50Sub RunTest()
51
52'*************************************************************************
53' INTERFACE:
54' com.sun.star.lang.XMultiServiceFactory
55'*************************************************************************
56On Error Goto ErrHndl
57    Dim bOK As Boolean
58    Dim oInstance1, oInstance2 As Object
59    Dim Names
60
61    Test.StartMethod("getAvailableServiceNames()")
62    bOK = true
63    Names = oObj.getAvailableServiceNames()
64    Dim bFound As Boolean
65    bFound = false
66    for i = 0 to ubound(Names)
67        if Names(i) = cServiceName then bFound = true
68    next i
69    if (NOT bFound) then Out.Log("Can't find '" &amp; cServiceName &amp; "' in returned array.")
70    bOK = bOK AND bFound
71    Test.MethodTested("getAvailableServiceNames()", bOK)
72
73    Test.StartMethod("createInstance()")
74    bOK = true
75    if bCreateInstanceWithoutArguments then
76        oInstance1 = oObj.createInstance(cServiceName)
77        bOK = bOK AND NOT isNull(oInstance1)
78    else
79        Out.Log("createInstance() skipped for this object.")
80    end if
81    Test.MethodTested("createInstance()", bOK)
82
83    Test.StartMethod("createInstanceWithArguments()")
84    bOK = true
85    if (cObjectName = "sd.SdXImpressDocument") then
86        Out.Log("Object SdXImpressDocument doesn't suppotr createInstanceWithArguments().")
87    else
88        oInstance2 = oObj.createInstanceWithArguments(cServiceName, aArguments())
89        bOK = bOK AND NOT isNULL(oInstance2)
90    end if
91    Test.MethodTested("createInstanceWithArguments()", bOK)
92
93Exit Sub
94ErrHndl:
95    Test.Exception()
96    bOK = false
97    resume next
98End Sub
99</script:module>
100