============================
 Salesforce PFG Adapter View
============================

Get our test browser and get some permissions in place::

    >>> from Products.Five.testbrowser import Browser
    >>> browser = Browser()
    >>> portal_url = 'http://nohost/plone'
    >>> self.app.acl_users.userFolderAddUser('root', 'secret', ['Manager'], [])
    >>> self.app.acl_users.userFolderAddUser('member', 'secret', ['Member'], [])
    >>> browser.addHeader('Authorization', 'Basic root:secret')

Add a new form folder to contain our Salesforce Adapter::

    >>> self.setRoles(['Manager'])
    >>> self.portal.invokeFactory('FormFolder', 'testform')
    'testform'

Let's now add a Salesforce Adapter and populate a few values on our adapter::
    
    >>> browser.open("%s/testform/view" % portal_url)
    >>> browser.getLink('Salesforce Adapter').click()
    >>> browser.getControl('Title').value = 'Contact Adapter'
    >>> browser.getControl('Salesforce Object Type').value = ('Contact',)
    >>> try:
    ...     browser.getControl(name='form.button.next').click()
    ... except:
    ...     browser.getControl(name='form_next').click()
    >>> browser.getControl(name='fieldMap.sf_field:records', index=0).value = ('LastName',)
    >>> try:
    ...     browser.getControl(name='form.button.save').click()
    ... except:
    ...     browser.getControl(name='form_submit').click()

As a manager, we should be able to happily see our adapter configurations::

    >>> browser.open("%s/testform/contact-adapter/view" % portal_url)
    >>> browser.contents
    '...Contact Adapter...
    ...Salesforce Object Type...
    ...Contact...
    ...LastName (required)...'

Let's publish the form in question and logout so we can take another look 
at things::
    
    >>> self.portal.portal_workflow.doActionFor(self.portal.testform, 'publish')

Now our sophisticated anonymous user knows to navigate to the folder listing
view and then to the Contact Adapter::

    >>> anonbrowser = Browser()
    >>> anonbrowser.open("http://nohost/plone/testform/folder_listing")
    >>> anonbrowser.getLink('Contact Adapter').click()
    >>> '<span class="" id="parent-fieldname-SFObjectType">\n            Contact\n        </span>' not in anonbrowser.contents
    True


