Package elisa :: Package plugins :: Package good :: Package xmlmenu :: Package tests :: Module test_xdg_entry_builder
[hide private]
[frames] | no frames]

Source Code for Module elisa.plugins.good.xmlmenu.tests.test_xdg_entry_builder

 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
18 - def test_get_entries(self):
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 # It should NOT read the directory-desktop-file 30 self.assertEquals(len(data), 3) 31 for item in data: 32 text = item.text.lower() 33 is_in = False 34 # not nice way of testing it without knowing the order 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
49 - def test_missing_path(self):
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
67 - def test_wrong_path(self):
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