Log in as Manager::

    >>> browser.login(TEST_USER_NAME, TEST_USER_PASSWORD)

Add Shop::

    >>> browser.open('/++add++collective.cart.shopping.Shop')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Shöp'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Description of Shöp.'
    >>> browser.getControl(name="form.buttons.save").click()

Add Article Container::

    >>> browser.open('/shop/++add++collective.cart.shopping.ArticleContainer')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle Container'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Description of Ärticle Container.'
    >>> browser.getControl(name="form.buttons.save").click()

Add Article1::

    >>> browser.open('/shop/article-container/++add++collective.cart.core.Article')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle1'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Description of Ärticle1'
    >>> browser.getControl(name="form.widgets.ISKU.sku").value = 'SKÖ1'
    >>> browser.getControl(name="form.widgets.IDiscount.price").value = '24.80'
    >>> browser.getControl(name="form.widgets.ISize.weight").value = '100.0'
    >>> browser.getControl(name="form.buttons.save").click()

    >>> from plone.uuid.interfaces import IUUID
    >>> article1 = portal['shop']['article-container']['article1']
    >>> uuid1 = IUUID(article1)

Add Stock to Ärticle1::

    >>> browser.open('/shop/article-container/article1/++add++collective.cart.stock.Stock')
    >>> browser.getControl(name="form.widgets.IBasic.title").value = 'Stöck1'
    >>> browser.getControl(name="form.widgets.IBasic.description").value = 'Description of Stöck1'
    >>> browser.getControl(name="form.widgets.stock").value = '100'
    >>> browser.getControl( name="form.widgets.IStockPrice.price").value = '4.00'
    >>> browser.getControl(name="form.buttons.save").click()

Add no integer number to cart::

    >>> browser.open('/shop/article-container/article1')
    >>> browser.getControl(name=uuid1).value = '1.0'
    >>> browser.getControl(name="form.buttons.AddToCart").click()
    >>> print browser.bycss('.warn')
    --- 1 ---
    <dl class="portalMessage warn"><dt>Warn</dt>
    <dd>Input integer value to add to cart.</dd>
    </dl>
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 100 pcs
    </section>

Cart should be empty::

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

    >>> print browser.bycss('#check-out-flow')
    --- 1 ---
    <section id="check-out-flow"><ul><li class="cart current-step">
    Cart
    </li>
    <li class="billing-and-shipping">
    Addresses
    </li>
    <li class="order-confirmation">
    Confirmation
    </li>
    </ul></section>

    >>> print browser.bycss('#cart-is-empty')
    --- 1 ---
    <p id="cart-is-empty">
    Cart is empty.
    </p>

    >>> print browser.bycss('#cart-articles')
    >>> print browser.bycss('#cart-articles-total')
    >>> print browser.bycss('#check-out-buttons')

Add one item to cart::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 100 pcs
    </section>

    >>> browser.getControl(name="form.buttons.AddToCart").click()
    >>> print browser.bycss('.portalMessage')
    --- 1 ---
    ...
    --- 2 ---
    <dl class="portalMessage info"><dt>Info</dt>
    <dd>&#196;rticle1 is added to cart.</dd>
    </dl>
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 99 pcs
    </section>

There should be one article in cart::

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

    >>> print browser.bycss('#cart-is-empty')

    >>> print browser.bycss('#cart-articles')
    --- 1 ---
    <section id="cart-articles"><table><tbody><tr><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1" title="&#196;rticle1">
    <img src="http://nohost/plone/fallback.png"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1">&#196;rticle1</a>
    </h3>
    <p>Description of &#196;rticle1</p>
    </td>
    <td class="price-and-quantity">
    <section><input id="quantity" min="0" type="number" max="100" size="3" name="..." value="1" maxlength="3">
    &#160;&#215;&#160;
    <span class="gross">24.80 &#8364;</span>
    </section><span class="vat-rate">
    Including VAT: 24%
    </span>
    <section class="buttons"><button class="shopping-button update" name="form.buttons.UpdateArticle" type="submit" value="...">
    Update
    </button>
    <button class="shopping-button remove" name="form.buttons.RemoveArticle" type="submit" value="...">
    Remove
    </button>
    </section></td>
    </tr></tbody></table></section>

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">24.80 &#8364;</span>
    </section>

    >>> print browser.bycss('#check-out-buttons')
    --- 1 ---
    <section id="check-out-buttons"><button formnovalidate type="submit" class="clear" value="form.buttons.ClearCart" name="form.buttons.ClearCart">Clear</button>
    <button type="submit" class="next" value="form.buttons.CheckOut" name="form.buttons.CheckOut">Next</button>
    </section>

