blob: f60837198e7fa21223ba90de933e94052dbb52a8 [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="accessibility_XAccessibleText" 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
'*************************************************************************
' This Interface/Service test depends on the following GLOBAL variables,
' which must be specified in the object creation:
' Global accText as String
' Global readOnly as Boolean
'*************************************************************************
Sub RunTest()
'*************************************************************************
' INTERFACE:
' com.sun.star.accessibility.XAccessibleText
'*************************************************************************
On Error Goto ErrHndl
Dim bOK As Boolean
Dim chCount As Integer
Dim accTextSegment as new com.sun.star.accessibility.TextSegment
Test.StartMethod("getCharacterCount()")
bOK = true
chCount = oObj.getCharacterCount()
Out.Log("Character count: "+chCount)
bOK = bOK AND (len(accText) = chCount)
Test.MethodTested("getCharacterCount()",bOK)
Test.StartMethod("getCaretPosition()")
Test.StartMethod("setCaretPosition()")
bOK = true
Dim carPos As Integer
oObj.setCaretPosition(chCount - 1)
carPos = oObj.getCaretPosition()
if not readOnly then
Out.Log("getCaretPosition: " + carPos)
bOK = bOK AND (carPos = chCount - 1)
else
Out.Log("Object is read only and Caret position couldn't be set")
end if
Test.MethodTested("getCaretPosition()",bOK)
Test.MethodTested("setCaretPosition()",bOK)
Test.StartMethod("getCharacter()")
Dim i As Integer
bOK = true
for i = 0 to chCount-1
bOK = bOK AND (chr(oObj.getCharacter(i)) = _
utils.getCharacter(i+1,accText))
next i
Test.MethodTested("getCharacter()",bOK)
Test.StartMethod("getCharacterAttributes()")
Dim attrs() As Variant
Dim ReqAttrs(0) as String
bOK = true
attrs = oObj.getCharacterAttributes(chCount - 1, ReqAttrs())
bOK = bOK AND NOT isNull(attrs)
Out.Log("Properties ubound: "+ubound(attrs))
Test.MethodTested("getCharacterAttributes()",bOK)
Test.StartMethod("getCharacterBounds()")
Dim chBounds As new com.sun.star.awt.Rectangle
bOK = true
chBounds = oObj.getCharacterBounds(chCount - 1)
Out.Log("Character boundbox: "+chBounds.X+", "+chBounds.Y+", "+ _
chBounds.Width+", "+chBounds.Height)
bOK = bOK AND NOT isNull(chBounds)
Test.MethodTested("getCharacterBounds()",bOK)
Test.StartMethod("getIndexAtPoint()")
Dim index As Integer
Dim point As new com.sun.star.awt.Point
bOK = true
point.X = chBounds.X + 1
point.Y = chBounds.Y + 1
index = oObj.getIndexAtPoint(point)
bOK = bOK AND (index = chCount -1)
Test.MethodTested("getIndexAtPoint()",bOK)
Test.StartMethod("getSelectedText()")
bOK = true
oObj.setSelection(0, chCount)
if not readOnly then
bOK = bOK AND (accText = oObj.getSelectedText())
else
Out.Log("Object is unselectable")
end if
Test.MethodTested("getSelectedText()",bOK)
Test.StartMethod("getSelectionStart()")
bOK = true
oObj.setSelection(chCount-1,chCount)
if not readOnly then
bOK = bOK AND (oObj.getSelectionStart() = chCount -1)
else
Out.Log("Object is unselectable")
end if
Test.MethodTested("getSelectionStart()",bOK)
Test.StartMethod("getSelectionEnd()")
bOK = true
oObj.setSelection(0,chCount - 1)
if not readOnly then
bOK = bOK AND (oObj.getSelectionEnd() = chCount - 1)
else
Out.Log("Object is unselectable")
end if
Test.MethodTested("getSelectionEnd()",bOK)
Test.StartMethod("setSelection()")
bOK = true
if not readOnly then
bOK = bOK AND oObj.setSelection(0,chCount)
else
Out.Log("Object is unselectable")
end if
Test.MethodTested("setSelection()",bOK)
Test.StartMethod("getText()")
bOK = true
bOK = bOK AND (accText = oObj.getText())
Test.MethodTested("getText()",bOK)
Test.StartMethod("getTextRange()")
bOK = true
bOK = bOK AND (accText = oObj.getTextRange(0,chCount))
Test.MethodTested("getTextRange()",bOK)
Test.StartMethod("getTextAtIndex()")
bOK = true
accTextSegment = oObj.getTextAtIndex(chCount - 1, 4)
bOK = bOK AND (accText = accTextSegment.SegmentText)
Test.MethodTested("getTextAtIndex()",bOK)
Test.StartMethod("getTextBeforeIndex()")
bOK = true
accTextSegment = oObj.getTextBeforeIndex(1, 1)
bOK = bOK AND (accTextSegment.SegmentText = utils.getCharacter(1,accText))
Test.MethodTested("getTextBeforeIndex()",bOK)
Test.StartMethod("getTextBehindIndex()")
bOK = true
accTextSegment = oObj.getTextBehindIndex(chCount-2,1)
bOK = bOK AND (accTextSegment.SegmentText = utils.getCharacter(chCount,accText))
Test.MethodTested("getTextBehindIndex()",bOK)
Test.StartMethod("copyText()")
bOK = true
bOK = bOK AND oObj.copyText(0,chCount)
if readOnly then bOK = true
Test.MethodTested("copyText()",bOK)
Exit Sub
ErrHndl:
Test.Exception()
bOK = false
resume next
End Sub
</script:module>