示例#1
0
 def test_toolbar_with_items(self):
     """
     Test that PageTags/TitleTags items are present for superuser if PageTags/TitleTags exists for current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     page_ext = PageTags.objects.create(extended_object=page1)
     title_tags = TitleTags.objects.create(extended_object=page1.get_title_obj('en'))
     request = self.get_page_request(page1, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')[0].item
     tags_menu = page_menu.find_items(SubMenu, name=force_text(PAGE_TAGS_MENU_TITLE))[0].item
     pagetags_menu = tags_menu.find_items(ModalItem, name="{0}...".format(force_text(PAGE_TAGS_ITEM_TITLE)))
     self.assertEqual(len(pagetags_menu), 1)
     self.assertEqual(len(pagetags_menu), 1)
     self.assertTrue(pagetags_menu[0].item.url.startswith(reverse('admin:djangocms_page_tags_pagetags_change', args=(page_ext.pk,))))
     url_change = False
     url_add = False
     for title in page1.title_set.all():
         language = get_language_object(title.language)
         titletags_menu = tags_menu.find_items(ModalItem, name='{0}...'.format(language['name']))
         self.assertEqual(len(titletags_menu), 1)
         try:
             title_ext = TitleTags.objects.get(extended_object_id=title.pk)
             self.assertEqual(title_ext, title_tags)
             self.assertTrue(titletags_menu[0].item.url.startswith(reverse('admin:djangocms_page_tags_titletags_change', args=(title_ext.pk,))))
             url_change = True
         except TitleTags.DoesNotExist:
             self.assertTrue(titletags_menu[0].item.url.startswith(reverse('admin:djangocms_page_tags_titletags_add')))
             url_add = True
     self.assertTrue(url_change and url_add)
示例#2
0
    def test_toolbar(self):
        """
        Test that PageMeta/TitleMeta items are present for superuser
        """
        from cms.toolbar.toolbar import CMSToolbar
        NEW_CMS_LANGS = {
            1: [
                {
                    'code': 'en',
                    'name': 'English',
                    'public': True,
                },
                {
                    'code': 'it',
                    'name': 'Italiano',
                    'public': True,
                },
            ],
            'default': {
                'hide_untranslated': False,
            },
        }

        page1, page2 = self.get_pages()
        with self.settings(CMS_LANGUAGES=NEW_CMS_LANGS):
            request = self.get_page_request(page1, self.user, '/', edit=True)
            toolbar = CMSToolbar(request)
            toolbar.get_left_items()
            page_menu = toolbar.menus['page']
            meta_menu = page_menu.find_items(SubMenu, name=force_text(PAGE_META_MENU_TITLE))[0].item
            try:
                self.assertEqual(len(meta_menu.find_items(ModalItem, name="{0}...".format(force_text(PAGE_META_ITEM_TITLE)))), 1)
            except AssertionError:
                self.assertEqual(len(meta_menu.find_items(ModalItem, name="{0} ...".format(force_text(PAGE_META_ITEM_TITLE)))), 1)
            self.assertEqual(len(meta_menu.find_items(ModalItem)), len(NEW_CMS_LANGS[1])+1)
示例#3
0
    def test_perm(self):
        """
        Test that page meta menu is present if user has Page.change_perm
        """
        from cms.toolbar.toolbar import CMSToolbar

        page1, page2, page3 = self.get_pages()
        self.user_staff.user_permissions.add(
            Permission.objects.get(codename="change_page"))
        self.user_staff = User.objects.get(pk=self.user_staff.pk)
        request = self.get_page_request(page1, self.user_staff, "/", edit=True)
        toolbar = CMSToolbar(request)
        toolbar.get_left_items()
        page_menu = toolbar.menus["page"]
        try:
            self.assertEqual(
                len(
                    page_menu.find_items(ModalItem,
                                         name="%s..." %
                                         force_text(PAGE_SITEMAP_MENU_TITLE))),
                1,
            )
        except AssertionError:
            self.assertEqual(
                len(
                    page_menu.find_items(ModalItem,
                                         name="%s ..." %
                                         force_text(PAGE_SITEMAP_MENU_TITLE))),
                1,
            )
示例#4
0
    def test_toolbar(self):
        """
        Test that PageTags/TitleTags items are present for superuser
        """
        from cms.toolbar.toolbar import CMSToolbar
        NEW_CMS_LANGS = {
            1: [
                {
                    'code': 'en',
                    'name': 'English',
                    'public': True,
                },
                {
                    'code': 'it',
                    'name': 'Italiano',
                    'public': True,
                },
            ],
            'default': {
                'hide_untranslated': False,
            },
        }

        page1, page2 = self.get_pages()
        with self.settings(CMS_LANGUAGES=NEW_CMS_LANGS):
            request = self.get_page_request(page1, self.user, '/', edit=True)
            toolbar = CMSToolbar(request)
            toolbar.get_left_items()
            page_menu = toolbar.find_items(Menu, name='Page')[0].item
            tags_menu = page_menu.find_items(SubMenu, name=force_text(PAGE_TAGS_MENU_TITLE))[0].item
            self.assertEqual(len(tags_menu.find_items(ModalItem, name="{0}...".format(force_text(PAGE_TAGS_ITEM_TITLE)))), 1)
            self.assertEqual(len(tags_menu.find_items(ModalItem)), len(NEW_CMS_LANGS[1])+1)
 def test_toolbar_with_items(self):
     """
     Test that PageTags/TitleTags items are present for superuser if PageTags/TitleTags exists for current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     page_ext = PageTags.objects.create(extended_object=page1)
     title_tags = TitleTags.objects.create(extended_object=page1.get_title_obj('en'))
     request = self.get_page_request(page1, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')[0].item
     tags_menu = page_menu.find_items(SubMenu, name=force_text(PAGE_TAGS_MENU_TITLE))[0].item
     pagetags_menu = tags_menu.find_items(ModalItem, name="{0}...".format(force_text(PAGE_TAGS_ITEM_TITLE)))
     self.assertEqual(len(pagetags_menu), 1)
     self.assertEqual(len(pagetags_menu), 1)
     self.assertTrue(pagetags_menu[0].item.url.startswith(reverse('admin:djangocms_page_tags_pagetags_change', args=(page_ext.pk,))))
     url_change = False
     url_add = False
     for title in page1.title_set.all():
         language = get_language_object(title.language)
         titletags_menu = tags_menu.find_items(ModalItem, name='{0}...'.format(language['name']))
         self.assertEqual(len(titletags_menu), 1)
         try:
             title_ext = TitleTags.objects.get(extended_object_id=title.pk)
             self.assertEqual(title_ext, title_tags)
             self.assertTrue(titletags_menu[0].item.url.startswith(reverse('admin:djangocms_page_tags_titletags_change', args=(title_ext.pk,))))
             url_change = True
         except TitleTags.DoesNotExist:
             self.assertTrue(titletags_menu[0].item.url.startswith(reverse('admin:djangocms_page_tags_titletags_add')))
             url_add = True
     self.assertTrue(url_change and url_add)
 def test_toolbar_with_items(self):
     """
     Test that PageMeta/TitleMeta items are present for superuser if PageMeta/TitleMeta exists for current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     page_ext = PageMeta.objects.create(extended_object=page1)
     request = self.get_page_request(page1, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     meta_menu = page_menu.find_items(
         SubMenu, name=force_unicode(PAGE_META_MENU_TITLE))[0].item
     pagemeta_menu = meta_menu.find_items(
         ModalItem, name="%s ..." % force_unicode(PAGE_META_ITEM_TITLE))
     self.assertEqual(len(pagemeta_menu), 1)
     self.assertTrue(pagemeta_menu[0].item.url.startswith(
         reverse('admin:djangocms_page_meta_pagemeta_change',
                 args=(page_ext.pk, ))))
     for title in page1.title_set.all():
         language = get_language_object(title.language)
         titlemeta_menu = meta_menu.find_items(ModalItem,
                                               name="%s ..." %
                                               language['name'])
         self.assertEqual(len(titlemeta_menu), 1)
         try:
             title_ext = TitleMeta.objects.get(extended_object_id=title.pk)
             self.assertTrue(titlemeta_menu[0].item.url.startswith(
                 reverse('admin:djangocms_page_meta_titlemeta_change',
                         args=(title_ext.pk, ))))
         except TitleMeta.DoesNotExist:
             self.assertTrue(titlemeta_menu[0].item.url.startswith(
                 reverse('admin:djangocms_page_meta_titlemeta_add')))
示例#7
0
 def test_toolbar_with_items(self):
     """
     Test that Blog toolbar is present and contains all items
     """
     from cms.toolbar.toolbar import CMSToolbar
     posts = self.get_posts()
     pages = self.get_pages()
     request = self.get_page_request(pages[0],
                                     self.user,
                                     r'/en/blog/',
                                     edit=True)
     setattr(request, BLOG_CURRENT_POST_IDENTIFIER, posts[0])
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     blog_menu = toolbar.menus['djangocms_blog']
     self.assertEqual(
         len(
             blog_menu.find_items(
                 ModalItem,
                 url=reverse('admin:djangocms_blog_post_changelist'))), 1)
     self.assertEqual(
         len(
             blog_menu.find_items(
                 ModalItem, url=reverse('admin:djangocms_blog_post_add'))),
         1)
     self.assertEqual(
         len(
             blog_menu.find_items(ModalItem,
                                  url=reverse(
                                      'admin:djangocms_blog_post_change',
                                      args=(posts[0].pk, )))), 1)
 def test_toolbar_with_items(self):
     """
     Test that PageSitemapProperties item is present for superuser if PageSitemapProperties exists for current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2, page3 = self.get_pages()
     page_ext = PageSitemapProperties.objects.create(extended_object=page1,
                                                     priority='0.2',
                                                     changefreq='never')
     request = self.get_page_request(page1, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     try:
         meta_menu = page_menu.find_items(
             ModalItem,
             name="%s..." % force_text(PAGE_SITEMAP_MENU_TITLE))[0].item
     except IndexError:
         meta_menu = page_menu.find_items(
             ModalItem,
             name="%s ..." % force_text(PAGE_SITEMAP_MENU_TITLE))[0].item
     self.assertTrue(
         meta_menu.url.startswith(
             reverse(
                 'admin:djangocms_page_sitemap_pagesitemapproperties_change',
                 args=(page_ext.pk, ))))
     self.assertEqual(
         force_text(page_ext),
         force_text(_('Sitemap values for Page %s') % page1.pk))
示例#9
0
 def test_perm(self):
     """
     Test that page meta menu is present if user has Page.change_perm
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     self.user_staff.user_permissions.add(
         Permission.objects.get(codename='change_page'))
     self.user_staff = User.objects.get(pk=self.user_staff.pk)
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     meta_menu = page_menu.find_items(
         SubMenu, name=force_text(PAGE_META_MENU_TITLE))[0].item
     try:
         self.assertEqual(
             len(
                 meta_menu.find_items(
                     ModalItem,
                     name="{0}...".format(
                         force_text(PAGE_META_ITEM_TITLE)))), 1)
     except AssertionError:
         self.assertEqual(
             len(
                 meta_menu.find_items(
                     ModalItem,
                     name="{0} ...".format(
                         force_text(PAGE_META_ITEM_TITLE)))), 1)
示例#10
0
    def test_toolbar(self):
        """
        Test that PageSitemapProperties item is present for superuser
        """
        from cms.toolbar.toolbar import CMSToolbar

        page1, page2, page3 = self.get_pages()
        request = self.get_page_request(page1, self.user, "/", edit=True)
        toolbar = CMSToolbar(request)
        toolbar.get_left_items()
        page_menu = toolbar.menus["page"]
        try:
            self.assertEqual(
                len(
                    page_menu.find_items(ModalItem,
                                         name="%s..." %
                                         force_text(PAGE_SITEMAP_MENU_TITLE))),
                1,
            )
        except AssertionError:
            self.assertEqual(
                len(
                    page_menu.find_items(ModalItem,
                                         name="%s ..." %
                                         force_text(PAGE_SITEMAP_MENU_TITLE))),
                1,
            )
示例#11
0
 def test_toolbar_with_items(self):
     """
     Test that PageMeta/TitleMeta items are present for superuser if PageMeta/TitleMeta exists for current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     page_ext = PageMeta.objects.create(extended_object=page1)
     request = self.get_page_request(page1, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     meta_menu = page_menu.find_items(SubMenu, name=force_text(PAGE_META_MENU_TITLE))[0].item
     try:
         pagemeta_menu = meta_menu.find_items(ModalItem, name="{0}...".format(force_text(PAGE_META_ITEM_TITLE)))
         self.assertEqual(len(pagemeta_menu), 1)
     except AssertionError:
         pagemeta_menu = meta_menu.find_items(ModalItem, name="{0} ...".format(force_text(PAGE_META_ITEM_TITLE)))
         self.assertEqual(len(pagemeta_menu), 1)
     self.assertTrue(pagemeta_menu[0].item.url.startswith(reverse('admin:djangocms_page_meta_pagemeta_change', args=(page_ext.pk,))))
     for title in page1.title_set.all():
         language = get_language_object(title.language)
         try:
             titlemeta_menu = meta_menu.find_items(ModalItem, name='{0}...'.format(language['name']))
             self.assertEqual(len(titlemeta_menu), 1)
         except AssertionError:
             titlemeta_menu = meta_menu.find_items(ModalItem, name='{0} ...'.format(language['name']))
             self.assertEqual(len(titlemeta_menu), 1)
         try:
             title_ext = TitleMeta.objects.get(extended_object_id=title.pk)
             self.assertTrue(titlemeta_menu[0].item.url.startswith(reverse('admin:djangocms_page_meta_titlemeta_change', args=(title_ext.pk,))))
         except TitleMeta.DoesNotExist:
             self.assertTrue(titlemeta_menu[0].item.url.startswith(reverse('admin:djangocms_page_meta_titlemeta_add')))
    def test_toolbar_with_an_existing_usersetting(self):
        """
        Test that UserSettings toolbar item URL is for change_view for superuser
        if UserSettings already exists for current site
        """
        usersettings_model_opts = self.UserSettings._meta
        usersettings_obj = self.UserSettings.objects.create(**self.usersettings_data)

        from cms.toolbar.toolbar import CMSToolbar
        page = self.get_pages()
        request = self.get_page_request(page, self.user, '/', edit=True)
        toolbar = CMSToolbar(request)
        toolbar.get_left_items()

        admin_menu = toolbar.menus[ADMIN_MENU_IDENTIFIER]
        MENU_ITEM_TITLE = usersettings_model_opts.verbose_name

        change_url = '%s?%s' % (
            reverse('admin:%s_%s_change' % (
                usersettings_model_opts.app_label,
                usersettings_model_opts.module_name), args=(usersettings_obj.pk,)),
            IS_POPUP_VAR)

        usersettings_menu = \
            admin_menu.find_items(ModalItem, name='%s ...' % force_unicode(MENU_ITEM_TITLE))

        self.assertEqual(change_url, usersettings_menu[0].item.url)
示例#13
0
    def test_get_alphabetical_insert_position(self):
        page = create_page("toolbar-page", "nav_playground.html", "en",
                           published=True)
        request = self.get_page_request(page, self.get_staff(), '/')
        toolbar = CMSToolbar(request)
        toolbar.get_left_items()
        toolbar.get_right_items()

        admin_menu = toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER, 'TestAppMenu')

        # Insert alpha
        alpha_position = admin_menu.get_alphabetical_insert_position('menu-alpha', SubMenu, None)

        # As this will be the first item added to this, this use should return the default, or namely None
        if not alpha_position:
            alpha_position = admin_menu.find_first(Break, identifier=ADMINISTRATION_BREAK) + 1
        admin_menu.get_or_create_menu('menu-alpha', 'menu-alpha', position=alpha_position)

        # Insert gamma (should return alpha_position + 1)
        gamma_position = admin_menu.get_alphabetical_insert_position('menu-gamma', SubMenu)
        self.assertEqual(int(gamma_position), int(alpha_position) + 1)
        admin_menu.get_or_create_menu('menu-gamma', 'menu-gamma', position=gamma_position)

        # Where should beta go? It should go right where gamma is now...
        beta_position = admin_menu.get_alphabetical_insert_position('menu-beta', SubMenu)
        self.assertEqual(beta_position, gamma_position)
示例#14
0
 def test_no_page(self):
     """
     Test that no page menu is present if request not in a page
     """
     from cms.toolbar.toolbar import CMSToolbar
     request = self.get_page_request(None, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     self.assertEqual(page_menu, [])
示例#15
0
 def test_no_page(self):
     """
     Test that no page menu is present if request not in a page
     """
     from cms.toolbar.toolbar import CMSToolbar
     request = self.get_page_request(None, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     self.assertEqual(page_menu, [])
 def test_toolbar(self):
     """
     Test that PageSitemapProperties item is present for superuser
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     request = self.get_page_request(page1, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     self.assertEqual(len(page_menu.find_items(ModalItem, name="%s ..." % force_text(PAGE_SITEMAP_MENU_TITLE))), 1)
示例#17
0
 def test_no_perm(self):
     """
     Test that no page menu is present if user has no perm
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     self.assertEqual(page_menu, [])
示例#18
0
 def test_no_perm(self):
     """
     Test that no page menu is present if user has no perm
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     self.assertEqual(page_menu, [])
示例#19
0
 def test_toolbar(self):
     urls = 'cmsplugin_seocheck.tests.urls'
     request = self.get_request()
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     seo_menu = toolbar.menus['seo_check']
     self.assertEqual(len(seo_menu.items), 1)
     self.assertEqual(
         len(
             seo_menu.find_items(
                 ModalItem, url=reverse('cmsplugin_seocheck:check_modal'))),
         1)
示例#20
0
 def test_perm_permissions(self):
     """
     Test that no page menu is present if user has general page Page.change_perm  but not permission on current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     self.user_staff.user_permissions.add(Permission.objects.get(codename='change_page'))
     self.user_staff = User.objects.get(pk=self.user_staff.pk)
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     self.assertEqual(page_menu, [])
 def test_perm(self):
     """
     Test that page meta menu is present if user has Page.change_perm
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     self.user_staff.user_permissions.add(Permission.objects.get(codename='change_page'))
     self.user_staff = User.objects.get(pk=self.user_staff.pk)
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     self.assertEqual(len(page_menu.find_items(ModalItem, name="%s ..." % force_text(PAGE_SITEMAP_MENU_TITLE))), 1)
示例#22
0
 def test_button_consistency_staff(self):
     """
     Tests that the buttons remain even when the language changes.
     """
     user = self.get_staff()
     cms_page = create_page("test-en", "nav_playground.html", "en", published=True)
     create_title("de", "test-de", cms_page)
     en_request = self.get_page_request(cms_page, user, edit=True)
     en_toolbar = CMSToolbar(en_request)
     self.assertEqual(len(en_toolbar.get_left_items() + en_toolbar.get_right_items()), 6)
     de_request = self.get_page_request(cms_page, user, path="/de/", edit=True, lang_code="de")
     de_toolbar = CMSToolbar(de_request)
     self.assertEqual(len(de_toolbar.get_left_items() + de_toolbar.get_right_items()), 6)
 def test_toolbar(self):
     """
     Test that PageMeta/TitleMeta items are present for superuser
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     request = self.get_page_request(page1, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     meta_menu = page_menu.find_items(SubMenu, name=force_unicode(PAGE_META_MENU_TITLE))[0].item
     self.assertEqual(len(meta_menu.find_items(ModalItem, name="%s ..." % force_unicode(PAGE_META_ITEM_TITLE))), 1)
     self.assertEqual(len(meta_menu.find_items(ModalItem)), len(self.languages) + 1)
示例#24
0
 def test_perm(self):
     """
     Test that page tags menu is present if user has Page.change_perm
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     self.user_staff.user_permissions.add(Permission.objects.get(codename='change_page'))
     self.user_staff = User.objects.get(pk=self.user_staff.pk)
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')[0].item
     tags_menu = page_menu.find_items(SubMenu, name=force_unicode(PAGE_TAGS_MENU_TITLE))[0].item
     self.assertEqual(len(tags_menu.find_items(ModalItem, name="%s ..." % force_unicode(PAGE_TAGS_ITEM_TITLE))), 1)
示例#25
0
 def test_perm_permissions(self):
     """
     Test that no page menu is present if user has general page Page.change_perm  but not permission on current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     self.user_staff.user_permissions.add(
         Permission.objects.get(codename='change_page'))
     self.user_staff = User.objects.get(pk=self.user_staff.pk)
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     self.assertEqual(page_menu, [])
示例#26
0
 def test_no_perm(self):
     """
     Test that no page menu is present if user has no perm
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, __ = self.get_pages()
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     try:
         self.assertEqual(page_menu, [])
     except AssertionError:
         meta_menu = page_menu[0].item.find_items(SubMenu, name=force_text(PAGE_META_MENU_TITLE))
         self.assertEqual(meta_menu, [])
示例#27
0
 def test_toolbar_with_items(self):
     """
     Test that Blog toolbar is present and contains all items
     """
     from cms.toolbar.toolbar import CMSToolbar
     posts = self.get_posts()
     pages = self.get_pages()
     request = self.get_page_request(pages[0], self.user, r'/en/blog/', edit=True)
     setattr(request, BLOG_CURRENT_POST_IDENTIFIER, posts[0])
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     blog_menu = toolbar.menus['djangocms_blog']
     self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_changelist'))), 1)
     self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_add'))), 1)
     self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_change', args=(posts[0].pk,)))), 1)
 def test_toolbar_with_items(self):
     """
     Test that PageSitemapProperties item is present for superuser if PageSitemapProperties exists for current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     page_ext = PageSitemapProperties.objects.create(
         extended_object=page1, priority='0.2', changefreq='never')
     request = self.get_page_request(page1, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     meta_menu = page_menu.find_items(ModalItem, name="%s ..." % force_text(PAGE_SITEMAP_MENU_TITLE))[0].item
     self.assertTrue(meta_menu.url.startswith(reverse('admin:djangocms_page_sitemap_pagesitemapproperties_change', args=(page_ext.pk,))))
     self.assertEqual(force_text(page_ext), force_text(_(u'Sitemap values for Page %s') % page1.pk))
示例#29
0
 def test_no_perm(self):
     """
     Test that no page menu is present if user has no perm
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     try:
         self.assertEqual(page_menu, [])
     except AssertionError:
         tags_menu = page_menu[0].item.find_items(SubMenu, name=force_text(PAGE_TAGS_MENU_TITLE))
         self.assertEqual(tags_menu, [])
示例#30
0
    def test_anon(self):
        page = create_page("test", "nav_playground.html", "en")
        request = self.get_page_request(page, self.get_anon())
        toolbar = CMSToolbar(request)

        items = toolbar.get_left_items() + toolbar.get_right_items()
        self.assertEqual(len(items), 0)
 def test_nonstaff(self):
     page = create_page('test', 'nav_playground.html', 'en', published=True)
     request = self.get_page_request(page, self.get_nonstaff())
     toolbar = CMSToolbar(request)
     items = toolbar.get_left_items() + toolbar.get_right_items()
     # Logo + edit-mode + logout
     self.assertEqual(len(items), 0)
示例#32
0
 def test_nonstaff(self):
     page = create_page("test", "nav_playground.html", "en", published=True)
     request = self.get_page_request(page, self.get_nonstaff())
     toolbar = CMSToolbar(request)
     items = toolbar.get_left_items() + toolbar.get_right_items()
     # Logo + edit-mode + logout
     self.assertEqual(len(items), 0)
示例#33
0
 def test_template_change_permission(self):
     with SettingsOverride(CMS_PERMISSIONS=True):
         page = create_page("test", "nav_playground.html", "en", published=True)
         request = self.get_page_request(page, self.get_nonstaff())
         toolbar = CMSToolbar(request)
         items = toolbar.get_left_items() + toolbar.get_right_items()
         self.assertEqual([item for item in items if item.css_class_suffix == "templates"], [])
    def test_anon(self):
        page = create_page('test', 'nav_playground.html', 'en')
        request = self.get_page_request(page, self.get_anon())
        toolbar = CMSToolbar(request)

        items = toolbar.get_left_items() + toolbar.get_right_items()
        self.assertEqual(len(items), 0)
示例#35
0
 def test_publish_button(self):
     page = create_page("test", "nav_playground.html", "en", published=True)
     request = self.get_page_request(page, self.get_superuser(), edit=True)
     toolbar = CMSToolbar(request)
     self.assertTrue(toolbar.edit_mode)
     items = toolbar.get_left_items() + toolbar.get_right_items()
     self.assertEqual(len(items), 7)
    def test_toolbar(self):
        """
        Test that UserSettings toolbar are present for superuser
        """
        from cms.toolbar.toolbar import CMSToolbar
        page = self.get_pages()
        request = self.get_page_request(page, self.user, '/', edit=True)
        toolbar = CMSToolbar(request)
        toolbar.get_left_items()
        admin_menu = toolbar.menus[ADMIN_MENU_IDENTIFIER]

        usersettings_model_opts = self.UserSettings._meta
        MENU_ITEM_TITLE = usersettings_model_opts.verbose_name

        self.assertEqual(len(admin_menu.find_items(
            ModalItem, name="%s ..." % force_unicode(MENU_ITEM_TITLE))), 1)
示例#37
0
 def test_no_page_anon(self):
     request = self.get_page_request(None, self.get_anon(), '/')
     toolbar = CMSToolbar(request)
     toolbar.populate()
     toolbar.post_template_populate()
     items = toolbar.get_left_items() + toolbar.get_right_items()
     self.assertEqual(len(items), 0)
 def test_publish_button(self):
     page = create_page('test', 'nav_playground.html', 'en', published=True)
     request = self.get_page_request(page, self.get_superuser(), edit=True)
     toolbar = CMSToolbar(request)
     self.assertTrue(toolbar.edit_mode)
     items = toolbar.get_left_items() + toolbar.get_right_items()
     self.assertEqual(len(items), 7)
 def test_not_is_staff(self):
     request = RequestFactory().get('/en/?edit')
     request.session = {}
     request.LANGUAGE_CODE = 'en'
     request.user = AnonymousUser()
     toolbar = CMSToolbar(request)
     self.assertEqual(len(toolbar.get_left_items()), 0)
     self.assertEqual(len(toolbar.get_right_items()), 0)
示例#40
0
 def test_not_is_staff(self):
     request = RequestFactory().get("/en/?edit")
     request.session = {}
     request.LANGUAGE_CODE = "en"
     request.user = AnonymousUser()
     toolbar = CMSToolbar(request)
     self.assertEqual(len(toolbar.get_left_items()), 0)
     self.assertEqual(len(toolbar.get_right_items()), 0)
示例#41
0
 def test_perm(self):
     """
     Test that page meta menu is present if user has Page.change_perm
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     self.user_staff.user_permissions.add(Permission.objects.get(codename='change_page'))
     self.user_staff = User.objects.get(pk=self.user_staff.pk)
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     meta_menu = page_menu.find_items(SubMenu, name=force_text(PAGE_META_MENU_TITLE))[0].item
     try:
         self.assertEqual(len(meta_menu.find_items(ModalItem, name="{0}...".format(force_text(PAGE_META_ITEM_TITLE)))), 1)
     except AssertionError:
         self.assertEqual(len(meta_menu.find_items(ModalItem, name="{0} ...".format(force_text(PAGE_META_ITEM_TITLE)))), 1)
示例#42
0
 def test_perm_permissions(self):
     """
     Test that no page menu is present if user has general page Page.change_perm  but not permission on current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     self.user_staff.user_permissions.add(Permission.objects.get(codename='change_page'))
     self.user_staff = User.objects.get(pk=self.user_staff.pk)
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     try:
         self.assertEqual(page_menu, [])
     except AssertionError:
         tags_menu = page_menu[0].item.find_items(SubMenu, name=force_text(PAGE_TAGS_MENU_TITLE))
         self.assertEqual(tags_menu, [])
示例#43
0
 def test_perm_permissions(self):
     """
     Test that no page menu is present if user has general page Page.change_perm  but not permission on current page
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, __ = self.get_pages()
     self.user_staff.user_permissions.add(Permission.objects.get(codename='change_page'))
     self.user_staff = User.objects.get(pk=self.user_staff.pk)
     request = self.get_page_request(page1, self.user_staff, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.find_items(Menu, name='Page')
     try:
         self.assertEqual(page_menu, [])
     except AssertionError:
         meta_menu = page_menu[0].item.find_items(SubMenu, name=force_text(PAGE_META_MENU_TITLE))
         self.assertEqual(meta_menu, [])
示例#44
0
    def test_toolbar_with_items(self):
        """
        Test that Blog toolbar is present and contains all items
        """
        from cms.toolbar.toolbar import CMSToolbar
        posts = self.get_posts()
        pages = self.get_pages()
        request = self.get_page_request(pages[0], self.user, r'/en/blog/', edit=True)
        setattr(request, BLOG_CURRENT_POST_IDENTIFIER, posts[0])

        posts[0].publish = False
        posts[0].save()
        toolbar = CMSToolbar(request)
        toolbar.populate()
        toolbar.post_template_populate()
        toolbar.get_left_items()
        blog_menu = toolbar.menus['djangocms_blog']
        self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_changelist'))), 1)
        self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_add'))), 1)
        self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_change', args=(posts[0].pk,)))), 1)

        # Publish button only appears if current post is unpublished
        right = toolbar.get_right_items()
        buttons = sum([item.buttons for item in right if isinstance(item, ButtonList)], [])
        self.assertTrue([button for button in buttons if force_text(button.name) == 'Publish Blog now'])

        # Publish button does not appears if current post is published
        posts[0].publish = True
        posts[0].save()
        toolbar = CMSToolbar(request)
        toolbar.populate()
        toolbar.post_template_populate()
        right = toolbar.get_right_items()
        buttons = sum([item.buttons for item in right if isinstance(item, ButtonList)], [])
        self.assertFalse([button for button in buttons if force_text(button.name) == 'Publish Blog now'])

        # Publish button does not appears if other posts but the current one are unpublished
        posts[1].publish = True
        posts[1].save()
        toolbar = CMSToolbar(request)
        toolbar.populate()
        toolbar.post_template_populate()
        right = toolbar.get_right_items()
        buttons = sum([item.buttons for item in right if isinstance(item, ButtonList)], [])
        self.assertFalse([button for button in buttons if force_text(button.name) == 'Publish Blog now'])
示例#45
0
    def test_toolbar_with_items(self):
        """
        Test that Blog toolbar is present and contains all items
        """
        from cms.toolbar.toolbar import CMSToolbar
        posts = self.get_posts()
        pages = self.get_pages()
        request = self.get_page_request(pages[0], self.user, r'/en/blog/', edit=True)
        setattr(request, BLOG_CURRENT_POST_IDENTIFIER, posts[0])

        posts[0].publish = False
        posts[0].save()
        toolbar = CMSToolbar(request)
        toolbar.populate()
        toolbar.post_template_populate()
        toolbar.get_left_items()
        blog_menu = toolbar.menus['djangocms_blog']
        self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_changelist'))), 1)
        self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_add'))), 1)
        self.assertEqual(len(blog_menu.find_items(ModalItem, url=reverse('admin:djangocms_blog_post_change', args=(posts[0].pk,)))), 1)

        # Publish button only appears if current post is unpublished
        right = toolbar.get_right_items()
        buttons = sum([item.buttons for item in right if isinstance(item, ButtonList)], [])
        self.assertTrue([button for button in buttons if force_text(button.name) == 'Publish Blog now'])

        # Publish button does not appears if current post is published
        posts[0].publish = True
        posts[0].save()
        toolbar = CMSToolbar(request)
        toolbar.populate()
        toolbar.post_template_populate()
        right = toolbar.get_right_items()
        buttons = sum([item.buttons for item in right if isinstance(item, ButtonList)], [])
        self.assertFalse([button for button in buttons if force_text(button.name) == 'Publish Blog now'])

        # Publish button does not appears if other posts but the current one are unpublished
        posts[1].publish = True
        posts[1].save()
        toolbar = CMSToolbar(request)
        toolbar.populate()
        toolbar.post_template_populate()
        right = toolbar.get_right_items()
        buttons = sum([item.buttons for item in right if isinstance(item, ButtonList)], [])
        self.assertFalse([button for button in buttons if force_text(button.name) == 'Publish Blog now'])
示例#46
0
 def test_publish_button(self):
     page = create_page('test', 'nav_playground.html', 'en', published=True)
     request = self.get_page_request(page, self.get_superuser(), edit=True)
     toolbar = CMSToolbar(request)
     toolbar.populate()
     toolbar.post_template_populate()
     self.assertTrue(toolbar.edit_mode)
     items = toolbar.get_left_items() + toolbar.get_right_items()
     self.assertEqual(len(items), 7)
示例#47
0
 def test_button_consistency_staff(self):
     """
     Tests that the buttons remain even when the language changes.
     """
     user = self.get_staff()
     cms_page = create_page('test-en', 'nav_playground.html', 'en', published=True)
     create_title('de', 'test-de', cms_page)
     cms_page.publish('de')
     en_request = self.get_page_request(cms_page, user, edit=True)
     en_toolbar = CMSToolbar(en_request)
     en_toolbar.populate()
     en_toolbar.post_template_populate()
     self.assertEqual(len(en_toolbar.get_left_items() + en_toolbar.get_right_items()), 6)
     de_request = self.get_page_request(cms_page, user, path='/de/', edit=True, lang_code='de')
     de_toolbar = CMSToolbar(de_request)
     de_toolbar.populate()
     de_toolbar.post_template_populate()
     self.assertEqual(len(de_toolbar.get_left_items() + de_toolbar.get_right_items()), 6)
示例#48
0
    def test_no_page_superuser(self):
        request = self.get_page_request(None, self.get_superuser(), "/")
        toolbar = CMSToolbar(request)

        items = toolbar.get_left_items() + toolbar.get_right_items()
        # Logo + edit-mode + admin-menu + logout
        self.assertEqual(len(items), 3)
        admin_items = toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER, "Test").get_items()
        self.assertEqual(len(admin_items), 7, admin_items)
示例#49
0
 def test_no_publish_button(self):
     page = create_page("test", "nav_playground.html", "en", published=True)
     request = self.get_page_request(page, self.get_staff(), edit=True)
     toolbar = CMSToolbar(request)
     self.assertTrue(page.has_change_permission(request))
     self.assertFalse(page.has_publish_permission(request))
     self.assertTrue(toolbar.edit_mode)
     items = toolbar.get_left_items() + toolbar.get_right_items()
     # Logo + edit-mode + templates + page-menu + admin-menu + logout
     self.assertEqual(len(items), 6)
 def test_toolbar(self):
     """
     Test that PageMeta/TitleMeta items are present for superuser
     """
     from cms.toolbar.toolbar import CMSToolbar
     page1, page2 = self.get_pages()
     request = self.get_page_request(page1, self.user, '/', edit=True)
     toolbar = CMSToolbar(request)
     toolbar.get_left_items()
     page_menu = toolbar.menus['page']
     meta_menu = page_menu.find_items(
         SubMenu, name=force_unicode(PAGE_META_MENU_TITLE))[0].item
     self.assertEqual(
         len(
             meta_menu.find_items(ModalItem,
                                  name="%s ..." %
                                  force_unicode(PAGE_META_ITEM_TITLE))), 1)
     self.assertEqual(len(meta_menu.find_items(ModalItem)),
                      len(self.languages) + 1)
    def test_no_page_staff(self):
        request = self.get_page_request(None, self.get_staff(), '/')
        toolbar = CMSToolbar(request)

        items = toolbar.get_left_items() + toolbar.get_right_items()
        # Logo + edit-mode + admin-menu + logout
        self.assertEqual(len(items), 3, items)
        admin_items = toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER,
                                                 'Test').get_items()
        self.assertEqual(len(admin_items), 6, admin_items)
 def test_no_publish_button(self):
     page = create_page('test', 'nav_playground.html', 'en', published=True)
     request = self.get_page_request(page, self.get_staff(), edit=True)
     toolbar = CMSToolbar(request)
     self.assertTrue(page.has_change_permission(request))
     self.assertFalse(page.has_publish_permission(request))
     self.assertTrue(toolbar.edit_mode)
     items = toolbar.get_left_items() + toolbar.get_right_items()
     # Logo + edit-mode + templates + page-menu + admin-menu + logout
     self.assertEqual(len(items), 6)
 def test_template_change_permission(self):
     with SettingsOverride(CMS_PERMISSIONS=True):
         page = create_page('test',
                            'nav_playground.html',
                            'en',
                            published=True)
         request = self.get_page_request(page, self.get_nonstaff())
         toolbar = CMSToolbar(request)
         items = toolbar.get_left_items() + toolbar.get_right_items()
         self.assertEqual([
             item for item in items if item.css_class_suffix == 'templates'
         ], [])
 def test_button_consistency_staff(self):
     """
     Tests that the buttons remain even when the language changes.
     """
     user = self.get_staff()
     cms_page = create_page('test-en',
                            'nav_playground.html',
                            'en',
                            published=True)
     create_title('de', 'test-de', cms_page)
     en_request = self.get_page_request(cms_page, user, edit=True)
     en_toolbar = CMSToolbar(en_request)
     self.assertEqual(
         len(en_toolbar.get_left_items() + en_toolbar.get_right_items()), 6)
     de_request = self.get_page_request(cms_page,
                                        user,
                                        path='/de/',
                                        edit=True,
                                        lang_code='de')
     de_toolbar = CMSToolbar(de_request)
     self.assertEqual(
         len(de_toolbar.get_left_items() + de_toolbar.get_right_items()), 6)
    def test_no_change_button(self):
        page = create_page('test', 'nav_playground.html', 'en', published=True)
        user = self.get_staff()
        user.user_permissions.all().delete()
        request = self.get_page_request(page, user, edit=True)
        toolbar = CMSToolbar(request)
        self.assertFalse(page.has_change_permission(request))
        self.assertFalse(page.has_publish_permission(request))

        items = toolbar.get_left_items() + toolbar.get_right_items()
        # Logo + page-menu + admin-menu + logout
        self.assertEqual(len(items), 3, items)
        admin_items = toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER,
                                                 'Test').get_items()
        self.assertEqual(len(admin_items), 6, admin_items)
    def test_no_page_anon(self):
        request = self.get_page_request(None, self.get_anon(), '/')
        toolbar = CMSToolbar(request)

        items = toolbar.get_left_items() + toolbar.get_right_items()
        self.assertEqual(len(items), 0)