1
2 from node_builder_test import NodeBuilderTest, StupidModel
3 from elisa.core.tests.elisa_test_case import ElisaTestCase
4
5 from elisa.core import common
6
7 from elisa.extern.coherence.et import parse_xml
8
9 import os
10
11 -class XdgEntryBuilderTest(NodeBuilderTest, ElisaTestCase):
12 component_path = 'xmlmenu:xdg_entry_builder'
13 entry_identifiers = ['xdg_desktop_path']
14 data_path = 'data'
15 file_name = 'xdg_test.xml'
16
17
19 data_path = os.path.join(self.directory, self.data_path)
20 xml_file = os.path.join(data_path, self.file_name)
21
22 data = open(xml_file).read()
23 data = data.replace('__PATH__', data_path)
24 xml = parse_xml(data)
25 root = xml.getroot()
26
27 def done_callback(data):
28 done_list = ['pidgin' , 'thunderbird' , 'firefox']
29
30 self.assertEquals(len(data), 3)
31 for item in data:
32 text = item.text.lower()
33 is_in = False
34
35 for i in done_list:
36 if i in text:
37 is_in = True
38 break
39
40 if not is_in:
41 self.fail()
42
43 test_entry = root.find('TestEntry')
44 test_model = StupidModel()
45 dfr = self.component.build_menu_entry(test_model, test_entry)
46 dfr.addCallback(done_callback)
47 return dfr
48
50
51 data = """
52 <MenuEntry type='xdg_desktop_path'>
53 </MenuEntry>
54 """
55 xml = parse_xml(data)
56 root = xml.getroot()
57
58 def done_callback(data, test_model):
59 self.assertEquals(data, [])
60 self.assertEquals(test_model.children, [])
61
62 test_model = StupidModel()
63 test_model.children = []
64 dfr = self.component.build_menu_entry(test_model, root)
65 dfr.addCallback(done_callback, test_model)
66
68
69 data = """
70 <MenuEntry type='xdg_desktop_path'>
71 <Path>./file://*gradetz</Path>
72 </MenuEntry>
73 """
74 xml = parse_xml(data)
75 root = xml.getroot()
76
77 def done_callback(data, test_model):
78 self.assertEquals(data, [])
79 self.assertEquals(test_model.children, [])
80
81 test_model = StupidModel()
82 test_model.children = []
83 dfr = self.component.build_menu_entry(test_model, root)
84 dfr.addCallback(done_callback, test_model)
85