'************************************************************************* ' ' Licensed to the Apache Software Foundation (ASF) under one ' or more contributor license agreements. See the NOTICE file ' distributed with this work for additional information ' regarding copyright ownership. The ASF licenses this file ' to you under the Apache License, Version 2.0 (the ' "License"); you may not use this file except in compliance ' with the License. You may obtain a copy of the License at ' ' http://www.apache.org/licenses/LICENSE-2.0 ' ' Unless required by applicable law or agreed to in writing, ' software distributed under the License is distributed on an ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ' KIND, either express or implied. See the License for the ' specific language governing permissions and limitations ' under the License. ' '************************************************************************* '************************************************************************* ' This Interface/Service test depends on the following GLOBAL variables, ' which must be specified in the object creation: ' - Global oPipe As Object ' - Global PumpOUTFileName As String '************************************************************************* Dim oListener1 As Object Dim oListener2 As Object Dim CB1Started As Integer Dim CB1Closed As Integer Dim CB1Terminated As Integer Dim CB1Error As Integer Dim CB2Started As Integer Dim CB2Closed As Integer Dim CB2Terminated As Integer Dim CB2Error As Integer Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.io.XActiveDataControl '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim iSize As Integer oFileAcc = createUnoService("com.sun.star.ucb.SimpleFileAccess") Dim aBytes(10) As Integer for i = 0 to ubound(aBytes()) aBytes(i) = i * 3 next i Test.StartMethod("start()") Test.StartMethod("terminate()") bOK = true Out.Log("Writing some bytes to Pipe") oPipe.writeBytes(aBytes()) Out.Log("The pump was not started yet. So, PumpOUT should be of zero size") Out.Log("Terminating a pipe to have an opportunity to get a file size") oObj.terminate() iSize = oFileAcc.getSize(PumpOUTFileName) Out.Log("Size of file is " & iSize) bOK = bOK AND iSize = 0 DisposeObj() CreateObj() Out.Log("Writing bytes again (because object was destroyed)") oPipe.writeBytes(aBytes()) Out.Log("... and starting pump") oObj.start() wait(100) Out.Log("Now PumpOUT should have size " & ubound(aBytes()) + 1) Out.Log("Terminating a pipe to have an opportunity to get a file size") oObj.terminate() iSize = oFileAcc.getSize(PumpOUTFileName) Out.Log("Size of file is " & iSize) bOK = bOK AND iSize = ubound(aBytes()) + 1 Test.MethodTested("start()", bOK) Test.MethodTested("terminate()", bOK) DisposeObj() CreateObj() ResetCounters() oListener1 = createUnoListener("CB1_", "com.sun.star.io.XStreamListener") oListener2 = createUnoListener("CB2_", "com.sun.star.io.XStreamListener") Test.StartMethod("addListener()") bOK = true Out.Log("adding two listeners") oObj.addListener(oListener1) oObj.addListener(oListener2) oPipe.writeBytes(aBytes()) oObj.start() wait(100) ' for listeners to change counters bOK = CB1Started = 1 AND CB2Started = 1 Test.MethodTested("addListener()", bOK) DisposeObj() CreateObj() ResetCounters() Test.StartMethod("removeListener()") bOK = true Out.Log("adding two listeners") oObj.addListener(oListener1) oObj.addListener(oListener2) Out.Log("Removing first listener...") oObj.removeListener(oListener1) oPipe.writeBytes(aBytes()) oObj.start() wait(100) bOK = CB1Started = 0 AND CB2Started = 1 Test.MethodTested("removeListener()", bOK) DisposeObj() CreateObj() Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub Sub ResetCounters() CB1Started = 0 CB1Closed = 0 CB1Terminated = 0 CB1Error = 0 CB2Started = 0 CB2Closed = 0 CB2Terminated = 0 CB2Error = 0 End Sub Sub CB1_Started() Out.Log("CB1_Started called") CB1Started = CB1Started + 1 End Sub Sub CB2_Started() Out.Log("CB2_Started called") CB2Started = CB2Started + 1 End Sub Sub CB1_Closed() Out.Log("CB1_Closed called") CB1Closed = CB1Closed + 1 End Sub Sub CB2_Closed() Out.Log("CB2_Closed called") CB2Closed = CB2Closed + 1 End Sub Sub CB1_Terminated() Out.Log("CB1_Terminated called") CB1Terminated = CB1Terminated + 1 End Sub Sub CB2_Terminated() Out.Log("CB2_Terminated called") CB2Terminated = CB2Terminated + 1 End Sub Sub CB1_Error(aError As Object) Out.Log("CB1_Error called") CB1Error = CB1Error + 1 End Sub Sub CB2_Error(aError As Object) Out.Log("CB2_Error called") CB2Error = CB2Error + 1 End Sub