Back to Article1 and add more articles::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 99 pcs
    </section>

    >>> browser.getControl(name=uuid1).value = '100'
    >>> browser.getControl(name="form.buttons.AddToCart").click()
    >>> print browser.bycss('.sold-out')

Go to cart::

    >>> browser.open('/shop/@@cart')
    >>> print browser.bycss('#cart-is-empty')
    >>> print browser.bycss('#cart-articles')
    --- 1 ---
    <section id="cart-articles"><table><tbody><tr><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1" title="&#196;rticle1">
    <img src="http://nohost/plone/fallback.png"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1">&#196;rticle1</a>
    </h3>
    <p>Description of &#196;rticle1</p>
    </td>
    <td class="price-and-quantity">
    <section><input id="quantity" min="0" type="number" max="100" size="3" name="..." value="100" maxlength="3">
    &#160;&#215;&#160;
    <span class="gross">24.80 &#8364;</span>
    </section><span class="vat-rate">
    Including VAT: 24%
    </span>
    <section class="buttons"><button class="shopping-button update" name="form.buttons.UpdateArticle" type="submit" value="...">
    Update
    </button>
    <button class="shopping-button remove" name="form.buttons.RemoveArticle" type="submit" value="...">
    Remove
    </button>
    </section></td>
    </tr></tbody></table></section>

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">2,480.00 &#8364;</span>
    </section>

Edit Ärtilce1 and enable discount::

    >>> browser.open('/shop/article-container/article1/edit')
    >>> browser.getControl(name="form.widgets.IDiscount.discount_enabled:list").value = True
    >>> browser.getControl(name="form.widgets.IDiscount.discount_price").value = '12.40'
    >>> browser.getControl(name="form.widgets.IDiscount.discount_end-day").value = str(today.day)
    >>> browser.getControl(name="form.widgets.IDiscount.discount_end-month").value = [str(today.month)]
    >>> browser.getControl(name="form.widgets.IDiscount.discount_end-year").value = str(today.year)
    >>> browser.getControl(name="form.buttons.save").click()

Add Stock to Ärticle1::

    >>> browser.open('/shop/article-container/article1/++add++collective.cart.stock.Stock')
    >>> browser.getControl(name="form.widgets.IBasic.title").value = 'Stöck2'
    >>> browser.getControl(name="form.widgets.IBasic.description").value = 'Description of Stöck2'
    >>> browser.getControl(name="form.widgets.stock").value = '50'
    >>> browser.getControl( name="form.widgets.IStockPrice.price").value = '3.00'
    >>> browser.getControl(name="form.buttons.save").click()

Go to Ärticle1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 0 pcs
    </section>

Change reducible quantity for Ärticle1::

    >>> browser.open('/shop/article-container/article1/edit')
    >>> browser.getControl(name="form.widgets.IStock.reducible_quantity").value = '150'
    >>> browser.getControl(name="form.buttons.save").click()
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 50 pcs
    </section>

    >>> browser.getControl(name=uuid1).value = '10'
    >>> browser.getControl(name="form.buttons.AddToCart").click()
    >>> print browser.bycss('.sold-out')
    >>> browser.open('/shop/@@cart')
    >>> print browser.bycss('#cart-is-empty')
    >>> print browser.bycss('#cart-articles')
    --- 1 ---
    <section id="cart-articles"><table><tbody><tr><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1" title="&#196;rticle1">
    <img src="http://nohost/plone/fallback.png"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1">&#196;rticle1</a>
    </h3>
    <p>Description of &#196;rticle1</p>
    </td>
    <td class="price-and-quantity">
    <section><input id="quantity" min="0" type="number" max="150" size="3" name="..." value="110" maxlength="3">
    &#160;&#215;&#160;
    <span class="gross">24.80 &#8364;</span>
    </section><span class="vat-rate">
    Including VAT: 24%
    </span>
    <section class="buttons"><button class="shopping-button update" name="form.buttons.UpdateArticle" type="submit" value="...">
    Update
    </button>
    <button class="shopping-button remove" name="form.buttons.RemoveArticle" type="submit" value="...">
    Remove
    </button>
    </section></td>
    </tr></tbody></table></section>

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">2,728.00 &#8364;</span>
    </section>

