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

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

 1   
 2  from node_builder_test import NodeBuilderTest, StupidModel 
 3  from elisa.core.tests.elisa_test_case import ElisaTestCase 
 4   
 5  from elisa.extern.coherence.et import parse_xml 
 6   
7 -class StupidPlayerModel(object):
8 pass
9
10 -class Activity(object):
11 player_model = StupidPlayerModel()
12
13 -class PlaylistNodeBuilderTest(NodeBuilderTest, ElisaTestCase):
14 component_path = 'xmlmenu:playlist_node_builder' 15 entry_identifiers = ['playlist_node'] 16
17 - def test_menu_node_builder(self):
18 19 data = """ 20 <MenuEntry type='playlist_node'> 21 <Label translate-domain='elisa-base'>Playlist</Label> 22 <Icon>audio_playlist_icon</Icon> 23 </MenuEntry> 24 """ 25 26 xml = parse_xml(data) 27 root = xml.getroot() 28 29 def loadmore_done(result, data, a): 30 # our 3 + Clear Playlist 31 self.assertEquals(len(data.children), 4) 32 self.component.unload(data) 33 # the clear playlist has be removed 34 self.assertEquals(len(a.player_model.playlist), 3)
35 36 def done_callback(data, test_model, a): 37 # got added 38 self.assertEquals(len(test_model.children), 1) 39 data = test_model.children[0] 40 41 self.assertEquals(data.activity, self.component) 42 43 # 3 items. Only loadmore gives us a third one 44 self.assertEquals(len(data.children), 3) 45 self.assertEquals(data.children, ['a', 'b', 'c']) 46 47 # try the loadmore: 48 dfr = self.component.loadmore(data) 49 dfr.addCallback(loadmore_done, data, a) 50 return dfr
51 52 test_model = StupidModel() 53 test_model.children = [] 54 menu_config = { 55 'DefaultDirsIcon' : 'dir_icon', 56 'DefaultFilesIcon' : 'file_icon', 57 'MediaFilter' : 'ANY', 58 'ContentType' : 'sections' } 59 a = Activity() 60 a.player_model.playlist = ['a', 'b', 'c'] 61 test_model.activity = a 62 self.xmlmenu._model_configs[test_model] = menu_config 63 64 dfr = self.component.build_menu_entry(test_model, root) 65 dfr.addCallback(done_callback, test_model, a) 66