Functional Tests ================ Set Up ------ Make this test available as a module so that stuff defined in here can be pickled properly: >>> from zope.testing import module >>> module.setUp(test, name='five.localsitemanager.browsertest') Load all of Five's configuration (this is a functional test): >>> import Products.Five >>> import five.localsitemanager # BBB for Zope 2.12 >>> try: ... from Zope2.App.zcml import load_config, load_string ... except ImportError: ... from Products.Five.zcml import load_config, load_string >>> load_config('configure.zcml', package=Products.Five) >>> load_config('configure.zcml', package=five.localsitemanager) >>> load_string('') Enable local component lookup hooks: >>> from zope.site.hooks import setHooks >>> setHooks() User Set Up ----------- >>> uf = app.acl_users >>> _ignored = uf._doAddUser('admin', 'admin', ['Manager'], []) Create the test browser we'll be using: # BBB for Zope 2.12 >>> try: ... from Testing.testbrowser import Browser ... except ImportError: ... from Products.Five.testbrowser import Browser >>> browser = Browser() >>> browser.addHeader('Authorization', 'Basic admin:admin') Folder Set Up ------------- Make a folder to use as a local site for component registration: >>> from OFS.Folder import manage_addFolder >>> manage_addFolder(app, 'folder') Look up the ``components.html`` view and make sure the ``Make Site`` action still works. >>> browser.open('http://localhost/folder/components.html') >>> browser.getControl('Make site').click() Make sure the site manager trail only leads back to the global component registry. >>> '
Global Registry => <PersistentComponents /folder>
' in browser.contents True Now we add a sub folder. >>> manage_addFolder(app.folder, 'subfolder') >>> browser.open('http://localhost/folder/subfolder/components.html') >>> browser.getControl('Make site').click() >>> '
Global Registry => <PersistentComponents /folder> => <PersistentComponents /folder/subfolder>
' in browser.contents True Clean up -------- >>> module.tearDown(test, name='five.localsitemanager.browsertest') >>> from zope.testing.cleanup import cleanUp >>> cleanUp()