Update quantity which is not integer::

    >>> browser.getControl(name=uuid1).value = 'AAA'
    >>> browser.getControl(name="form.buttons.UpdateArticle").click()
    >>> print browser.bycss('.warn')
    --- 1 ---
    <dl class="portalMessage warn"><dt>Warn</dt>
    <dd>Invalid quantity.</dd>
    </dl>
    >>> print browser.bycss('#quantity')
    --- 1 ---
    <input id="quantity" min="0" type="number" max="150" size="3" name="..." value="110" maxlength="3">
    &#160;&#215;&#160;

Update quantity with integer::

    >>> browser.getControl(name=uuid1).value = '90'
    >>> browser.getControl(name="form.buttons.UpdateArticle").click()
    >>> print browser.bycss('#quantity')
    --- 1 ---
    <input id="quantity" min="0" type="number" max="150" size="3" name="..." value="90" maxlength="3">
    &#160;&#215;&#160;
    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">2,232.00 &#8364;</span>
    </section>

Go to Article1 and check stock::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 60 pcs
    </section>

Add 20 Article1::

    >>> browser.getControl(name=uuid1).value = '20'
    >>> browser.getControl(name="form.buttons.AddToCart").click()

Add Ärticle11 under Ärticle1::

    >>> browser.open('/shop/article-container/article1/++add++collective.cart.core.Article')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle11'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Description of Ärticle11.'
    >>> browser.getControl(name="form.widgets.ISKU.sku").value = 'SKÖ11'
    >>> browser.getControl(name="form.widgets.IDiscount.price").value = '10.00'
    >>> browser.getControl(name="form.widgets.ISize.weight").value = '200.0'
    >>> browser.getControl(name="form.buttons.save").click()

    >>> article11 = article1['article11']
    >>> uuid11 = IUUID(article11)

Add Stöck1 to Ärticle11::

    >>> browser.open('/shop/article-container/article1/article11/++add++collective.cart.stock.Stock')
    >>> browser.getControl(name="form.widgets.IBasic.title").value = 'Stöck1'
    >>> browser.getControl(name="form.widgets.IBasic.description").value = 'Description of Stöck1'
    >>> browser.getControl(name="form.widgets.stock").value = '100'
    >>> browser.getControl( name="form.widgets.IStockPrice.price").value = '0.0'
    >>> browser.getControl(name="form.buttons.save").click()

Go to Article1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 100 pcs
    </section>

    >>> browser.getControl(name=uuid11).value = '10'
    >>> browser.getControl(name="form.buttons.AddToCart").click()

Go to cart::

    >>> browser.open('/shop/@@cart')
    >>> print browser.bycss('#cart-is-empty')
    >>> print browser.bycss('#cart-articles')
    --- 1 ---
    <section id="cart-articles"><table><tbody><tr><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1" title="&#196;rticle1">
    <img src="http://nohost/plone/fallback.png"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1">&#196;rticle1</a>
    </h3>
    <p>Description of &#196;rticle1</p>
    </td>
    <td class="price-and-quantity">
    <section><input id="quantity" min="0" type="number" max="150" size="3" name="..." value="110" maxlength="3">
    &#160;&#215;&#160;
    <span class="gross">24.80 &#8364;</span>
    </section><span class="vat-rate">
    Including VAT: 24%
    </span>
    <section class="buttons"><button class="shopping-button update" name="form.buttons.UpdateArticle" type="submit" value="...">
    Update
    </button>
    <button class="shopping-button remove" name="form.buttons.RemoveArticle" type="submit" value="...">
    Remove
    </button>
    </section></td>
    </tr><tr><td class="image">
    <a href="http://nohost/plone/shop/article-container/article1/article11" title="&#196;rticle1 &#196;rticle11">
    <img src="http://nohost/plone/fallback.png"></a>
    </td>
    <td class="name">
    <h3>
    <a href="http://nohost/plone/shop/article-container/article1/article11">&#196;rticle1 &#196;rticle11</a>
    </h3>
    <p>Description of &#196;rticle11.</p>
    </td>
    <td class="price-and-quantity">
    <section><input id="quantity" min="0" type="number" max="100" size="3" name="..." value="10" maxlength="3">
    &#160;&#215;&#160;
    <span class="gross">10.00 &#8364;</span>
    </section><span class="vat-rate">
    Including VAT: 24%
    </span>
    <section class="buttons"><button class="shopping-button update" name="form.buttons.UpdateArticle" type="submit" value="...">
    Update
    </button>
    <button class="shopping-button remove" name="form.buttons.RemoveArticle" type="submit" value="...">
    Remove
    </button>
    </section></td>
    </tr></tbody></table></section>

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">2,828.00 &#8364;</span>
    </section>

