kotti_blog browser tests
========================

Setup and Login
---------------

  >>> from kotti import tests
  >>> tools = tests.setUpFunctional(
  ...     **{'kotti.configurators': 'kotti_blog.kotti_configure'})
  >>> browser = tools['Browser']()
  >>> ctrl = browser.getControl

  >>> browser.open(tests.BASE_URL + '/@@login')
  >>> "Log in" in browser.contents
  True
  >>> ctrl("Username or email").value = "admin"
  >>> ctrl("Password").value = "secret"
  >>> ctrl(name="submit").click()
  >>> "Welcome, Administrator" in browser.contents
  True

Add a blog
----------

  >>> browser.open(tests.BASE_URL + '/@@add_blog')
  >>> ctrl("Title").value = "New Blog"
  >>> ctrl("Body").value = "This is the new blog"
  >>> ctrl("save").click()
  >>> "Successfully added item" in browser.contents
  True
  >>> browser.url == tests.BASE_URL + '/new-blog/'
  True


Add blogentries
---------------

  >>> browser.open(tests.BASE_URL + '/new-blog/@@add_blogentry')
  >>> ctrl("Title").value = "First blog entry"
  >>> ctrl("Body").value = "And I like to say..."
  >>> ctrl("Date").value = "2012-07-31 05:00:00"
  >>> ctrl("save").click()
  >>> "Successfully added item" in browser.contents
  True

  >>> browser.open(tests.BASE_URL + '/new-blog/@@add_blogentry')
  >>> ctrl("Title").value = "Second blog entry"
  >>> ctrl("Body").value = "rumoring around a bit"
  >>> ctrl("Date").value = "2012-07-31 06:00:00"
  >>> ctrl("save").click()
  >>> "Successfully added item" in browser.contents
  True


View blog and blog entry
------------------------

  >>> browser.open(tests.BASE_URL + '/new-blog/')
  >>> "First blog entry" in browser.contents
  True
  >>> "31.07.2012" in browser.contents
  True
  >>> "And I like to say..." in browser.contents
  True
  >>> pos = browser.contents.index
  >>> pos("Second blog entry") < pos("First blog entry")
  True
  >>> browser.getLink("Second blog entry").click()
  >>> "rumoring around a bit" in browser.contents
  True


Edit blog and blog entry and verify the changes
-----------------------------------------------

  >>> browser.open(tests.BASE_URL + '/new-blog/@@edit')
  >>> ctrl("Title").value = "This is the Blog"
  >>> ctrl("Body").value = "Hello, I am a blog"
  >>> ctrl("save").click()

  >>> browser.open(tests.BASE_URL + '/new-blog/first-blog-entry/@@edit')
  >>> ctrl("Title").value = "I was the first blog entry"
  >>> ctrl("save").click()

  >>> browser.open(tests.BASE_URL + '/new-blog/')
  >>> "Hello, I am a blog" in browser.contents
  True
  >>> "First blog entry" in browser.contents
  False
  >>> "I was the first blog entry" in browser.contents
  True
  >>> "And I like to say..." in browser.contents
  True


Private blog entries should not be shown in the blog overview
-------------------------------------------------------------

  >>> browser.open(tests.BASE_URL + '/new-blog/')
  >>> browser.getLink("Make Public").click()
  >>> browser_anonymous = tools['Browser']()
  >>> browser_anonymous.open(tests.BASE_URL + '/new-blog/')
  >>> "Hello, I am a blog" in browser_anonymous.contents
  True
  >>> "I was the first blog entry" in browser_anonymous.contents
  False
  >>> "Second blog entry" in browser_anonymous.contents
  False

  >>> browser.open(tests.BASE_URL + '/new-blog/first-blog-entry')
  >>> browser.getLink("Make Public").click()
  >>> "I was the first blog entry" in browser_anonymous.contents
  True
  >>> "Second blog entry" in browser_anonymous.contents
  False

