kotti_calendar browser tests
============================

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

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

  >>> browser.open(testing.BASE_URL + '/edit')
  >>> "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 calendar
--------------

  >>> browser.getLink("Add").click()
  >>> browser.getLink("Calendar").click()
  >>> ctrl("Title").value = "My Calendar"
  >>> ctrl("save").click()
  >>> "Successfully added item" in browser.contents
  True
  >>> browser.url == testing.BASE_URL + '/my-calendar/'
  True

Add events
----------

  >>> browser.open(testing.BASE_URL + '/my-calendar/')
  >>> browser.getLink("Add").click()
  >>> browser.getLink("Event").click()

  >>> ctrl("Title").value = "Meet with Frank"
  >>> ctrl("Description").value = "Discuss the latest"
  >>> ctrl("Start").value = "2010-12-13 12:00:00"
  >>> ctrl("End").value = "2010-12-13 13:00:00"
  >>> ctrl("save").click()
  >>> "Successfully added item" in browser.contents
  True

  >>> browser.open(testing.BASE_URL + '/my-calendar/')
  >>> browser.getLink("Add").click()
  >>> browser.getLink("Event").click()

  >>> ctrl("Title").value = "Day off"
  >>> ctrl("Start").value = "2010-11-12 00:00:00"
  >>> ctrl("All day").click()
  >>> ctrl("save").click()
  >>> "Successfully added item" in browser.contents
  True

View calendar and event
-----------------------

  >>> browser.open(testing.BASE_URL + '/my-calendar/')
  >>> pos = browser.contents.index
  >>> pos("Meet with Frank") < pos("Day off") 
  True
  >>> "Dec 13, 2010 1:00:00 PM" in browser.contents
  True
  >>> "Nov 12, 2010" in browser.contents
  True
  >>> browser.getLink("Day off").click()
  >>> "Nov 12, 2010" in browser.contents
  True


Edit calendar and events
------------------------
  >>> browser.open(testing.BASE_URL + '/my-calendar/edit')
  >>> ctrl("Title").value = "My personal Calendar"
  >>> ctrl("save").click()
  >>> "My personal Calendar" in browser.contents
  True

  >>> browser.open(testing.BASE_URL + '/my-calendar/day-off/edit')
  >>> ctrl("Description").value = "all day long"
  >>> ctrl("save").click()
  >>> "all day long" in browser.contents
  True

Private events should not be shown in the calendar
--------------------------------------------------

  >>> browser.open(testing.BASE_URL + '/my-calendar/')
  >>> browser.getLink("Make Public").click()
  >>> browser_anonymous = tools['Browser']()
  >>> browser_anonymous.open(testing.BASE_URL + '/my-calendar/')
  >>> "Dec 13, 2010 1:00:00 PM" in browser_anonymous.contents
  False
  >>> "Nov 12, 2010" in browser_anonymous.contents
  False

  >>> browser.open(testing.BASE_URL + '/my-calendar/day-off')
  >>> browser.getLink("Make Public").click()
  >>> browser_anonymous.open(testing.BASE_URL + '/my-calendar/')
  >>> "Dec 13, 2010 1:00:00 PM" in browser_anonymous.contents
  False
  >>> "Nov 12, 2010" in browser_anonymous.contents
  True