Go to Article1::

    >>> browser.open('/shop/article-container/article1')
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 90 pcs
    </section>

    >>> browser.getControl(name=uuid11).value = '20'
    >>> browser.getControl(name="form.buttons.AddToCart").click()

Go to Article11::

    >>> browser.open('/shop/article-container/article1/article11')
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 70 pcs
    </section>

Go to cart::

    >>> browser.open('/shop/@@cart')
    >>> print browser.bycss('#quantity')
    --- 1 ---
    <input id="quantity" min="0" type="number" max="150" size="3" name="..." value="110" maxlength="3">
    &#160;&#215;&#160;
    --- 2 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="30" maxlength="3">
    &#160;&#215;&#160;

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">3,028.00 &#8364;</span>
    </section>

Edit Ärticle1 to use subarticle::

    >>> browser.open('/shop/article-container/article1/edit')
    >>> browser.getControl(name="form.widgets.use_subarticle:list").value = ['on']
    >>> browser.getControl(name="form.buttons.save").click()

Add to cart::

    >>> browser.getControl(name=uuid1).value = '10'
    >>> browser.getControl(name="form.buttons.AddToCart").click()

Go to cart::

    >>> browser.open('/shop/@@cart')
    >>> print browser.bycss('#quantity')
    --- 1 ---
    <input id="quantity" min="0" type="number" max="150" size="3" name="..." value="110" maxlength="3">
    &#160;&#215;&#160;
    --- 2 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="40" maxlength="3">
    &#160;&#215;&#160;

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">3,128.00 &#8364;</span>
    </section>

Go to Article11::

    >>> browser.open('/shop/article-container/article1/article11')
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 60 pcs
    </section>

Edit Ärticle1 not to use subarticle::

    >>> browser.open('/shop/article-container/article1/edit')
    >>> browser.getControl(name="form.widgets.use_subarticle:list").value = []
    >>> browser.getControl(name="form.buttons.save").click()

Edit Ärticle11 not to use subarticle::

    >>> browser.open('/shop/article-container/article1/article11/edit')
    >>> browser.getControl(name="form.widgets.use_subarticle:list").value = ['on']
    >>> browser.getControl(name="form.buttons.save").click()

Add Ärticle111 to Ärticle11::

    >>> browser.open('/shop/article-container/article1/article11/++add++collective.cart.core.Article')
    >>> browser.getControl(name="form.widgets.IDublinCore.title").value = 'Ärticle111'
    >>> browser.getControl(name="form.widgets.IDublinCore.description").value = 'Description of Ärticle111.'
    >>> browser.getControl(name="form.widgets.ISKU.sku").value = 'SKÖ111'
    >>> browser.getControl(name="form.widgets.IDiscount.price").value = '36.90'
    >>> browser.getControl(name="form.widgets.ISize.weight").value = '100.0'
    >>> browser.getControl(name="form.buttons.save").click()

    >>> article111 = article11['article111']
    >>> uuid111 = IUUID(article111)

Add Stock to Ärticle111::

    >>> browser.open('/shop/article-container/article1/article11/article111/++add++collective.cart.stock.Stock')
    >>> browser.getControl(name="form.widgets.IBasic.title").value = 'Stöck111'
    >>> browser.getControl(name="form.widgets.IBasic.description").value = 'Description of Stöck111'
    >>> browser.getControl(name="form.widgets.stock").value = '100'
    >>> browser.getControl( name="form.widgets.IStockPrice.price").value = '0.0'
    >>> browser.getControl(name="form.buttons.save").click()

