==================================================
Check the appearance of fields for spam prevention
==================================================

Log in as Manager::

    >>> browser.login(TEST_USER_NAME, TEST_USER_PASSWORD)

Add NewsletterTheme::

    >>> browser.open('/createObject?type_name=NewsletterTheme')
    >>> browser.getControl(name="title").value = 'NewsletterTheme01'
    >>> browser.getControl(name="testEmail").value = 'test@email.com'
    >>> browser.getControl(name="authorEmail").value = 'author@email.com'
    >>> browser.getControl(name="form.button.Save").click()

Check that there are not messages:

    >>> len(messages)
    0

Click Subscribe::

    >>> browser.getLink("Subscribe").click()

There are no spam preventation::

    >>> browser.bycss('.turhaSeOis')
    ''

Subscribe::

    >>> browser.getControl(name="email").value = "aaa@aaa.aa"
    >>> browser.getControl(name="Change").click()

Check the message::

    >>> len(messages)
    1

    >>> prink(messages[-1])
    To: aaa@aaa.aa
    Date: ...
    Message-ID: ...
    Mime-version: 1.0
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: quoted-printable
    Subject: =?utf-8?q?Please_activate_your_newsletter_account?=
    From: author@email.com
    <BLANKLINE>
    Dear subscriber,
    <BLANKLINE>
    We have received and recorded your newsletter subscription.
    You must now activate your account to receive our newsletters.
    To do this, just browse to this URL...
    http://nohost/plone/newslettertheme01?active=...&format=3DHTML
    Then you'll receive our next newsletters at aaa@aaa.aa
    <BLANKLINE>
    PLEASE DON'T REPLY TO THIS MAIL

Enable spam prevention::

    >>> browser.open('/portal_registry/edit/Products.PloneGazette.spam_prevention')
    >>> browser.getControl(name="form.widgets.value:list").value = True
    >>> browser.getControl(name="form.buttons.save").click()

Go to Subscribe::

    >>> browser.open('/newslettertheme01/NewsletterTheme_subscribeForm')

    >>> print browser.bycss('.turhaSeOis')
    --- 1 ---
    <input class="turhaSeOis" type="text" name="title" value="">
    --- 2 ---
    <textarea class="turhaSeOis" rows="2" cols="20" name="message"></textarea>

Subscribe::

    >>> browser.getControl(name="email").value = "bbb@bbb.bb"
    >>> browser.getControl(name="Change").click()

Check the message::

    >>> len(messages)
    2

Subscribe spam with title field::

    >>> browser.open('/newslettertheme01/NewsletterTheme_subscribeForm')

    >>> browser.getControl(name="email").value = "ccc@ccc.cc"
    >>> browser.getControl(name="title").value = 'TITLE'
    >>> browser.getControl(name="Change").click()

Check the message::

    >>> len(messages)
    2

Subscribe spam with message field::

    >>> browser.open('/newslettertheme01/NewsletterTheme_subscribeForm')

    >>> browser.getControl(name="email").value = "ddd@ddd.dd"
    >>> browser.getControl(name="message").value = 'MESSAGE'
    >>> browser.getControl(name="Change").click()

Check the message::

    >>> len(messages)
    2

Subscribe spam with title and message field::

    >>> browser.open('/newslettertheme01/NewsletterTheme_subscribeForm')

    >>> browser.getControl(name="email").value = "eee@eee.ee"
    >>> browser.getControl(name="title").value = 'TITLE'
    >>> browser.getControl(name="message").value = 'MESSAGE'
    >>> browser.getControl(name="Change").click()

Check the message::

    >>> len(messages)
    2

Add Subscribe Newsletter Portlet::

    >>> browser.open('/++contextportlets++plone.leftcolumn/+/portlets.SubscribeNewsletter')
    >>> browser.getControl(name="form.actions.save").click()

Subscribe without spam through the portlet::

    >>> browser.open('/')
    >>> browser.getControl(name="form.widgets.email").value = "fff@fff.ff"
    >>> browser.getControl(name="form.buttons.subscribe").click()

Check the message::

    >>> len(messages)
    3

Subscribe spam with title field through the portlet::

    >>> browser.open('/')
    >>> browser.getControl(name="form.widgets.email").value = "ggg@ggg.gg"
    >>> browser.getControl(name="form.widgets.title").value = 'TITLE'
    >>> browser.getControl(name="form.buttons.subscribe").click()

Check the message::

    >>> len(messages)
    3

Subscribe spam with message field through the portlet::

    >>> browser.getControl(name="form.widgets.email").value = "hhh@hhh.hh"
    >>> browser.getControl(name="form.widgets.message").value = 'MESSAGE'
    >>> browser.getControl(name="form.buttons.subscribe").click()

Check the message::

    >>> len(messages)
    3

Subscribe spam with message field through the portlet::

    >>> browser.getControl(name="form.widgets.email").value = "iii@iii.ii"
    >>> browser.getControl(name="form.widgets.title").value = 'TITLE'
    >>> browser.getControl(name="form.widgets.message").value = 'MESSAGE'
    >>> browser.getControl(name="form.buttons.subscribe").click()

Check the message::

    >>> len(messages)
    3

Disable spam prevention::

    >>> browser.open('/portal_registry/edit/Products.PloneGazette.spam_prevention')
    >>> browser.getControl(name="form.widgets.value:list").value = False
    >>> browser.getControl(name="form.buttons.save").click()

Subscribe spam with title field through the portlet::

    >>> browser.open('/')
    >>> browser.getControl(name="form.widgets.email").value = "jjj@jjj.jj"
    >>> browser.getControl(name="form.widgets.title").value = 'TITLE'
    >>> browser.getControl(name="form.buttons.subscribe").click()

Check the message::

    >>> len(messages)
    4

Subscribe spam with message field through the portlet::

    >>> browser.getControl(name="form.widgets.email").value = "kkk@kkk.kk"
    >>> browser.getControl(name="form.widgets.message").value = 'MESSAGE'
    >>> browser.getControl(name="form.buttons.subscribe").click()

Check the message::

    >>> len(messages)
    5

Subscribe spam with message field through the portlet::

    >>> browser.getControl(name="form.widgets.email").value = "lll@lll.ll"
    >>> browser.getControl(name="form.widgets.title").value = 'TITLE'
    >>> browser.getControl(name="form.widgets.message").value = 'MESSAGE'
    >>> browser.getControl(name="form.buttons.subscribe").click()

Check the message::

    >>> len(messages)
    6
