Log in as Manager::

    >>> browser.login(TEST_USER_NAME, TEST_USER_PASSWORD)

Make Shopping Site::

    >>> browser.open('/')
    >>> browser.getLink('Make Shopping Site').click()

Add two Articles::

    >>> browser.open('/++add++collective.cart.core.Article')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle01'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Description of Ärticle01'
    >>> browser.getControl(name="form.buttons.save").click()
    >>> browser.getLink('Publish').click()

    >>> browser.open('/')

    >>> browser.open('/++add++collective.cart.core.Article')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle02'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Description of Ärticle02'
    >>> browser.getControl(name="form.buttons.save").click()
    >>> browser.getLink('Publish').click()

Log out and log in as member1:

    >>> browser.getLink('Log out').click()
    >>> browser.login(member1, member1)

Cart should be empty::

    >>> browser.open('/@@cart')
    >>> 'Cart is empty' in browser.contents
    True

Go to Cart Container::

    >>> browser.open('/cart-container')
    >>> 'Insufficient Privileges' in browser.contents
    True

Go to non existing Cart::

    >>> browser.open('/cart-container/1')
    Traceback (most recent call last):
    ...
    HTTPError: HTTP Error 404: Not Found


Add Article01 To Cart::

    >>> browser.open('/article01')
    >>> 'Add To Cart' in browser.contents
    True
    >>> browser.getControl(name="form.addtocart").click()

Go to Cart Container::

    >>> browser.open('/cart-container')
    >>> 'Insufficient Privileges' in browser.contents
    True

Go to Cart::

    >>> browser.open('/cart-container/1')
    >>> 'Insufficient Privileges' in browser.contents
    True

Check cart::

    >>> browser.open('/@@cart')
    >>> print browser.bycss('.name')
    --- 1 ---
    <td class="name">
    <a href="http://nohost/plone/article01">&#196;rticle01</a>
    </td>

    >>> 'Cart is empty' in browser.contents
    False

Log out and log in as member2::

    >>> browser.getLink('Log out').click()
    >>> browser.login(member2, member2)

Cart should be empty::

    >>> browser.open('/@@cart')
    >>> 'Cart is empty' in browser.contents
    True

Add Ärticle02::

    >>> browser.open('/article02')
    >>> browser.getControl(name="form.addtocart").click()

    >>> browser.open('/@@cart')
    >>> print browser.bycss('.name')
    --- 1 ---
    <td class="name">
    <a href="http://nohost/plone/article02">&#196;rticle02</a>
    </td>

Log out and log in as member1::

    >>> browser.getLink('Log out').click()
    >>> browser.login(member1, member1)

There should be Ärticle01 in cart.::

    >>> browser.open('/@@cart')
    >>> print browser.bycss('.name')
    --- 1 ---
    <td class="name">
    <a href="http://nohost/plone/article01">&#196;rticle01</a>
    </td>

Add Ärticle01::

    >>> browser.open('/article01')
    >>> browser.getControl(name="form.addtocart").click()

There should be Ärticle01 in cart.::

    >>> browser.open('/@@cart')
    >>> print browser.bycss('.name')
    --- 1 ---
    <td class="name">
    <a href="http://nohost/plone/article01">&#196;rticle01</a>
    </td>

Delete Ärticle01::

    >>> browser.getControl(name="form.delete.article").click()
    >>> print browser.bycss('.name')

    >>> 'Cart is empty' in browser.contents
    True

Add Ärticle01 and Ärticle02::

    >>> browser.open('/article01')
    >>> browser.getControl(name="form.addtocart").click()
    >>> browser.open('/article02')
    >>> browser.getControl(name="form.addtocart").click()

Check cart::

    >>> browser.open('/@@cart')
    >>> print browser.bycss('.name')
    --- 1 ---
    <td class="name">
    <a href="http://nohost/plone/article01">&#196;rticle01</a>
    </td>
    --- 2 ---
    <td class="name">
    <a href="http://nohost/plone/article02">&#196;rticle02</a>
    </td>

Log out, log in as admin, remove Article02::

    >>> browser.getLink('Log out').click()
    >>> browser.login(TEST_USER_NAME, TEST_USER_PASSWORD)
    >>> browser.open('/article02/delete_confirmation')
    >>> browser.getControl('Delete').click()

    >>> 'rticle02 has been deleted.' in browser.contents
    True

Log out, log in as member1 and go to cart::

    >>> browser.getLink('Log out').click()
    >>> browser.login(member1, member1)
    >>> browser.open('/@@cart')
    >>> print browser.bycss('.name')
    --- 1 ---
    <td class="name">
    <a href="http://nohost/plone/article01">&#196;rticle01</a>
    </td>
    --- 2 ---
    <td class="name">
    &#196;rticle02
    </td>

    >>> print browser.bycss('.delete')
    --- 1 ---
    <td class="delete">
    <button class="standalone" name="form.delete.article" type="submit" value="1">Delete</button>
    </td>
    --- 2 ---
    <td class="delete">
    <button class="standalone" name="form.delete.article" type="submit" value="2">Delete</button>
    </td>

Delete Article02::

    >>> browser.getControl(name="form.delete.article", index=1).click()
    >>> print browser.bycss('.name')
    --- 1 ---
    <td class="name">
    <a href="http://nohost/plone/article01">&#196;rticle01</a>
    </td>

Delete Article01::

    >>> browser.getControl(name="form.delete.article").click()

    >>> print browser.bycss('.name')

    >>> browser.open('/@@cart')

    >>> 'Cart is empty' in browser.contents
    True