Go to Article1::

    >>> browser.open('/shop/article-container/article1')

Add to cart::

    >>> browser.getControl(name=uuid11).value = '10'
    >>> browser.getControl(name="form.buttons.AddToCart").click()

Go to cart::

    >>> browser.open('/shop/@@cart')
    >>> print browser.bycss('#quantity')
    --- 1 ---
    <input id="quantity" min="0" type="number" max="150" size="3" name="..." value="110" maxlength="3">
    &#160;&#215;&#160;
    --- 2 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="40" maxlength="3">
    &#160;&#215;&#160;
    --- 3 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="10" maxlength="3">
    &#160;&#215;&#160;

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">3,497.00 &#8364;</span>
    </section>

Remove Article1::

    >>> browser.getControl(name="form.buttons.RemoveArticle", index=0).click()

    >>> print browser.bycss('#quantity')
    --- 1 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="40" maxlength="3">
    &#160;&#215;&#160;
    --- 2 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="10" maxlength="3">
    &#160;&#215;&#160;

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">769.00 &#8364;</span>
    </section>

Update Article111 over the stock::

    >>> browser.getControl(name=uuid111).value = '200'
    >>> browser.getControl(name="form.buttons.UpdateArticle", index=1).click()
    >>> print browser.bycss('.info')
    --- 1 ---
    ...
    --- 2 ---
    <dl class="portalMessage info"><dt>Info</dt>
    <dd>No more than 100 can be added to cart for &#196;rticle1 &#196;rticle11 &#196;rticle111</dd>
    </dl>

    >>> print browser.bycss('#quantity')
    --- 1 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="40" maxlength="3">
    &#160;&#215;&#160;
    --- 2 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="100" maxlength="3">
    &#160;&#215;&#160;

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">4,090.00 &#8364;</span>
    </section>

Update Article111 with minus quantity::

    >>> browser.getControl(name=uuid111).value = '-10'
    >>> browser.getControl(name="form.buttons.UpdateArticle", index=1).click()
    >>> print browser.bycss('.warn')
    --- 1 ---
    <dl class="portalMessage warn"><dt>Warn</dt>
    <dd>Invalid quantity.</dd>
    </dl>

Update Article111 with appropriate quantity::

    >>> browser.getControl(name=uuid111).value = '20'
    >>> browser.getControl(name="form.buttons.UpdateArticle", index=1).click()

    >>> print browser.bycss('#quantity')
    --- 1 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="40" maxlength="3">
    &#160;&#215;&#160;
    --- 2 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="20" maxlength="3">
    &#160;&#215;&#160;

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">1,138.00 &#8364;</span>
    </section>

Go to Article111::

    >>> browser.open('/shop/article-container/article1/article11/article111')
    >>> print browser.bycss('#stock')
    --- 1 ---
    <section id="stock">
    Stock: 80 pcs
    </section>

Go to cart::

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

Update Article111 to zero should remove the article::

    >>> browser.getControl(name=uuid111).value = '0'
    >>> browser.getControl(name="form.buttons.UpdateArticle", index=1).click()

    >>> print browser.bycss('#quantity')
    --- 1 ---
    <input id="quantity" min="0" type="number" max="100" size="3" name="..." value="40" maxlength="3">
    &#160;&#215;&#160;

    >>> print browser.bycss('#cart-articles-total')
    --- 1 ---
    <section id="cart-articles-total"><span>Total</span>&#160;&#160;
    <span id="total">400.00 &#8364;</span>
    </section>

Add Article111 to cart::

    >>> browser.open('/shop/article-container/article1/article11/article111')
    >>> browser.getControl(name=uuid111).value = '10'
    >>> browser.getControl(name="form.buttons.AddToCart").click()

Go to cart and clear::

    >>> browser.open('/shop/@@cart')
    >>> browser.getControl(name="form.buttons.ClearCart").click()
    >>> print browser.bycss('#cart-is-empty')
    --- 1 ---
    <p id="cart-is-empty">
    Cart is empty.
    </p>
