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(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)
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, )
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')))
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))
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)
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, )
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)
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)
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_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)
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, [])
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, [])
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)
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)
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)
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)
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_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, [])
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))
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, [])
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)
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)
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)
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)
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)
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)
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)
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, [])
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, [])
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'])
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'])
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)
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)
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)
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)