Esempio n. 1
0
    def test_render_url_item04(self):
        "Perm is callable"
        self.login(is_superuser=False)

        url = '/creme/add_contact'
        item = URLItem('home', url=url, label='Create contact',
                       perm=lambda user: user.is_superuser
                      )

        elt = html5lib.parse(item.render(self.build_context()), namespaceHTMLElements=False)
        span_node = elt.find('.//span')
        self.assertEqual('ui-creme-navigation-text-entry forbidden', span_node.get('class'))

        # ---
        item.perm = lambda user: True
        elt = html5lib.parse(item.render(self.build_context()), namespaceHTMLElements=False)
        self.assertIsNone(elt.find('.//span'))

        a_node = elt.find('.//a')
        self.assertEqual(url, a_node.get('href'))
Esempio n. 2
0
    def test_render_url_item02(self):
        "URLItem with icon and label"
        icon = 'creme'
        my_label = 'HOME'
        item = URLItem('home', url='/', label=my_label,
                       icon=icon, icon_label='Home',
                       perm='creme_core',
                      )

        elt = html5lib.parse(item.render(self.build_context()), namespaceHTMLElements=False)
        img_node = elt.find('.//a/img')
        self.assertEqual('header-menu-icon', img_node.get('class'))
        self.assertEqual(my_label,           img_node.tail)
Esempio n. 3
0
    def test_render_url_item03(self):
        "Not allowed (string perm)"
        self.login(is_superuser=False, allowed_apps=['creme_core'])

        icon = 'creme'
        my_label = 'HOME'
        item = URLItem('home', url='/', label=my_label, icon=icon, icon_label='Home',
                       perm='creme_core.add_fakecontact',
                      )

        elt = html5lib.parse(item.render(self.build_context()), namespaceHTMLElements=False)
        span_node = elt.find('.//span')
        self.assertEqual('ui-creme-navigation-text-entry forbidden', span_node.get('class'))

        children = list(span_node)
        self.assertEqual(1, len(children))
        self.assertEqual('img', children[0].tag)
Esempio n. 4
0
    def test_render_url_item01(self):
        "URLItem with icon"
        url = '/'
        icon = 'creme'
        label = 'Home'
        item = URLItem('home', url=url, icon=icon, icon_label=label)

        elt = html5lib.parse(item.render(self.build_context()), namespaceHTMLElements=False)
        a_node = elt.find('.//a')
        self.assertEqual(url, a_node.get('href'))

        children = list(a_node)
        self.assertEqual(1, len(children))

        img_node = children[0]
        self.assertEqual('img',              img_node.tag)
        self.assertEqual('header-menu-icon', img_node.get('class'))
        self.assertEqual(label,              img_node.get('alt'))
        self.assertEqual(label,              img_node.get('title'))
        self.assertIn(icon,                  img_node.get('src', ''))
        self.assertFalse(img_node.tail)