1cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?>
2cdf0e10cSrcweir<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3cdf0e10cSrcweir<script:module xmlns:script="http://openoffice.org/2000/script" script:name="accessibility_XAccessibleContext" script:language="StarBasic">
4cdf0e10cSrcweir
5cdf0e10cSrcweir
6cdf0e10cSrcweir'*************************************************************************
7cdf0e10cSrcweir'
8*3e6afcd2SAndrew Rist'  Licensed to the Apache Software Foundation (ASF) under one
9*3e6afcd2SAndrew Rist'  or more contributor license agreements.  See the NOTICE file
10*3e6afcd2SAndrew Rist'  distributed with this work for additional information
11*3e6afcd2SAndrew Rist'  regarding copyright ownership.  The ASF licenses this file
12*3e6afcd2SAndrew Rist'  to you under the Apache License, Version 2.0 (the
13*3e6afcd2SAndrew Rist'  "License"); you may not use this file except in compliance
14*3e6afcd2SAndrew Rist'  with the License.  You may obtain a copy of the License at
15*3e6afcd2SAndrew Rist'
16*3e6afcd2SAndrew Rist'    http://www.apache.org/licenses/LICENSE-2.0
17*3e6afcd2SAndrew Rist'
18*3e6afcd2SAndrew Rist'  Unless required by applicable law or agreed to in writing,
19*3e6afcd2SAndrew Rist'  software distributed under the License is distributed on an
20*3e6afcd2SAndrew Rist'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21*3e6afcd2SAndrew Rist'  KIND, either express or implied.  See the License for the
22*3e6afcd2SAndrew Rist'  specific language governing permissions and limitations
23*3e6afcd2SAndrew Rist'  under the License.
24cdf0e10cSrcweir'
25cdf0e10cSrcweir'*************************************************************************
26cdf0e10cSrcweir
27cdf0e10cSrcweir
28cdf0e10cSrcweir
29*3e6afcd2SAndrew Rist
30*3e6afcd2SAndrew Rist
31cdf0e10cSrcweir' Be sure that all variables are dimensioned:
32cdf0e10cSrcweiroption explicit
33cdf0e10cSrcweir
34cdf0e10cSrcweir
35cdf0e10cSrcweir
36cdf0e10cSrcweir
37cdf0e10cSrcweirSub RunTest()
38cdf0e10cSrcweir
39cdf0e10cSrcweir'*************************************************************************
40cdf0e10cSrcweir' INTERFACE:
41cdf0e10cSrcweir' com.sun.star.accessibility.XAccessibleContext
42cdf0e10cSrcweir'*************************************************************************
43cdf0e10cSrcweirOn Error Goto ErrHndl
44cdf0e10cSrcweir    Dim bOK As Boolean
45cdf0e10cSrcweir    Dim childCount As Long, i As Integer
46cdf0e10cSrcweir    Dim oParent As Object
47cdf0e10cSrcweir
48cdf0e10cSrcweir    Test.StartMethod("getAccessibleChildCount()")
49cdf0e10cSrcweir    bOK = true
50cdf0e10cSrcweir    childCount = oObj.getAccessibleChildCount()
51cdf0e10cSrcweir    bOK = bOK AND (childCount &gt; -1)
52cdf0e10cSrcweir    Test.MethodTested("getAccessibleChildCount()",bOK)
53cdf0e10cSrcweir
54cdf0e10cSrcweir
55cdf0e10cSrcweir    Test.StartMethod("getAccessibleChild()")
56cdf0e10cSrcweir    Dim childContext As Object
57cdf0e10cSrcweir    Dim mCount As Integer
58cdf0e10cSrcweir    bOK = true
59cdf0e10cSrcweir    i = 0
60cdf0e10cSrcweir    if (childCount &gt; 50) then
61cdf0e10cSrcweir        mCount = 50
62cdf0e10cSrcweir    else
63cdf0e10cSrcweir        mCount = childCount
64cdf0e10cSrcweir    End If
65cdf0e10cSrcweir    while (i &lt; mCount)
66cdf0e10cSrcweir        childContext = oObj.getAccessibleChild(i).getAccessibleContext()
67cdf0e10cSrcweir        Out.Log("  Child " + i + ": " + childContext.getAccessibleDescription())
68cdf0e10cSrcweir        bOK = bOK AND utils.at_equals(childContext.getAccessibleParent(), oObj)
69cdf0e10cSrcweir        i = i + 1
70cdf0e10cSrcweir    wend
71cdf0e10cSrcweir    Test.MethodTested("getAccessibleChild()",bOK)
72cdf0e10cSrcweir
73cdf0e10cSrcweir
74cdf0e10cSrcweir    Test.StartMethod("getAccessibleParent()")
75cdf0e10cSrcweir    bOK = true
76cdf0e10cSrcweir    oParent = oObj.getAccessibleParent()
77cdf0e10cSrcweir    bOK = bOK AND NOT isNull(oParent)
78cdf0e10cSrcweir    Test.MethodTested("getAccessibleParent()",bOK)
79cdf0e10cSrcweir
80cdf0e10cSrcweir
81cdf0e10cSrcweir    Test.StartMethod("getAccessibleIndexInParent()")
82cdf0e10cSrcweir    Dim idx As Integer
83cdf0e10cSrcweir    Dim parentAC As Object
84cdf0e10cSrcweir    bOK = true
85cdf0e10cSrcweir    idx = oObj.getAccessibleIndexInParent()
86cdf0e10cSrcweir    parentAC = oParent.getAccessibleContext()
87cdf0e10cSrcweir    bOK = bOK AND utils.at_equals(parentAC.getAccessibleChild(idx), oObj)
88cdf0e10cSrcweir    Test.MethodTested("getAccessibleIndexInParent()",bOK)
89cdf0e10cSrcweir
90cdf0e10cSrcweir
91cdf0e10cSrcweir    Test.StartMethod("getAccessibleRole()")
92cdf0e10cSrcweir    Dim role As Integer
93cdf0e10cSrcweir    bOK = true
94cdf0e10cSrcweir    role = oObj.getAccessibleRole()
95cdf0e10cSrcweir    Out.Log("The role is " + role)
96cdf0e10cSrcweir    bOK = bOK AND (role &gt; -1)
97cdf0e10cSrcweir    Test.MethodTested("getAccessibleRole()",bOK)
98cdf0e10cSrcweir
99cdf0e10cSrcweir
100cdf0e10cSrcweir    Test.StartMethod("getAccessibleDescription()")
101cdf0e10cSrcweir    Dim descr As String
102cdf0e10cSrcweir    bOK = true
103cdf0e10cSrcweir    descr = oObj.getAccessibleDescription()
104cdf0e10cSrcweir    Out.Log("The description is " + descr)
105cdf0e10cSrcweir    bOK = bOK AND NOT isNull(descr)
106cdf0e10cSrcweir    Test.MethodTested("getAccessibleDescription()",bOK)
107cdf0e10cSrcweir
108cdf0e10cSrcweir
109cdf0e10cSrcweir    Test.StartMethod("getAccessibleName()")
110cdf0e10cSrcweir    Dim oName As String
111cdf0e10cSrcweir    bOK = true
112cdf0e10cSrcweir    oName = oObj.getAccessibleName()
113cdf0e10cSrcweir    Out.Log("The name is " + oName)
114cdf0e10cSrcweir    bOK = bOK AND NOT isNull(oName)
115cdf0e10cSrcweir    Test.MethodTested("getAccessibleName()",bOK)
116cdf0e10cSrcweir
117cdf0e10cSrcweir
118cdf0e10cSrcweir    Test.StartMethod("getAccessibleRelationSet()")
119cdf0e10cSrcweir    Dim oSet As Variant
120cdf0e10cSrcweir    bOK = true
121cdf0e10cSrcweir    oSet = oObj.getAccessibleRelationSet()
122cdf0e10cSrcweir	' Relationset could be null
123cdf0e10cSrcweir	if not isNull(oSet) then
124cdf0e10cSrcweir		oSet.getRelationCount()
125cdf0e10cSrcweir	end if
126cdf0e10cSrcweir    Test.MethodTested("getAccessibleRelationSet()",bOK)
127cdf0e10cSrcweir
128cdf0e10cSrcweir
129cdf0e10cSrcweir    Test.StartMethod("getAccessibleStateSet()")
130cdf0e10cSrcweir    bOK = true
131cdf0e10cSrcweir    oSet = oObj.getAccessibleStateSet()
132cdf0e10cSrcweir    bOK = bOK AND NOT isNull(oSet)
133cdf0e10cSrcweir    if NOT bOK then Out.Log("This object does not support states")
134cdf0e10cSrcweir    Test.MethodTested("getAccessibleStateSet()",bOK)
135cdf0e10cSrcweir
136cdf0e10cSrcweir
137cdf0e10cSrcweir    Test.StartMethod("getLocale()")
138cdf0e10cSrcweir    Dim oLoc As Variant
139cdf0e10cSrcweir    bOK = true
140cdf0e10cSrcweir    oLoc = oObj.getLocale()
141cdf0e10cSrcweir    Out.Log("The locale is "+oLoc.Language+", "+oLoc.Country)
142cdf0e10cSrcweir    bOK = bOK AND NOT isNull(oLoc) AND (len(oLoc.Language) &gt; 0) AND (len(oLoc.Country) &gt; 0)
143cdf0e10cSrcweir    Test.MethodTested("getLocale()",bOK)
144cdf0e10cSrcweir
145cdf0e10cSrcweirExit Sub
146cdf0e10cSrcweirErrHndl:
147cdf0e10cSrcweir    Test.Exception()
148cdf0e10cSrcweir    bOK = false
149cdf0e10cSrcweir    resume next
150cdf0e10cSrcweirEnd Sub
151cdf0e10cSrcweir</script:module>
152