summaryrefslogtreecommitdiff
path: root/qadevOOo/tests/basic/ifc/io/XActiveDataSink/io_XActiveDataSink.xba
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/basic/ifc/io/XActiveDataSink/io_XActiveDataSink.xba')
-rw-r--r--qadevOOo/tests/basic/ifc/io/XActiveDataSink/io_XActiveDataSink.xba112
1 files changed, 112 insertions, 0 deletions
diff --git a/qadevOOo/tests/basic/ifc/io/XActiveDataSink/io_XActiveDataSink.xba b/qadevOOo/tests/basic/ifc/io/XActiveDataSink/io_XActiveDataSink.xba
new file mode 100644
index 000000000000..d28d501553cd
--- /dev/null
+++ b/qadevOOo/tests/basic/ifc/io/XActiveDataSink/io_XActiveDataSink.xba
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="io_XActiveDataSink" script:language="StarBasic">
+
+
+'*************************************************************************
+'
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+'
+' Copyright 2000, 2010 Oracle and/or its affiliates.
+'
+' OpenOffice.org - a multi-platform office productivity suite
+'
+' 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
+' <http://www.openoffice.org/license.html>
+' 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()) &lt;&gt; 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
+</script:module>