Setup:: >>> import re >>> from plone.app.portlets.browser.editmanager import DashboardEditPortletManagerRenderer >>> from plone.portlets.interfaces import IPortletType >>> from plone.portlets.interfaces import IPortletManager >>> from zope.component import getUtility bug: 11409 test bits ---------------------- check the names for customized views are in place:: >>> portal.manage_permission('Portlets: Manage own portlets', roles=['Manager'], acquire=0) >>> portlet = getUtility(IPortletType, name='portlets.News') >>> col = getUtility(IPortletManager, name='plone.dashboard1') >>> view = portal.unrestrictedTraverse('@@manage-dashboard') >>> renderer = DashboardEditPortletManagerRenderer(self.portal, self.portal.REQUEST, view, col) >>> renderer.view_name == u'manage-dashboard' True Now customize the manage dashboard view and check the name is in place too:: >>> self.setRoles('Manager') >>> browser = self.getBrowser(loggedIn=True) >>> browser.open(portal.absolute_url()+'/portal_view_customizations/registrations.html') >>> browser.getLink(url='manage-dashboard').click() >>> managedashboard_template = """ ... ... ... ... ...
... ...
... ... ... ... Please note that this template fills the "content" slot instead of the ... "main" slot, this is done so we can provide stuff like the content ... tabs. This also means that we have to supply things that are normally ... present from main_template. ... ... ... ...
...
Content views
... ... ...
...   ...
...
...
... Portal status message ...
...
...

... Edit your dashboard ...

...
...
...
...
...
...
...
...
...
... ...
... ... ... ... """ >>> browser.getControl('Customize').click() >>> browser.getControl(name='text:text').value = managedashboard_template >>> browser.getControl('Save Changes').click() Add a portlet in the dashboard and try to delete it:: >>> browser.open(portal.absolute_url()+'/@@manage-dashboard') >>> browser.getControl(name=':action',index=0).value = ['/++dashboard++plone.dashboard1+test_user_1_/+/portlets.Search'] >>> browser.getForm(index=1).submit() >>> browser.getControl('Save').click() # This submits the now shown add form. >>> browser.open(portal.absolute_url()+'/@@manage-dashboard') >>> '/search/edit' in browser.contents True >>> browser.getControl(name="search-remove").click() >>> '/search/edit' in browser.contents False