2009-07-06 Mark Doffman <mark.doffman@codethink.co.uk>
[platform/core/uifw/at-spi2-atk.git] / tests / pyatspi / relationtest.py
1 import dbus
2 import gobject
3 import os.path
4
5 from xml.dom import minidom
6 import os
7
8 from pasytest import PasyTest as _PasyTest
9
10 import pyatspi
11
12 class RelationTest(_PasyTest):
13
14         __tests__ = ["setup",
15                      "teardown",
16                      "test_getRelationType",
17                      "test_getRelationTypeName",
18                      "test_getNTargets",
19                      "test_getTarget",
20                      ]
21
22         def __init__(self, bus, path):
23                 _PasyTest.__init__(self, "Relation", False)
24                 self._bus = bus
25                 self._path = path
26
27         def setup(self, test):
28                 self._registry = pyatspi.Registry()
29                 self._desktop = self._registry.getDesktop(0)
30                 self._root = self._desktop[0]
31                 self._rset = self._root.getRelationSet()
32                 test.assertEqual(len(self._rset), 4, "Num relations expected %d, recieved %d" % (6, len(self._rset)))
33
34         def test_getRelationType(self, test):
35                 expected = [pyatspi.RELATION_EMBEDS,
36                             pyatspi.RELATION_PARENT_WINDOW_OF,
37                             pyatspi.RELATION_DESCRIBED_BY,
38                             pyatspi.RELATION_POPUP_FOR,]
39                 rtypes = [rel.getRelationType() for rel in self._rset]
40                 for exp, type in zip(expected, rtypes):
41                         test.assertEqual(exp, type, "Relation type expected %s, recieved %s" % (exp, type))
42
43         def test_getRelationTypeName(self, test):
44                 # FIXME This may not have been implemented in CORBA.
45                 #       Completely unused?
46                 pass
47
48         def test_getNTargets(self, test):
49                 expected = [1, 1, 1, 3]
50                 ntargs = [rel.getNTargets() for rel in self._rset]
51                 for exp, ntarg in zip(expected, ntargs):
52                         test.assertEqual(exp, ntarg, "Number of targets expected %s, recieved %s" % (exp, ntarg))
53
54         def test_getTarget(self, test):
55                 rone = self._rset[0]
56                 tone = rone.getTarget(0)
57                 tonename = tone.name
58                 test.assertEqual(tonename, "r1", "Target name expected %s, recieved %s" % ("r1", tonename))
59                 tonerole = tone.getRoleName()
60                 test.assertEqual(tonerole, "invalid", "Target RoleName expected %s, recieved %s" % ("invalid", tonename))
61
62                 rtwo = self._rset[3]
63                 ttwo = rtwo.getTarget(2)
64                 ttwoname = ttwo.name
65                 test.assertEqual(ttwoname, "m3", "Target name expected %s, recieved %s" % ("m3", ttwoname))
66                 ttworole = ttwo.getRoleName()
67                 test.assertEqual(ttworole, "invalid", "Target RoleName expected %s, recieved %s" % ("invalid", ttwoname))
68
69         def teardown(self, test):
70                 pass