blob: 31ce4b8812a9dafaeb5f2fc45165343737563006 [file] [log] [blame]
<?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="connection_XAcceptor" script:language="StarBasic">
'*************************************************************************
'
' 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.
'
'*************************************************************************
' Be sure that all variables are dimensioned:
option explicit
Sub RunTest()
'*************************************************************************
' INTERFACE:
' com.sun.star.connection.XAcceptor
'*************************************************************************
On Error Goto ErrHndl
Dim bOK As Boolean
Dim oConnector As Object
Dim xConnection As Object
Dim sConnectionString As String
Dim args(1) As Variant
bOK = true
Test.startMethod("accept()")
oConnector = createUnoService("basichelper.Connector")
Dim iPos1 As Integer, iPos2 As Integer
iPos1 = inStr(1, CNCSTR, "socket")
iPos2 = inStr(iPos1, CNCSTR, "port=")
sConnectionString = mid(CNCSTR, iPos1, iPos2 - iPos1 + 5) &amp; "18888"
Out.Log("Connection string is '" &amp; sConnectionString &amp; "'")
args(0) = createUnoService("com.sun.star.connection.Connector")
args(1) = sConnectionString
' When call initialize() method, a new thread is created and tries to
' connect to Acceptor after some seconds.
oConnector.initialize(args())
' Starting acception.
xConnection = oObj.accept(sConnectionString)
wait(500) 'Just to be sure that component had a chance to change it's state.
bOK = bOK AND hasUNOInterfaces(xConnection, "com.sun.star.connection.XConnection")
Out.Log("Connector's state is '" &amp; oConnector.getByName("State") &amp; "'")
bOK = bOK AND oConnector.getByName("State") = "connected" ' This means that connection was established.
if (bOK) then
Out.Log("Connection established! Trying to get data from stream.")
Dim aStr As String
Dim aByte As Integer
Dim readData() As Variant
aStr = ""
aByte = 1
while (aByte &lt;&gt; 0)
ReDim readData() As Variant
xConnection.read(readData, 1)
aByte = readData(0)
if (aByte &lt;&gt; 0) then
aStr = aStr &amp; chr(aByte)
end if
wend
Out.Log("Returned data from stream is " &amp; aStr)
bOK = bOK AND aStr = sConnectionString
end if
Test.MethodTested("accept()", bOK)
Test.startMethod("stopAccepting()")
bOK = true
' Now stopping acception and trying to connect again
' (we can do this, if connection string is the same.)
oObj.stopAccepting()
Out.Log("Trying to connect after stopping accepting...")
oConnector.initialize(args())
Out.Log("Connector's state is '" &amp; oConnector.getByName("State") &amp; "'")
' Now oConnector shouldn't connect. So, check it's state
' after few seconds (= Connection's Timeout + 3 sec)
wait(3000 + oConnector.getByName("Timeout"))
Out.Log("Connector's state is '" &amp; oConnector.getByName("State") &amp; "'")
bOK = bOK AND oConnector.getByName("State") = "NoConnectException"
Test.MethodTested("stopAccepting()", bOK)
Exit Sub
ErrHndl:
Test.Exception()
resume next
End Sub
</script:module>