'************************************************************************* ' ' 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