kotti_site_gallery browser tests
================================

Setup
-----

  >>> from kotti import testing, DBSession
  >>> from kotti.resources import Node, Document, File
  >>> import pytest
  >>> try:
  ...   import Image
  ... except ImportError:
  ...   from PIL import Image
  
Get a handle for some useful objects:

  >>> settings = {'kotti.configurators': 'kotti_site_gallery.kotti_configure' }
  >>> tools = testing.setUpFunctional(**settings)
  >>> browser = tools['Browser']()
  >>> ctrl = browser.getControl
  >>> session = DBSession()
  >>> root = session.query(Node).get(1)

Open the frontpage and login:

  >>> browser.open(testing.BASE_URL)
  >>> browser.open(testing.BASE_URL + '/edit')
  >>> ctrl("Username or email").value = "admin"
  >>> ctrl("Password").value = "secret"
  >>> ctrl(name="submit").click()

Add a site gallery
------------------

  >>> browser.getLink("Add").click()
  >>> browser.getLink("Site gallery").click()
  >>> "Add Site gallery to <em>Welcome to Kotti</em>" in browser.contents
  True
  >>> ctrl("Title").value = "Cool sites!!"
  >>> ctrl("save").click()
  >>> "Successfully added item" in browser.contents
  True
  >>> browser.url == testing.BASE_URL + '/cool-sites/'
  True

Edit a site gallery
-------------------

  >>> "Cool sites!!" in browser.contents
  True
  >>> browser.getLink("Edit").click()
  >>> "Edit <em>Cool sites!!</em>" in browser.contents
  True
  >>> ctrl("Title").value = "Boring sites."
  >>> ctrl("save").click()
  >>> "Your changes have been saved." in browser.contents
  True
  >>> browser.url == testing.BASE_URL + '/cool-sites/'
  True
  >>> "Boring sites." in browser.contents
  True


Add a site
----------

  >>> browser.getLink("Add").click()
  >>> browser.getLink("Site").click()
  >>> "Add Site to <em>Boring sites.</em>" in browser.contents
  True
  >>> ctrl("Title").value = "Site number one"
  >>> ctrl("URL").value = "http://www.example.com"
  >>> ctrl("Body").value = "Nice, nicer, this site."
  >>> ctrl("save").click()
  >>> "Successfully added item" in browser.contents
  True
  >>> browser.url == testing.BASE_URL + '/cool-sites/site-number-one/'
  True
  >>> "example.com" in browser.contents
  True
  >>> "nicer" in browser.contents
  True
  >>> "Site number one" in browser.contents
  True
  >>> browser.getLink("Boring sites.").click()
  >>> "Site number one" in browser.contents
  True


Edit a site gallery
-------------------

  >>> browser.getLink("Site number one").click()
  >>> browser.getLink("Edit").click()
  >>> "Edit <em>Site number one</em>" in browser.contents
  True
  >>> ctrl("save").click()
  >>> "Your changes have been saved." in browser.contents
  True


Add a site picture
------------------

  >>> browser.getLink("Boring sites.").click()
  >>> browser.getLink("Site number one").click()
  >>> browser.getLink("Add").click()
  >>> browser.getLink("Image").click()
  >>> "Add Image to <em>Site number one</em>" in browser.contents
  True
  >>> ctrl("Title").value = "A nice picture"
  >>> simple_png = '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00(\x00\x00\x00\x1e\x08\x02\x00\x00\x00\xd1\xbf\xcb\x8a\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00NIDATH\xc7\xed\x97A\n\x00 \x08\x04\xdd\xe8\xff_\xb6[\x04y\x8aB\xa1\x99\x9b \x0c\xeae\x95\xbb[\x06\xcd\x92\xe8k!i\xefx\xb4\x92\xb4\x89\x11#F\x8c\x181b\xc4\xc5\x12HH\x18K\x8e\x99y\x86\x1b\x17\xba1)\xf3\x12\xfa\xee\x85I\x13\x0f\xaed\x0f8\xc0)\x84\x11\x00\x00\x00\x00IEND\xaeB`\x82'
  >>> import cStringIO
  >>> ctrl("File").add_file(cStringIO.StringIO(simple_png), 'text/plain', 'simple.png')
  >>> ctrl("save").click()
  >>> "Successfully added item" in browser.contents
  True
  >>> picture_url = testing.BASE_URL + '/cool-sites/site-number-one/a-nice-picture/'
  >>> browser.url == picture_url
  True
