Create set of integration tests that sync with real calendars.

NEW
Unassigned

Status

Firefox OS
Gaia::Calendar
5 years ago
4 years ago

People

(Reporter: lightsofapollo, Unassigned, Mentored)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [LOE:S])

(Reporter)

Description

5 years ago
Currently we have a large set of unit tests for ical.js / caldav / gaia ui.

Aside from the very small set of sanity checks we have for caldav we don't have automated tests that hit real servers. We should have a small set of tests for verifying a basic set of operations work given a configurable list of servers.

Off the top of my head I can think of a few:

- verify "initial" sync works (setting up an account list of calendars is there)
- verify basic non-recurring event
- verify create an event from the ui
- verify delete an event from the ui
- verify sync event changes from the server
- verify simple daily recurring event
- verify exception on recurring events
- verify exclusion of recurring event (single event is skipped in series)
- verify timezone calculations

----

These tests will be significantly slower and harder to put into CI since we need credentials but it will be fairly easy to set this up manually for now.

We will use the caldav.js lib (which can add/remove events) to simulate server changes and then sync.

These tests will directly test the calendar UI and can serve as the highest level of testing (smoketest).
(Reporter)

Updated

5 years ago
Whiteboard: [mentor=jlal@mozilla.com][LOE:S]
I've got a full list of MozTrap test cases finalized that we could use to build off of this list. Let me take a look at what we can consider automating in addition to what's stated above.
Oh and another thing - in experimenting with the gaia ui automation with python, the swipe gesture won't be supported for a while, so likely the option I experimented with in python won't be able to give us much support for the automation we need in the immediate short term (only a small subset of test cases we'll be able to do).

I'd likely start by drilling at expanding the API-style tests first (easiest to automate), especially at the parser level. That'll iron curtain the important pieces (there can be UI bugs, but I'd rather stick more extensive automation at the API level first to knock out the obvious bugs).

Can you point me at such examples of the automation you've written? I can probably throw out a couple of patches to build that test list bigger.
(Reporter)

Comment 3

5 years ago
Hey Jason,

Here are the current tests:

https://github.com/lightsofapollo/gaia/tree/master/apps/calendar/test/integration

As for swipe I am fairly sure we can use the Synthetic Gesture library for that I will add an example soon. 

I would prefer to do these in JS integration tests. The major reason being we can use all the tools calendar itself uses from xpcshell to create/remove/modify events without interacting with the ui (for sync tests). There might be another library that does that in python but I can support the JS tools much better and have built out pieces of them already in the caldav lib.

As for parser tests there is a fairly extensive list of unit tests in the ical library (https://github.com/kewisch/ical.js/tree/master/test/mocha).
(Assignee)

Updated

4 years ago
Mentor: jlal@mozilla.com
Whiteboard: [mentor=jlal@mozilla.com][LOE:S] → [LOE:S]
You need to log in before you can comment on or make changes to this bug.