collective.portaltabs usage: edit entry
=======================================

Setup:

>>> from pyquery import PyQuery
>>> from plone.testing.z2 import Browser
>>> app = layer['app']
>>> portal = layer['portal']
>>> browser = Browser(app)
>>> browser.handleErrors = False

Now login:

>>> browser.open(portal.portal_url() + '/login_form')
>>> browser.getControl(name='__ac_name').value = 'sa_user'
>>> browser.getControl(name='__ac_password').value = 'secret'
>>> browser.getControl(name='submit').click()

Edit values
-----------

Go the the tabs management:

>>> browser.open(portal.portal_url() + '/@@manage-portaltabs')

Now editing the "Home" link title.

>>> browser.getControl(name='title:list').value = 'A Great Homepage Site!'
>>> browser.getControl('Save').click()
>>> 'Changes saved' in browser.contents
True
>>> pq = PyQuery(browser.contents)
>>> pq('#portal-globalnav #portaltab-index_html').text()
'A Great Homepage Site!'
>>> browser.getLink('A Great Homepage Site!').click()
>>> browser.url == portal.portal_url()
True

Now edit the same link's URL:

>>> browser.open(portal.portal_url() + '/@@manage-portaltabs')
>>> browser.getControl(name='url:list').value = 'http://foo.org/'
>>> browser.getControl('Save').click()
>>> 'Changes saved' in browser.contents
True
>>> pq = PyQuery(browser.contents)
>>> pq('#portal-globalnav #portaltab-index_html a').attr('href')
'http://foo.org/'

Edit validation
---------------

There are required data.

Title is required:

>>> browser.open(portal.portal_url() + '/@@manage-portaltabs')
>>> browser.getControl(name='title:list').value = ''
>>> browser.getControl('Save').click()
>>> 'Please correct the indicated errors.' in browser.contents
True
>>> 'Title field is required, please provide it.' in browser.contents
True

Also URL is required:

>>> browser.open(portal.portal_url() + '/@@manage-portaltabs')
>>> browser.getControl(name='url:list').value = ''
>>> browser.getControl('Save').click()
>>> 'Please correct the indicated errors.' in browser.contents
True
>>> 'URL field is required, please provide it.' in browser.contents
True


