25 SITEACTIONS = [('siteconfig', actions.SiteConfigurationAction), |
25 SITEACTIONS = [('siteconfig', actions.SiteConfigurationAction), |
26 ('manage', actions.ManageAction), |
26 ('manage', actions.ManageAction), |
27 ('schema', schema.ViewSchemaAction), |
27 ('schema', schema.ViewSchemaAction), |
28 ('siteinfo', actions.SiteInfoAction), |
28 ('siteinfo', actions.SiteInfoAction), |
29 ] |
29 ] |
|
30 FOOTERACTIONS = [('changelog', wdoc.ChangeLogAction), |
|
31 ('about', wdoc.AboutAction), |
|
32 ('poweredby', actions.PoweredByAction)] |
30 |
33 |
31 class ViewSelectorTC(EnvBasedTC): |
34 class ViewSelectorTC(EnvBasedTC): |
32 |
35 |
33 def setup_database(self): |
36 def setup_database(self): |
34 self.add_entity('BlogEntry', title=u"une news !", content=u"cubicweb c'est beau") |
37 self.add_entity('BlogEntry', title=u"une news !", content=u"cubicweb c'est beau") |
218 def test_possible_actions_none_rset(self): |
221 def test_possible_actions_none_rset(self): |
219 req = self.request() |
222 req = self.request() |
220 self.assertDictEqual(self.pactions(req, None), |
223 self.assertDictEqual(self.pactions(req, None), |
221 {'useractions': USERACTIONS, |
224 {'useractions': USERACTIONS, |
222 'siteactions': SITEACTIONS, |
225 'siteactions': SITEACTIONS, |
|
226 'footer': FOOTERACTIONS, |
223 |
227 |
224 }) |
228 }) |
225 def test_possible_actions_no_entity(self): |
229 def test_possible_actions_no_entity(self): |
226 rset, req = self.env.get_rset_and_req('Any X WHERE X eid 999999') |
230 rset, req = self.env.get_rset_and_req('Any X WHERE X eid 999999') |
227 self.assertDictEqual(self.pactions(req, rset), |
231 self.assertDictEqual(self.pactions(req, rset), |
228 {'useractions': USERACTIONS, |
232 {'useractions': USERACTIONS, |
229 'siteactions': SITEACTIONS, |
233 'siteactions': SITEACTIONS, |
|
234 'footer': FOOTERACTIONS, |
230 }) |
235 }) |
231 |
236 |
232 def test_possible_actions_same_type_entities(self): |
237 def test_possible_actions_same_type_entities(self): |
233 rset, req = self.env.get_rset_and_req('CWGroup X') |
238 rset, req = self.env.get_rset_and_req('CWGroup X') |
234 self.assertDictEqual(self.pactions(req, rset), |
239 self.assertDictEqual(self.pactions(req, rset), |
235 {'useractions': USERACTIONS, |
240 {'useractions': USERACTIONS, |
236 'siteactions': SITEACTIONS, |
241 'siteactions': SITEACTIONS, |
|
242 'footer': FOOTERACTIONS, |
237 'mainactions': [('muledit', actions.MultipleEditAction)], |
243 'mainactions': [('muledit', actions.MultipleEditAction)], |
238 'moreactions': [('delete', actions.DeleteAction), |
244 'moreactions': [('delete', actions.DeleteAction), |
239 ('addentity', actions.AddNewAction)], |
245 ('addentity', actions.AddNewAction)], |
240 }) |
246 }) |
241 |
247 |
242 def test_possible_actions_different_types_entities(self): |
248 def test_possible_actions_different_types_entities(self): |
243 rset, req = self.env.get_rset_and_req('Any X') |
249 rset, req = self.env.get_rset_and_req('Any X') |
244 self.assertDictEqual(self.pactions(req, rset), |
250 self.assertDictEqual(self.pactions(req, rset), |
245 {'useractions': USERACTIONS, |
251 {'useractions': USERACTIONS, |
246 'siteactions': SITEACTIONS, |
252 'siteactions': SITEACTIONS, |
|
253 'footer': FOOTERACTIONS, |
247 'moreactions': [('delete', actions.DeleteAction)], |
254 'moreactions': [('delete', actions.DeleteAction)], |
248 }) |
255 }) |
249 |
256 |
250 def test_possible_actions_final_entities(self): |
257 def test_possible_actions_final_entities(self): |
251 rset, req = self.env.get_rset_and_req('Any N, X WHERE X in_group Y, Y name N') |
258 rset, req = self.env.get_rset_and_req('Any N, X WHERE X in_group Y, Y name N') |
252 self.assertDictEqual(self.pactions(req, rset), |
259 self.assertDictEqual(self.pactions(req, rset), |
253 {'useractions': USERACTIONS, |
260 {'useractions': USERACTIONS, |
254 'siteactions': SITEACTIONS}) |
261 'siteactions': SITEACTIONS, |
|
262 'footer': FOOTERACTIONS, |
|
263 }) |
255 |
264 |
256 def test_possible_actions_eetype_cwuser_entity(self): |
265 def test_possible_actions_eetype_cwuser_entity(self): |
257 rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWUser"') |
266 rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWUser"') |
258 self.assertDictEqual(self.pactions(req, rset), |
267 self.assertDictEqual(self.pactions(req, rset), |
259 {'useractions': USERACTIONS, |
268 {'useractions': USERACTIONS, |
260 'siteactions': SITEACTIONS, |
269 'siteactions': SITEACTIONS, |
|
270 'footer': FOOTERACTIONS, |
261 'mainactions': [('edit', actions.ModifyAction)], |
271 'mainactions': [('edit', actions.ModifyAction)], |
262 'moreactions': [('managepermission', actions.ManagePermissionsAction), |
272 'moreactions': [('managepermission', actions.ManagePermissionsAction), |
263 ('addrelated', actions.AddRelatedActions), |
273 ('addrelated', actions.AddRelatedActions), |
264 ('delete', actions.DeleteAction), |
274 ('delete', actions.DeleteAction), |
265 ('copy', actions.CopyAction), |
275 ('copy', actions.CopyAction), |
363 self.vreg['views'].select, 'creation', req, rset=rset) |
373 self.vreg['views'].select, 'creation', req, rset=rset) |
364 self.assertIsInstance(self.vreg['views'].select('table', req, rset=rset), |
374 self.assertIsInstance(self.vreg['views'].select('table', req, rset=rset), |
365 tableview.TableView) |
375 tableview.TableView) |
366 |
376 |
367 def test_interface_selector(self): |
377 def test_interface_selector(self): |
368 image = self.add_entity('Image', name=u'bim.png', data=Binary('bim')) |
378 image = self.add_entity('Image', data_name=u'bim.png', data=Binary('bim')) |
369 # image primary view priority |
379 # image primary view priority |
370 rset, req = self.env.get_rset_and_req('Image X WHERE X name "bim.png"') |
380 rset, req = self.env.get_rset_and_req('Image X WHERE X data_name "bim.png"') |
371 self.assertIsInstance(self.vreg['views'].select('primary', req, rset=rset), |
381 self.assertIsInstance(self.vreg['views'].select('primary', req, rset=rset), |
372 idownloadable.IDownloadablePrimaryView) |
382 idownloadable.IDownloadablePrimaryView) |
373 |
383 |
374 |
384 |
375 def test_score_entity_selector(self): |
385 def test_score_entity_selector(self): |
376 image = self.add_entity('Image', name=u'bim.png', data=Binary('bim')) |
386 image = self.add_entity('Image', data_name=u'bim.png', data=Binary('bim')) |
377 # image primary view priority |
387 # image primary view priority |
378 rset, req = self.env.get_rset_and_req('Image X WHERE X name "bim.png"') |
388 rset, req = self.env.get_rset_and_req('Image X WHERE X data_name "bim.png"') |
379 self.assertIsInstance(self.vreg['views'].select('image', req, rset=rset), |
389 self.assertIsInstance(self.vreg['views'].select('image', req, rset=rset), |
380 idownloadable.ImageView) |
390 idownloadable.ImageView) |
381 fileobj = self.add_entity('File', name=u'bim.txt', data=Binary('bim')) |
391 fileobj = self.add_entity('File', data_name=u'bim.txt', data=Binary('bim')) |
382 # image primary view priority |
392 # image primary view priority |
383 rset, req = self.env.get_rset_and_req('File X WHERE X name "bim.txt"') |
393 rset, req = self.env.get_rset_and_req('File X WHERE X data_name "bim.txt"') |
384 self.assertRaises(NoSelectableObject, self.vreg['views'].select, 'image', req, rset=rset) |
394 self.assertRaises(NoSelectableObject, self.vreg['views'].select, 'image', req, rset=rset) |
385 |
395 |
386 |
396 |
387 |
397 |
388 def _test_view(self, vid, rql, args): |
398 def _test_view(self, vid, rql, args): |
445 def test(self): |
455 def test(self): |
446 rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWEType"') |
456 rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWEType"') |
447 self.assertDictEqual(self.pactions(req, rset), |
457 self.assertDictEqual(self.pactions(req, rset), |
448 {'useractions': USERACTIONS, |
458 {'useractions': USERACTIONS, |
449 'siteactions': SITEACTIONS, |
459 'siteactions': SITEACTIONS, |
|
460 'footer': FOOTERACTIONS, |
450 'mainactions': [('edit', actions.ModifyAction)], |
461 'mainactions': [('edit', actions.ModifyAction)], |
451 'moreactions': [('managepermission', actions.ManagePermissionsAction), |
462 'moreactions': [('managepermission', actions.ManagePermissionsAction), |
452 ('addrelated', actions.AddRelatedActions), |
463 ('addrelated', actions.AddRelatedActions), |
453 ('delete', actions.DeleteAction), |
464 ('delete', actions.DeleteAction), |
454 ('copy', actions.CopyAction), |
465 ('copy', actions.CopyAction), |
457 }) |
468 }) |
458 rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWRType"') |
469 rset, req = self.env.get_rset_and_req('CWEType X WHERE X name "CWRType"') |
459 self.assertDictEqual(self.pactions(req, rset), |
470 self.assertDictEqual(self.pactions(req, rset), |
460 {'useractions': USERACTIONS, |
471 {'useractions': USERACTIONS, |
461 'siteactions': SITEACTIONS, |
472 'siteactions': SITEACTIONS, |
|
473 'footer': FOOTERACTIONS, |
462 'mainactions': [('edit', actions.ModifyAction)], |
474 'mainactions': [('edit', actions.ModifyAction)], |
463 'moreactions': [('managepermission', actions.ManagePermissionsAction), |
475 'moreactions': [('managepermission', actions.ManagePermissionsAction), |
464 ('addrelated', actions.AddRelatedActions), |
476 ('addrelated', actions.AddRelatedActions), |
465 ('delete', actions.DeleteAction), |
477 ('delete', actions.DeleteAction), |
466 ('copy', actions.CopyAction), |
478 ('copy', actions.CopyAction), |