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
9
12
14 component_path = 'xmlmenu:playlist_node_builder'
15 entry_identifiers = ['playlist_node']
16
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
31 self.assertEquals(len(data.children), 4)
32 self.component.unload(data)
33
34 self.assertEquals(len(a.player_model.playlist), 3)
35
36 def done_callback(data, test_model, a):
37
38 self.assertEquals(len(test_model.children), 1)
39 data = test_model.children[0]
40
41 self.assertEquals(data.activity, self.component)
42
43
44 self.assertEquals(len(data.children), 3)
45 self.assertEquals(data.children, ['a', 'b', 'c'])
46
47
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