def test_out_of_order(self): page = create_page("toolbar-page", "nav_playground.html", "en", published=True) request = self.get_page_request(page, self.get_staff(), '/') toolbar = CMSToolbar(request) menu1 = toolbar.get_or_create_menu("test") menu2 = toolbar.get_or_create_menu("test", "Test", side=toolbar.RIGHT, position=2) self.assertEqual(menu1, menu2) self.assertEqual(menu1.name, 'Test') self.assertEqual(len(toolbar.get_right_items()), 1)
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_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_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_page_staff(self): request = self.get_page_request(None, self.get_staff(), '/') toolbar = CMSToolbar(request) toolbar.populate() toolbar.post_template_populate() items = toolbar.get_left_items() + toolbar.get_right_items() # Logo + admin-menu + logout self.assertEqual(len(items), 2, 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_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_superuser(self): request = self.get_page_request(None, self.get_superuser(), '/') toolbar = CMSToolbar(request) toolbar.populate() toolbar.post_template_populate() items = toolbar.get_left_items() + toolbar.get_right_items() # Logo + edit-mode + admin-menu + logout self.assertEqual(len(items), 2) admin_items = toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER, 'Test').get_items() if is_user_swapped: self.assertEqual(len(admin_items), 6, admin_items) else: self.assertEqual(len(admin_items), 7, admin_items)
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)