Functional test with PloneFormGen
==================================

Initial imports and defines.
-----------------------------
    >>> portal_url =  portal.absolute_url()
    >>> form_url = portal.form.absolute_url()

Setting up.
-----------
    >>> try:
    ...     from Testing.testbrowser import Browser
    ... except ImportError:
    ...     from Products.Five.testbrowser import Browser
    >>> browser = Browser()

For debugging.
--------------
    >>> browser.handleErrors = True
    >>> portal.error_log._ignored_exceptions = ()

Turn off portlets.
------------------
    >>> from zope.component import getUtility, getMultiAdapter
    >>> from plone.portlets.interfaces import IPortletManager
    >>> from plone.portlets.interfaces import IPortletAssignmentMapping

    >>> right_column = getUtility(IPortletManager, name=u"plone.leftcolumn")
    >>> right_assignable = getMultiAdapter((portal, right_column), IPortletAssignmentMapping)
    >>> for name in right_assignable.keys():
    ...     del right_assignable[name]

    >>> right_column = getUtility(IPortletManager, name=u"plone.rightcolumn")
    >>> right_assignable = getMultiAdapter((portal, right_column), IPortletAssignmentMapping)
    >>> for name in right_assignable.keys():
    ...     del right_assignable[name]

Log in as the portal owner.
----------------------------
    >>> browser.open(portal_url)
    >>> from Products.PloneTestCase.setup import portal_owner, default_password
    >>> browser.open(portal_url + '/login_form?came_from=' + portal_url)
    >>> browser.getControl(name='__ac_name').value = portal_owner
    >>> browser.getControl(name='__ac_password').value = default_password
    >>> browser.getControl(name='submit').click()

    >>> browser.open(form_url)
    >>> '91A9848AC8BCDF6D5A8EBDB5A041B00E' in browser.contents
    True

Change some properties in Payment Config
-----------------------------------------
    >>> browser.getLink('Site Setup').click()
    >>> browser.getLink('Payment Config').click()
    >>> browser.getControl(name="mac").value = 'ABCDEFG'
    >>> browser.getControl(name="form.button.UpdatePaymentProperties").click()

Go to Form Folder and give local pyament config.
-------------------------------------------------
    >>> browser.open(form_url)
    >>> '4D3BA5AFD4907541E4E668E9FA6C3324' in browser.contents
    True
    >>> browser.getLink(id="make_order_number_aware").click()
    >>> browser.getControl(name="local_payment").value = True
    >>> browser.getControl(name="form.button.UseLocalPayment").click()
    >>> browser.getControl(name="mac").value = '6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ'
    >>> browser.getControl(name="fields").value = 'MERCHANT_ID\r\nAMOUNT\r\nORDER_NUMBER\r\nREFERENCE_NUMBER\r\nORDER_DESCRIPTION\r\nCURRENCY\r\nRETURN_ADDRESS\r\nCANCEL_ADDRESS\r\nPENDING_ADDRESS\r\nNOTIFY_ADDRESS\r\nTYPE\r\nCULTURE\r\nPRESELECTED_METHOD\r\nMODE\r\nVISIBLE_METHODS\r\nGROUP'
    >>> browser.getControl(name="separator").value = '|'
    >>> browser.getControl(name="capital").value = True
    >>> browser.getControl(name="form.button.UpdatePaymentProperties").click()

Check Form Folder that the previous AUTHCODE is back.
-----------------------------------------------------
    >>> browser.open(form_url)
    >>> '91A9848AC8BCDF6D5A8EBDB5A041B00E' in browser.contents
    True
