Skip to main content

Adds a doormat viewlet and installs it in the Plone footer. The links and text in the doormat are manageable in the control panel

Project description

Introduction
=============


A doormat is a couple of links which are presented in a structured way.
One example is the current plone.org, where the div#sitemap at the
bottom consists of some ordered bundles of internal and external links,
with sections called "Downloads", "Documentation", "Developers",
"Plone foundation" and "Support".

This product adds a control panel in which you can design your doormat
with a WYSIWYG editor. No contenttypes are added.


- Code repository: https://svn.plone.org/svn/collective/collective.doormat/trunk
- Report bugs at http://plone.org/products/collective.doormat/issues


Change history
**************

Changelog
=========

0.1 (2011/12/15)
----------------

- initial release
- Created recipe with ZopeSkel
[Christian Ledermann]

Detailed Documentation
**********************

Introduction
============

This is a full-blown functional test. The emphasis here is on testing what
the user may input and see, and the system is largely tested as a black box.
We use PloneTestCase to set up this test as well, so we have a full Plone site
to play with. We *can* inspect the state of the portal, e.g. using
self.portal and self.folder, but it is often frowned upon since you are not
treating the system as a black box. Also, if you, for example, log in or set
roles using calls like self.setRoles(), these are not reflected in the test
browser, which runs as a separate session.

Being a doctest, we can tell a story here.

First, we must perform some setup. We use the testbrowser that is shipped
with Five, as this provides proper Zope 2 integration. Most of the
documentation, though, is in the underlying zope.testbrower package.

>>> from Products.Five.testbrowser import Browser
>>> browser = Browser()
>>> portal_url = self.portal.absolute_url()

The following is useful when writing and debugging testbrowser tests. It lets
us see all error messages in the error_log.

>>> self.portal.error_log._ignored_exceptions = ()

With that in place, we can go to the portal front page and log in. We will
do this using the default user from PloneTestCase:

>>> from Products.PloneTestCase.setup import portal_owner, default_password

Because add-on themes or products may remove or hide the login portlet, this test will use the login form that comes with plone.

>>> browser.open(portal_url + '/login_form')
>>> browser.getControl(name='__ac_name').value = portal_owner
>>> browser.getControl(name='__ac_password').value = default_password
>>> browser.getControl(name='submit').click()

Here, we set the value of the fields on the login form and then simulate a
submit click. We then ensure that we get the friendly logged-in message:

>>> "You are now logged in" in browser.contents
True

Finally, let's return to the front page of our site before continuing

>>> browser.open(portal_url)

-*- extra stuff goes here -*-


Contributors
************

Christian Ledermann, Author


Download
********

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page