;--Doctest--

Flexible Login

grouaprchy.login provides a login process that allow using multiple fields to identify the user and then disambiguate from there.

>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> browser.handleErrors = False
>>> browser.open(self.portal.absolute_url())
>>> browser.getLink('Log in').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<legend>Please log in</legend>
...</html>

Users can log in by full name:

>>> from Testing.ZopeTestCase import user_password, user_name
>>> browser.getControl('Login').value = 'First Test User'
>>> browser.getControl('Password').value = user_password
>>> browser.getControl('Log in').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<a href="http://nohost/plone/logout">Log out</a>
...</html>

>>> browser.getLink('My Folder').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 id="parent-fieldname-title" class="documentFirstHeading...">
test_user_1_
</h1>
...</html>

>>> browser.getLink('Log out').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged out</h1>
...</html>

or by email:

>>> browser.getControl('Login').value = user_name+'@foo.com'
>>> browser.getControl('Password').value = user_password
>>> browser.getControl('Log in').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged in</h1>
...</html>

>>> browser.getLink('My Folder').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 id="parent-fieldname-title" class="documentFirstHeading...">
test_user_1_
</h1>
...</html>

>>> browser.getLink('Log out').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged out</h1>
...</html>

or by login name:

>>> browser.getControl('Login').value = user_name
>>> browser.getControl('Password').value = user_password
>>> browser.getControl('Log in').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged in</h1>
...</html>

>>> browser.getLink('My Folder').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 id="parent-fieldname-title" class="documentFirstHeading...">
test_user_1_
</h1>
...</html>

>>> browser.getLink('Log out').click()
>>> print browser.contents
<!DOCTYPE html PUBLIC...
<h1 class="documentFirstHeading">You are now logged out</h1>
...</html>