def setUp(self): portal = self.layer['portal'] request = self.layer['request'] # we should have 2 folders in the site's root from the layer. Lets # mark one of it's sub-folders ('sub-0') as a navigation root self.f1 = portal['folder-0'] zope.interface.alsoProvides(self.f1, INavigationRoot) viewlet = DropdownMenuViewlet(portal, request, None, None) viewlet.update() self.root_folders_ids = ['sub-0', 'sub-1'] self.subfolders = ['sub-sub-0', 'sub-sub-1'] self.portal = portal self.request = request self.viewlet = viewlet self.rf_url = self.f1.absolute_url()
def setUp(self): portal = self.layer['portal'] request = self.layer['request'] viewlet = DropdownMenuViewlet(portal, request, None, None) setRoles(portal, TEST_USER_ID, ['Manager']) # we have 2 folders created on the layer right away self.root_folders_ids = ['folder-0', 'folder-1'] # update the dropdownmenu viewlet viewlet.update() for folder_id in self.root_folders_ids: self.failUnless(folder_id in [tab['id'] for tab in viewlet.portal_tabs]) setRoles(portal, TEST_USER_ID, ['Member']) self.portal = portal self.viewlet = viewlet
def setUp(self): portal = self.layer['portal'] request = self.layer['request'] from webcouturier.dropdownmenu.browser.dropdown import DropdownMenuViewlet # noqa viewlet = DropdownMenuViewlet(portal, request, None, None) setRoles(portal, TEST_USER_ID, ['Manager']) # we have 2 folders created on the layer right away self.root_folders_ids = ['folder-0', 'folder-1'] # update the dropdownmenu viewlet viewlet.update() for folder_id in self.root_folders_ids: self.assertIn(folder_id, [tab['id'] for tab in viewlet.portal_tabs]) setRoles(portal, TEST_USER_ID, ['Member']) self.portal = portal self.viewlet = viewlet
def test_dropdowns_availability(self): # whether we get dropdownmenu at all self.setRoles('Manager') # dummy structure at first root_folders_ids = [] for i in range(2): self.portal.invokeFactory('Folder', 'folder-%s' % i) root_folders_ids.append('folder-%s' % i) # update the dropdownmenu viewlet viewlet = DropdownMenuViewlet(self.portal, self.portal.REQUEST, None, None) viewlet.update() for folder_id in root_folders_ids: self.failUnless(folder_id in [tab['id'] for tab in viewlet.portal_tabs]) # since we don't have subfolders yet, we should not have dropdowns for tab_url in [getattr(self.portal, folder_id).absolute_url() for folder_id in root_folders_ids]: self.assertEqual(viewlet.getTabObject(tab_url), '') # now we add some subfolders to one of the folders folder_with_dd = getattr(self.portal, 'folder-0') for i in range(2): folder_with_dd.invokeFactory('Folder', 'sub-%s' % i) folder_with_dd_url = folder_with_dd.absolute_url() self.failIf(viewlet.getTabObject(folder_with_dd_url) == '') self.failUnless('<a href="http://nohost/plone/folder-0/sub-0"' in viewlet.getTabObject(folder_with_dd_url))
def setUp(self): portal = self.layer['portal'] request = self.layer['request'] from webcouturier.dropdownmenu.browser.dropdown import DropdownMenuViewlet # noqa viewlet = DropdownMenuViewlet(portal, request, None, None) setRoles(portal, TEST_USER_ID, ['Manager']) # we have 2 folders created on the layer right away self.root_folders_ids = ['folder-0', 'folder-1'] # update the dropdownmenu viewlet viewlet.update() for folder_id in self.root_folders_ids: self.assertIn( folder_id, [tab['id'] for tab in viewlet.portal_tabs] ) setRoles(portal, TEST_USER_ID, ['Member']) self.portal = portal self.viewlet = viewlet
def test_dropdowns_depth(self): # whether the dropdowns follow the depth setting self.setRoles('Manager') viewlet = DropdownMenuViewlet(self.portal, self.portal.REQUEST, None, None) viewlet.update() self.assertEqual( viewlet.dropdown_properties.getProperty('dropdown_depth'), 3) # 3 is too deep for the test - let's decrease it to 1 # to see only 1 more level below top folders' tabs dropdown_properties = getToolByName( self.portal, 'portal_properties').dropdown_properties dropdown_properties.manage_changeProperties(dropdown_depth=1) self.assertEqual( viewlet.dropdown_properties.getProperty('dropdown_depth'), 1) # dummy structure at first # XXX I bet there should be a better way of adding content recursively, # but for test this might be good enough root_folders_ids = [] for i in range(2): self.portal.invokeFactory('Folder', 'folder-%s' % i) root_folders_ids.append('folder-%s' % i) root_folder = getattr(self.portal, 'folder-%s' % i) for k in range(2): root_folder.invokeFactory('Folder', 'folder-%s-sub-%s' % (i, k)) first_level = getattr(root_folder, 'folder-%s-sub-%s' % (i, k)) for m in range(2): first_level.invokeFactory( 'Folder', 'folder-%s-sub-%s-sub-%s' % (i, k, m)) # let's play with folder-0 folder_with_dd = getattr(self.portal, 'folder-0') folder_with_dd_url = folder_with_dd.absolute_url() # dropdown for folder-0 exists? self.failIf(viewlet.getTabObject(folder_with_dd_url) == '') # do we have first-level subfolder? We should self.failUnless( 'folder-0-sub-0' in viewlet.getTabObject(folder_with_dd_url)) # do we have second-level subfolder? We should not self.failIf( 'folder-0-sub-0-sub-0' in viewlet.getTabObject(folder_with_dd_url))
def test_dropdowns_depth(self): # whether the dropdowns follow the depth setting self.setRoles('Manager') viewlet = DropdownMenuViewlet(self.portal, self.portal.REQUEST, None, None) viewlet.update() self.assertEqual(viewlet.dropdown_properties.getProperty( 'dropdown_depth'), 3) # 3 is too deep for the test - let's decrease it to 1 # to see only 1 more level below top folders' tabs dropdown_properties = getToolByName( self.portal, 'portal_properties').dropdown_properties dropdown_properties.manage_changeProperties(dropdown_depth=1) self.assertEqual(viewlet.dropdown_properties.getProperty( 'dropdown_depth'), 1) # dummy structure at first # XXX I bet there should be a better way of adding content recursively, # but for test this might be good enough root_folders_ids = [] for i in range(2): self.portal.invokeFactory('Folder', 'folder-%s' % i) root_folders_ids.append('folder-%s' % i) root_folder = getattr(self.portal, 'folder-%s' % i) for k in range(2): root_folder.invokeFactory( 'Folder', 'folder-%s-sub-%s' % (i, k)) first_level = getattr(root_folder, 'folder-%s-sub-%s' % (i, k)) for m in range(2): first_level.invokeFactory( 'Folder', 'folder-%s-sub-%s-sub-%s' % (i, k, m)) # let's play with folder-0 folder_with_dd = getattr(self.portal, 'folder-0') folder_with_dd_url = folder_with_dd.absolute_url() # dropdown for folder-0 exists? self.failIf(viewlet.getTabObject(folder_with_dd_url) == '') # do we have first-level subfolder? We should self.failUnless('folder-0-sub-0' in viewlet.getTabObject(folder_with_dd_url)) # do we have second-level subfolder? We should not self.failIf('folder-0-sub-0-sub-0' in viewlet.getTabObject(folder_with_dd_url))
def test_dropdowns_availability(self): # whether we get dropdownmenu at all self.setRoles('Manager') # dummy structure at first root_folders_ids = [] for i in range(2): self.portal.invokeFactory('Folder', 'folder-%s' % i) root_folders_ids.append('folder-%s' % i) # update the dropdownmenu viewlet viewlet = DropdownMenuViewlet(self.portal, self.portal.REQUEST, None, None) viewlet.update() for folder_id in root_folders_ids: self.failUnless( folder_id in [tab['id'] for tab in viewlet.portal_tabs]) # since we don't have subfolders yet, we should not have dropdowns for tab_url in [ getattr(self.portal, folder_id).absolute_url() for folder_id in root_folders_ids ]: self.assertEqual(viewlet.getTabObject(tab_url), '') # now we add some subfolders to one of the folders folder_with_dd = getattr(self.portal, 'folder-0') for i in range(2): folder_with_dd.invokeFactory('Folder', 'sub-%s' % i) folder_with_dd_url = folder_with_dd.absolute_url() self.failIf(viewlet.getTabObject(folder_with_dd_url) == '') self.failUnless('<a href="http://nohost/plone/folder-0/sub-0"' in viewlet.getTabObject(folder_with_dd_url))