'************************************************************************* ' ' 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: lang_XMultiServiceFactory.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. ' '************************************************************************* '************************************************************************* '************************************************************************* ' This Interface/Service test depends on the following GLOBAL variables, ' which must be specified in the object creation: ' - Global cServiceName As String ie. "com.sun.star.drawing.RectangleShape" ' - Global bCreateInstanceWithoutArguments As Boolean ' - Global aArguments() As Variant '************************************************************************* Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.lang.XMultiServiceFactory '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim oInstance1, oInstance2 As Object Dim Names Test.StartMethod("getAvailableServiceNames()") bOK = true Names = oObj.getAvailableServiceNames() Dim bFound As Boolean bFound = false for i = 0 to ubound(Names) if Names(i) = cServiceName then bFound = true next i if (NOT bFound) then Out.Log("Can't find '" & cServiceName & "' in returned array.") bOK = bOK AND bFound Test.MethodTested("getAvailableServiceNames()", bOK) Test.StartMethod("createInstance()") bOK = true if bCreateInstanceWithoutArguments then oInstance1 = oObj.createInstance(cServiceName) bOK = bOK AND NOT isNull(oInstance1) else Out.Log("createInstance() skipped for this object.") end if Test.MethodTested("createInstance()", bOK) Test.StartMethod("createInstanceWithArguments()") bOK = true if (cObjectName = "sd.SdXImpressDocument") then Out.Log("Object SdXImpressDocument doesn't suppotr createInstanceWithArguments().") else oInstance2 = oObj.createInstanceWithArguments(cServiceName, aArguments()) bOK = bOK AND NOT isNULL(oInstance2) end if Test.MethodTested("createInstanceWithArguments()", bOK) Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub