f63490d694bd3443ad3edfdff4b811fbad9dfbf3
[platform/core/uifw/at-spi2-atk.git] / tests / clients / accessibleobject.py
1 import unittest
2 import testutil
3
4 import dbus
5 import gobject
6 import os.path
7 from dbus.mainloop.glib import DBusGMainLoop
8
9 from accessible_cache import AccessibleCache
10
11 from xml.dom import minidom
12
13 def createNode(accessible, parentElement):
14         e = minidom.Element("accessible")
15
16         e.attributes["name"] = accessible.name
17         e.attributes["role"] = str(int(accessible.role))
18         e.attributes["description"] = accessible.description
19
20         for i in range(0, accessible.numChildren):
21                 createNode(accessible.getChild(i), e)
22
23         parentElement.appendChild(e)
24
25 class AccessibleObjectTestCase(unittest.TestCase):
26         def setUp(self):
27                 DBusGMainLoop(set_as_default=True)
28                 self._app = testutil.runTestApp("libobjectapp.so")
29
30                 self._bus = dbus.SessionBus()
31                 self._loop = gobject.MainLoop()
32                 self._cache = AccessibleCache(self._bus, testutil.busname, testutil.objectpath)
33
34         def tearDown(self):
35                 del(self._bus)
36                 del(self._loop)
37                 del(self._cache)
38                 #TODO Shut down the test application.
39                 del(self._app)
40
41         def runTest(self):
42                 root = self._cache.getRootAccessible()
43
44                 doc = minidom.Document()
45                 createNode(root, doc)
46                 answer = doc.toprettyxml()
47
48                 correct = os.path.join(testutil.testdata, "object-test-stage1-results.xml")
49                 file = open(correct)
50                 cstring = file.read()
51                 
52                 #import difflib
53                 #print ''.join(difflib.unified_diff(answer.splitlines(), cstring.splitlines()))
54                 
55                 self.assertEqual(answer, cstring, "Object tree not passed correctly")