'************************************************************************* ' ' 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_XComponent.xba,v $ ' ' $Revision: 1.4 $ ' ' 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 oComponentInstance As Object it will be disposed '************************************************************************* Dim bCB1 As Boolean, bCB2 As Boolean ' Be sure that all variables are dimensioned: option explicit Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.lang.XEventListener On Error Goto ErrHndl Dim bOK As Boolean Dim oListener1 as Object, oListener2 As Object If isNull(oComponentInstance) Then Out.Log("oComponentInstance is not initialized") bCB1 = false bCB2 = false Out.Log("create two listeners") oListener1 = createUNOListener("CB1_", "com.sun.star.lang.XEventListener") oListener2 = createUNOListener("CB2_", "com.sun.star.lang.XEventListener") ' add listeners to object if initialized if NOT(isNull(oListener2)) then oComponentInstance.addEventListener(oListener2) end if if NOT(isNull(oListener1)) then oComponentInstance.addEventListener(oListener1) end if Out.Log("remove Listener2") oComponentInstance.removeEventListener(oListener2) ' dispose object and check the count Test.StartMethod("dispose()") bOK = true oComponentInstance.dispose() bOK = bCB1 AND NOT bCB2 Test.MethodTested("dispose()", bOK) ' check if only one eventlistener-callback was executed Test.StartMethod("addEventListener()") bOK = bCB1 AND NOT bCB2 Test.MethodTested("addEventListener()", bOK) ' check if there was only one of the listener callbacks executed Test.StartMethod("removeEventListener()") bOK = bCB1 AND NOT bCB2 Test.MethodTested("removeEventListener()", bOK) Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub Sub CB1_disposing Out.Log("CallBack for Listener1 disposing was called.") bCB1 = true End Sub Sub CB2_disposing Out.Log("CallBack for Listener2 disposing was called.") bCB2 = true End Sub