Calendar:QA/Automation Phase 2

From MozillaWiki
Jump to: navigation, search

Ideas in no particular order

  • blocked - fakeserver not quite ready yet, will document approach --iMIP/iTIP automation testing
    • add received event to calendar
  • calendar type testing (writing to a local ICS calendar for example)
  • timezone testing
  • drag and drop interaction with calendar
    • drag to next day in all views
    • drag a repeating event (that should only move occurrence, right?)
    • drag event start and end time in day view
    • drag all-day event
  • UTF-8 input across all calendar fields (might be affected by bug 506760)
  • unit tests for the calendar XBL views
  • recursion testing (below)
  • the rotated view, workday only and tasks in view
  • event dialog: make sure that changing nothing doesn't cause the "do you want to save changes" dialog to come. it should also be checked if modifying a value, then reinserting the old value doesn't cause any dialogs, esp. the description field with newlines
  • recurring events, exceptions
    • repeat until
    • repeat n times

More specific ideas

Recursion testing

Let's combine some of the above into a decent set of tests for recursion testing. Some of these test bits might be good to have as shared modules so that you can reuse them when doing timezone testing and other recursion testing later.

Daily recursion

  • Create an event that recurs once a day verify that it happens once a day (in each view - test a subset of the view for month and multiweek unless it's possible to loop over all the event boxes).
  • Create an exception on saturday by deleting an event instance on a saturday, verify that the event box is no longer drawn on that saturday (in each view)
  • Edit the event to be "weekday" only and ensure that neither saturday nor sunday event boxes are shown (in any view).

Weekly recursion

  • Create an event that recurs M, W, F.
  • Move the first event to Tues.
  • Edit event so that it now recurs on M, Tues, W, F
  • Verify that you have only two events on the first recurring Tuesday (one from the move, and one from the normal recurrence). There should be NO event on the first Monday in question here. And there should be NO events on Thurs, Sat, or Sun.

Weekly recursion II

  • Create an event that recurs M, W, F to a specific date
  • Ensure no events are beyond the end date (on any month)

Weekly recursion III

  • Create an event that begins on the last day of the month on a month with 31 days. Make it bi-weekly recursion.
  • Ensure that the event happens correctly and the event box is displayed onthe proper day every two weeks.

Weekly recursion IV

  • event that starts on Monday, recurs 4 times on Tues, Wed, Thurs, and Sat
  • (we are interested that it happens on mon, tues, wed, thurs and NOT on sat).

Monthly recursion

  • Create an event that recurs on the "last day of the month" ensure it is always displayed particularly in Feb.

Monthly recursion II

Blocked - bug 511193#c15

  • Create an event that recurs on the 5th saturday of each month. Ensure the little boxes below onthe custom recursion page are bolded in the proper places where the event will recur
  • Make sure the event falls on the proper days.

Monthly recursion III

Blocked - bug 514944

  • Have an event recur on several days of a month: 1, 12, 29, 31. Ensure the events are displayed properly on each view.

Monthly recursion IV

Blocked - bug 514944

  • Have an event recur on several days of a month like above in III, but only n times.

Monthly recursion V

Blocked - bug 514944

  • Have an event recur on several days of a month like above in III but only until a specific date - pick a date right between the set of dates that it recurs on. So, if it recurs on 1, 12, 29, 31 pick the 20th to stop the recursion.

annual recursion

  • Ensure a birthday gets displayed properly, even if you set it so that it recurs yearly since Jan 1, 1950 for instance. (testing times before EPOC).

Drag and Drop

Blocked - bug 515776 I have no idea how feasible this stuff is. You may find yourself filing a lot of mozmill bugs

  • Create an event on a given day then do the following:
    • drag to next day in all views
    • drag event start and end time in day view and week view
    • drag event start time to day before event
    • drag event start time to day after event
    • drag event end time to day before event
    • drag event end time to day after event
  • Create an all-day event
    • drag all-day event
  • Create a repeating event that repeats a given number of days
    • Drag its start day to a new day
    • Drag its end event to a new day
    • Drag its start day to a new week
    • Drag its end event to a new week
    • Drag its start day to a new month
    • Drag its end event to a new month
  • Create an all day event that repeats a given number of days and:
    • Drag its start day to a new day
    • Drag its end event to a new day
    • Drag its start day to a new week
    • Drag its end event to a new week
    • Drag its start day to a new month
    • Drag its end event to a new month

Rotated Views

  • Run the drag and drop tests in rotated view mode
  • Run the recursion tests in rotated view mode

Time zone test

done, in review

  • Trying to ascertain our current timezone is correct would involve us duplicating the code that we are using to check the timezone in the first place. I think that this one will just have to remain a manual test for now - CT. Verify that you start up in the proper user timezone for your machine.
  • Create weekly recurring events that occur in:

(I'm doing the offsets from memory, please validate) this site is useful for this

    • America/St. Johns (-3:30, DST)
    • America/Caracas (-3:30, started 2007, I think, no DST)
    • America/Arizona (-5, but no DST)
    • America/Los_Angeles (-7, DST)
    • America/Buenos_Aires (-3, no DST)
    • Europe/Paris (+1, DST)
    • Asia/Kathmandu (+5:45, no DST)
    • Australia/Adelaide (+9:30, DST - southern)

Next: For each timezone above:

  • change to that timezone (do we still have to restart for this to take effect)?
  • Test one occurrence of each timezone's event in January to ensure they are ocurring on the proper date/time
  • Test one occurrence of each timezone on each week through March to April to ensure that the time zone is calculated properly.
  • Test one occurrence of each timezone's event in July to ensure that they occur at the correct date/time
  • Test the occurrence in each week october-november to ensure that each occurrence is happening on the right day and time.
  • goto the next timezone and start over.