Page MenuHomePhabricator

Exploratory testing when users with multiple devices use synced reading lists
Closed, ResolvedPublic

Description

This is an expansion of the Android task: https://phabricator.wikimedia.org/T177309

These scenarios have or should be broken out into the linked subtasks. Please use the linked tasks for acceptance rather than the scenarios below.

Doc: https://docs.google.com/document/d/1y_Puv-PSjgwnt36gvuGkwvWHMEtrMJAxke26I6CZqH8/edit?usp=sharing

Conduct exploratory testing to sync behavior is as expected when users with multiple devices, lists, and logins use the synchronized reading list service. Some initial cases outlined below.

Scenario A: User with multiple devices

On device #1, login to the Wikipedia app with reading lists "Alpha" and "Beta" saved
Enable syncing on device #1
Open the Wikipedia app on device #2 and log in
Syncing is automatically enabled on device #2
Return to device #1, and make changes to the reading lists while logged in (eg., add some articles, delete others, add a new list, delete another list)

Expected behavior:
On steps 4 and 5 - device #2 should sync and show the same reading lists as device #1

Scenario B: User logged in with different lists on multiple devices

Prerequisite: User is logged in on both devices (with sync not yet active on their account), with different lists

On device #1, login to the Wikipedia app with reading lists "Alpha" and "Beta" saved
Enable syncing on device #1
Open device #2, which has the reading list "Gamma" saved
On device #2, login to the same account that is active on device #1
Syncing is automatically enabled on device #2

Expected behavior:
Device #1 and #2 should sync and merge reading lists so that both contain lists Alpha, Beta and Gamma

Scenario C: User with same list name containing different list content on different devices

Prerequisite: User has two devices, each device contains a list with the same name, but articles within each list is different (and sync is not yet active on their account)

On device #1, login to the Wikipedia app with the reading list "My reading list", containing the 3 articles Apple, Banana, and Carrot.
Enable syncing on device #1
Open device #2 which also has a reading list called "My reading list", but this list contains the articles 3 Deer, Elk, and Fox.
On device #2, login to the same account that is active on device #1
Syncing is automatically enabled on device #2

Expected behavior:
Device #1 and #2 should sync so that the reading list with the same name "My reading list" on both devices will now be comprised of all 6 articles (Apple, Banana, Carrot, Deer, Elk, Fox)

Scenario D: User with one device deletes the app

Login to Wikipedia app and enable syncing with reading list “Alpha” saved.
Delete the Wikipedia app.
Re-install the Wikipedia app and login.

Expected behavior:
Reading list “Alpha” should appear in app after re-downloading and logging-in to Wikipedia.

Scenario E : User with multiple devices deletes the app on one device

Prerequisite: User is logged in to two devices with sync active on their account.

On device#1 , login to Wikipedia app and enable syncing with reading list “Alpha” saved.
On device #1 , delete the Wikipedia app.
On device #1, choose to delete saved articles from the device.
On device #2, Create a new reading list “Beta”.
On device #1, re-install the Wikipedia app and login.

Expected behavior:
Reading lists “Alpha” and “Beta” should appear on device #1 after re-downloading and logging-in to Wikipedia.

Scenario F: User with one device turns syncing off

Prerequisite: User is logged in with sync active on their account.

Create the reading list “Aardvark”
Turn syncing off and choose to keep reading lists stored locally.
Delete the Wikipedia app.
Re-install the Wikipedia app, login to account and turn syncing back on.

Expected behavior:
No reading lists or saved articles are available on the device as turning syncing off removes any reading list data from user preferences and deleting the app removes reading lists from the user’s device.

Scenario G: User with multiple devices turns syncing off

Prerequisite: User is logged in to two devices with syncing active on their account

On device #1, create the reading list “Aardvark”
On device #1, turn off syncing and choose to keep reading lists stored locally
Open device #2, message is shown, alerting that syncing has been turned off on active account, choose to keep reading lists stored locally.
On device #2, create the reading list “Bear”

Expected behavior:
Device #1 has one reading list called “Aardvark.” Device #2 has two reading lists, one called “Aardvark” and a second called “Bear.”

Scenario H: User with multiple devices turns syncing back on after they had previously turned it off

Prerequisite: User is logged in to two devices with syncing active on their account

