'************************************************************************* ' ' 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: io_XActiveDataSink.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. ' '************************************************************************* '************************************************************************* ' Be sure that all variables are dimensioned: option explicit Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.io.XActiveDataSink '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim oIS As Object, oPipe As Object, oGetPipe As Object Dim aData As Variant, aGetData As Variant Dim bytesRead As Variant ResetStreams() Test.StartMethod("getInputStream()") bOK = true oIS = oObj.getInputStream() bOK = bOK AND hasUnoInterfaces(oIS, "com.sun.star.io.XInputStream") Test.MethodTested("getInputStream()", bOK) Test.StartMethod("setInputStream()") bOK = true oPipe = createUnoService("com.sun.star.io.Pipe") aData = Array(23, 65, 32, 119) oPipe.writeBytes(aData) oObj.setInputStream(oPipe) oGetPipe = oObj.getInputStream() aGetData = dimArray(ubound(aData()) bytesRead = oGetPipe.readBytes(aGetData(), ubound(aData()) + 1) Out.Log("Reading bytes: " + bytesRead) bOK = bOK AND cmpArrays(aData, aGetData) Out.Log("Setting old input stream ...") oObj.setInputStream(oIS) Test.MethodTested("setInputStream()", bOK) Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub Function cmpArrays(arr1 As Variant, arr2 As Variant) As Boolean On Error Goto ErrHndl Dim bRet As Boolean Dim i As Integer bRet = true if (isNull(arr1) OR isNull(arr2)) then bRet = false Out.Log("One of arrays is null") else if (ubound(arr1()) <> ubound(arr2())) then Out.Log("UBOUND of 1st array is " + ubound(arr1()) + _ "UBOUND of 2nd array is " + ubound(arr2())) bRet = false else for i = 0 to ubound(arr1()) Out.Log("(" + i + "): " + arr1(i) + "-" + arr2(i)) bRet = bRet AND (arr1(i) = arr2(i)) next i end if end if cmpArrays() = bRet exit Function ErrHndl: Test.Exception() cmpArrays() = false End Function