Faceted inheritance user interface
==================================

Set up
------

  Imports

    >>> from zope.component import getMultiAdapter
    >>> self.loginAsPortalOwner()

  Add ancestor

    >>> fid = portal.invokeFactory('Folder', 'ancestor')
    >>> ancestor = portal._getOb(fid)
    >>> request = ancestor.REQUEST
    >>> subtyper = getMultiAdapter((ancestor, request), name=u'faceted_subtyper')
    >>> subtyper.enable()
    >>> ancestor.reindexObject()

  Add heritor

    >>> fid = portal.invokeFactory('Folder', 'heritor')
    >>> heritor = portal._getOb(fid)
    >>> hertyper = getMultiAdapter((heritor, heritor.REQUEST), name=u'facetedheritor_subtyper')
    >>> hertyper.can_enable_heritor
    True

    >>> hertyper.enable()
    >>> heritor.reindexObject()

  Login

    >>> self.logout()
    >>> from Products.Five.testbrowser import Browser
    >>> from Products.PloneTestCase import PloneTestCase
    >>> browser = Browser()
    >>> browser.handleErrors = False
    >>> self.portal.error_log._ignored_exceptions = ()
    >>> browser.addHeader('Authorization',
    ...                   'Basic %s:%s' % (PloneTestCase.portal_owner,
    ...                                    PloneTestCase.default_password))

  Default heritor view

    >>> heritor_url = heritor.absolute_url()
    >>> browser.open(heritor_url)

  Configure heritor

    >>> browser.open(heritor_url + '/@@configure_faceted.html')
    >>> control = browser.getControl(name='ancestor')
    >>> control.options
    ['', '/plone/ancestor']

    >>> control.value = ['/plone/ancestor']
    >>> browser.getControl('Save').click()
    >>> 'Changes saved' in browser.contents
    True

    >>> browser.getControl(name='ancestor').value
    ['/plone/ancestor']

  Check results

    >>> browser.open(heritor_url)