Scenario 1: User creates new reading lists
On both devices sync is active and the user has two reading lists “Apple” and “Banana.”
On device #1, turn syncing off and choose to keep reading lists stored locally.
On device #1, create the reading list “Clementine.”
On device #2, message is shown alerting that syncing has been turned off on active account,choose to keep reading lists stored locally.
On device #2, create the reading list “Dragon Fruit.”
On device #2, turn syncing back on.

Expected behavior:
Both devices now have four reading lists “Apple,” “Banana.” “Clementine,” and “Dragon Fruit.”

Scenario 2: User deletes reading lists
On both devices sync is active and the user has two reading lists “Apple” and “Banana.”
On device #1, turn syncing off and delete all saved articles and lists.
On device #2, message is shown, alerting that syncing has been turned off on active account, delete all saved articles and lists.
On device #2, create the reading list “Clementine.”
On device #2, turn syncing back on.

Expected behavior:
Both devices now have one reading list called “Clementine.”

Scenario I: User logs out of one account and into another

Prerequisite: User is logged into a device with syncing active on their account, user is logged into a second device with syncing active on that account as well.

Scenario 1: User deletes local reading lists
Create two reading lists “Asparagus” and “Broccoli.”
Logout of account #1.
Two reading lists “Asparagus” and “Broccoli,” are still visible on the device
Login to account #2, which has the list “Carrot.”
Message is shown, alerting that there are reading lists stored on the device.
Choose to delete reading lists stored on device.

Expected behavior:
Two reading lists “Asparagus” and “Broccoli” are associated with account #1. One reading list “Carrot” is associated with account #2, and only this reading list is visible on the device.

Scenario 2: User merges local reading lists
Create two reading lists “Asparagus” and “Broccoli.”
Logout of account #1.
Two reading lists “Asparagus” and “Broccoli,” are still visible on the device
Login to account #2, which has the list “Carrot.”
Message is shown, alerting that there are reading lists stored on the device.
Choose to keep local reading lists.

Expected behavior:
Two reading lists are associated with account #1, “Asparagus” and “Broccoli”. Three reading lists are associated with account #2 and are also visible on the device, “Asparagus,” “Broccoli” and “Carrot.”

Scenario J: User deletes all of their saved articles and lists

Prerequisite: User is logged into two devices with syncing turned on on their account.

On device #1, create the reading lists “Alpaca” and “Badger.”
Open device #2, the reading lists “Alpaca” and “Badger” should have synced to device #2.
On device #1, log out.
On device #2, delete all reading lists.
On device #1, log in.

Expected behavior:
No reading lists are associated with the account and there are no reading lists on either device.

Scenario K: User is out of space on their device

Prerequisite: User has no more space available on their device to save an article offline.

Scenario 1: Android
On device with no storage space available, save the article “Red panda” to the reading list “Animals”
Message is shown, alerting that there is no space available to save this article offline.

Expected behavior:
Article is saved to chosen reading list but not saved for offline availability.

Scenario 2: iOS
On device with no storage space available, save the article “Red panda” to the reading list “Animals”
Message is shown, alerting that there is no space available to save this article offline.

Expected behavior:
Article is not saved.

Scenario 3: Saved on an Android device with no space and syncing with an iOS device that has space
On Android device with no storage space available, save the article “Red panda” to the reading list “Animals”
On Android device, a message is shown alerting that there is no space available to save this article offline.
On the iOS device, open the Wikipedia app.

Expected behavior:
“Red panda” has synced on the iOS device.

Scenario 4: Saved on an iOS device with no space and syncing with an Android device that has space
On the iOS device with no storage space available, ave the article “Red panda” to the reading list “Animals”
On the iOS device, a message is shown, alerting that there is no space available to save this article offline.
On the Android device, open the Wikipedia app.

Expected behavior:
“Red panda” has not synced on the Android device.

Scenario L: Syncing is interrupted

Prerequisite: User is logged into two devices with syncing turned on on their account.

On device #1, create the reading list “Apricot” and add 10 articles to this list.
Open device #2 on a slow connection.
On device #2, a message is shown alerting that syncing is slowed due to network connection issues.

Expected behavior:
Reading lists and articles will eventually sync to device #2 when there is enough connectivity.

Event Timeline

cmadeo updated the task description. (Show Details)
cmadeo added subscribers: RHo, JMinor.

@JMinor let me know if you want me to post these on Meta.
@RHo, would you mind looking over these and the Android specific cases to make sure that these scenarios are correct? Thanks!

cmadeo updated the task description. (Show Details)
JMinor claimed this task.
JMinor awarded a token.