Sharing Tests
Verifying the new view-merging based background sync code
First, you need to be running the code from the 'bgsync' branch -- it's quite different from what's in the trunk. It's now all checked in to the trunk.
Scenarios to exercise:
- Publish a collection - The publishing dialog should work as before, except that it is now non-modal (modeless?). In other words, you can continue to work on other things while the publish is happening (including publishing other collections).
- Subscribe to a collection - Again, this dialog should also work as before but is now non-modal. You can subscribe to multiple collections at once.
- as mine - Uncheck the "Keep out of My items" box
- as not mine - Leave the "Keep out of My items" box checked
- Scheduled background sync - Every thirty minutes (not yet configurable), all shared collections will be synchronized. While syncing is happening, the status bar will indicate which collection is being synced. Remote changes will automatically be applied locally (with remote changes winning). Only committed changes will be published to the server, so if you have made some local changes but have not committed them (via the 'Test | Repository | Commit' menu or some other UI operation that happens to commit), they won't go to the server.
- Manually-initiated background sync - Clicking the Sync All toolbar icon will initiate a background sync. If a background sync is already running, this queues up another one to execute immediately after the currently running one.
- Event creation - Create an event in client A, sync A, then sync B. B should now have that event.
- Event change - Make a change to that event in A, sync A, then sync B. B should now have that change.
- Non-overlapping changes - Change the title of the event on A, change the start time of the event on B. Sync A, sync B, then sync A. Both changes should now exist in both places.
- Overlapping changes - Change the title of the event on A and on B. Sync A, sync B, then sync A. A's change should overwrite B's. Verify B's change is not on A.
- Removal - Remove the item on A. Sync A then sync B. The item should be removed from the collection on B as well now.
- Adding recurrence - Create an event on A. Sync A then B. Make the event recurring on A. Sync A then B. The item should be recurring on B now.
- Changing recurrence - Change the start time of one of the occurrences on A. Sync A then B. B should now reflect the change
- Deleting recurring instances - Delete one or more occurrences of a recurring event on A. Sync A then B. Check deleted occurrences are gone on B. Bug:6014
- Copy URLs - Use the Collection | Copy URLs menu item to verify you get two URLs if you're the publisher, but one URL if your the subscriber.
- Restore share - Delete a shared collection and then use menu collection > restore published shares to bring it back.
Not ready to exercise:
- Stamping - This is not implemented yet in the view merging code