QA/Push Notifications: Difference between revisions
(formatting) |
(now 110% more awesome) |
||
Line 1: | Line 1: | ||
= Test Plan (Overview) = | = Test Plan (Overview) = | ||
'''SUMMARY''' | '''SUMMARY''' | ||
* The purpose of this wiki is to serve as a general testplan for verifying desktop Push notifications. | * The purpose of this wiki is to serve as a general testplan for verifying desktop Push notifications. | ||
'''OWNERSHIP''' | '''OWNERSHIP''' | ||
Line 11: | Line 10: | ||
* Automated E2E smoke tests will be created by the Cloud Services QA Team | * Automated E2E smoke tests will be created by the Cloud Services QA Team | ||
* Any further feature automation is TBD (by Firefox Quality Engineering Team) | * Any further feature automation is TBD (by Firefox Quality Engineering Team) | ||
'''TEST RESULTS''' | '''TEST RESULTS''' | ||
* Test results will be posted in Bugzilla (component: TBD). | |||
'''SIGNOFF CRITERIA''' | '''SIGNOFF CRITERIA''' | ||
Cloud Services QA team will verify that: | Cloud Services QA team will verify that: | ||
* Desktop push notifications are working properly in FF Nightly. | * Desktop push notifications are working properly in FF Nightly. | ||
* Interaction between | * Interaction between push-service (autopush[3]), ServiceWorkers[1], and desktop UI is working as expected. | ||
'''Testplan (Overview)''' | '''Testplan (Overview)''' | ||
'''REFERENCE''' | '''REFERENCE''' | ||
* http://www.w3.org/TR/service-workers/ | * [1] http://www.w3.org/TR/service-workers/ | ||
* http://www.w3.org/TR/push-api/ | * [2] http://www.w3.org/TR/push-api/ | ||
* [3] autopush: https://github.com/mozilla-services/autopush/ | |||
* [4] push-service: https://github.com/mozilla-services/push-service | |||
= Test Cases = | = Test Cases = | ||
== NOTIFICATIONS API == | == NOTIFICATIONS API == | ||
=== Common === | |||
'''setup()''' | '''setup()''' | ||
Line 43: | Line 47: | ||
=== Tests === | === Tests === | ||
'''Verify the doorhanger reports if the site has requested any notification permissions''' | '''Name:''' Doorhanger default state test<br/> | ||
'''Description:''' Verify the doorhanger reports if the site has requested any notification permissions.<br/> | |||
'''Steps:'''<br/> | |||
# Click the lock icon in the address bar. | # Click the lock icon in the address bar. | ||
# Verify the permissisons section says "You have not granted this site any special permissions." | # Verify the permissisons section says "You have not granted this site any special permissions." | ||
<hr/> | |||
'''Verify that trying to display a notification causes a dialog to appear.''' | '''Verify that trying to display a notification causes a dialog to appear.''' | ||
Line 265: | Line 272: | ||
== PUSH API == | == PUSH API == | ||
=== Common === | |||
'''setup()''' | '''setup()''' | ||
Line 278: | Line 287: | ||
# <code>setup()</code> | # <code>setup()</code> | ||
# Verify HTML output is: | # Verify HTML output is: | ||
registering service worker | |||
registered service worker. scope: https://pdehaan.github.io/push-notification-test/ | |||
# Click "Check Service Worker" button. | # Click "Check Service Worker" button. | ||
# Verify HTML output is: | # Verify HTML output is: | ||
checking service worker | checking service worker | ||
Service worker active | Service worker active | ||
# Open about:serviceworkers | # Open about:serviceworkers | ||
# Verify service worker is registered to https://pdehaan.github.io/ origin. | # Verify service worker is registered to https://pdehaan.github.io/ origin. | ||
Line 306: | Line 311: | ||
# Verify "messageChannel.port1.onmessage: SW echo: 999" output on page. | # Verify "messageChannel.port1.onmessage: SW echo: 999" output on page. | ||
# <code>teardown()</code> | # <code>teardown()</code> | ||
= CONTACTS = | |||
* pdehaan@mozilla | |||
* rpappalardo@mozilla | |||
* ryanvm@mozilla |
Revision as of 21:29, 16 October 2015
Test Plan (Overview)
SUMMARY
- The purpose of this wiki is to serve as a general testplan for verifying desktop Push notifications.
OWNERSHIP
- Manual tests will be defined / outlined and executed by the Cloud Services QA Team
- Manual testing will be handed off to Firefox Quality Engineering Team
- Automated E2E smoke tests will be created by the Cloud Services QA Team
- Any further feature automation is TBD (by Firefox Quality Engineering Team)
TEST RESULTS
- Test results will be posted in Bugzilla (component: TBD).
SIGNOFF CRITERIA
Cloud Services QA team will verify that:
- Desktop push notifications are working properly in FF Nightly.
- Interaction between push-service (autopush[3]), ServiceWorkers[1], and desktop UI is working as expected.
Testplan (Overview)
REFERENCE
- [1] http://www.w3.org/TR/service-workers/
- [2] http://www.w3.org/TR/push-api/
- [3] autopush: https://github.com/mozilla-services/autopush/
- [4] push-service: https://github.com/mozilla-services/push-service
Test Cases
NOTIFICATIONS API
Common
setup()
- Open https://pdehaan.github.io/push-notification-test/
- Click pop Notification button.
teardown()
- Click on lock icon in the address bar.
- Set Show Notifications permission to "Always Ask".
Tests
Name: Doorhanger default state test
Description: Verify the doorhanger reports if the site has requested any notification permissions.
Steps:
- Click the lock icon in the address bar.
- Verify the permissisons section says "You have not granted this site any special permissions."
Verify that trying to display a notification causes a dialog to appear.
setup()
- Click the "close" button in the upper right corner of the notifications doorhanger.
- Click "pop Notification" button.
- Verify the notification doorhanger appears again and requests permissions.
Verify clicking outside of a notification dismisses it automatically (OS X only).
setup()
- Click outside of the notifications doorhanger.
- Verify the notifications doorhanger is dismissed.
Verify clicking on the "Learn more" link opens the target page.
setup()
- Click the "Learn more..." link in the notifications doorhanger.
- Verify the browser redirects to https://www.mozilla.org/en-US/firefox/push/ (in a new tab).
Verify that a notification is auto-closed after X seconds.
setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Verify the notification appears and auto-dismisses after X seconds.
teardown()
Verify that blocking notifications prevents notifications from displaying.
setup()
- Select "Always Block Notifications" from the notifications doorhanger.
- Verify no notification appears.
- Click "pop Notification" button.
- Verify no notification appears.
teardown()
Verify clicking "Not Now" from the notification permissions doorhanger causes the permissions popup to appear again.
setup()
- Select "Not Now" from the notifications doorhanger.
- Verify no notification appears.
- Click "pop Notification" button.
- Verify notification doorhanger appears again.
teardown()
Verify changing notification permissions in the address bar causes the notification permissions screen to reappear.
setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Verify notification appears and auto-dismisses after X seconds.
- Click the lock button in the address bar.
- Change notification permissions to "Always Ask".
- Click "pop Notification" button.
- Verify notification doorhanger appears again.
- Select "Always Show Notifications" from the notifications doorhanger.
- Verify notification appears.
- Click the lock button in the address bar.
- Change notification permissions to "Block".
- Click "pop Notification" button.
- Verify no notification appears.
- Click the lock button in the address bar.
- Change notification permissions to "Allow".
- Click "pop Notification" button appears.
- Verify notification appears.
teardown()
Verify programmatically closing a notification causes it to immediately disappear.
- setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Verify notification appears.
- Click "closeNotification" button.
- Verify notification is immediately dismissed.
- teardown()
Verify notification can be manually dismissed by swiping it (OS X only).
- setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Click and drag notification to dismiss it.
- teardown()
Verify notification can be dismissed by clicking the close button.
- setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Hover over the doorhanger and click the "Close" button.
- Verify notification is immediately dismissed.
- teardown()
Verify setting `requireInteraction` to true causes the notification to remain open until explicitly closed (OS X only).
- setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Set "requireInteraction" dropdown to `true`.
- Click "pop Notification" button.
- Verify that the notification persists until explicitly closed.
- teardown()
Verify setting `requireInteraction` to false (default) causes the notification to auto-close after X seconds.
- setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Set "requireInteraction" dropdown to `false`.
- Click "pop Notification" button.
- Verify the notification auto dismisses after X seconds.
- teardown()
Verify clicking on a notification opens a specified URL.
setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Click on the notification.
- Verify that https://www.mozilla.org/en-US/ opens in a new tab.
teardown()
Verify setting target opens specified URL in the specified window.
- Open https://pdehaan.github.io/push-notification-test/
- Set "target" to `_top`.
- Click "pop Notification" button.
- Select "Always Show Notifications" from the notifications doorhanger.
- Verify that https://www.mozilla.org/en-US/ opens in the current tab.
teardown()
Verify setting a target causes a notification to open in the same window.
- Open https://pdehaan.github.io/push-notification-test/
- Set "target" to `foobar`.
- Click "pop Notification" button.
- Select "Always Show Notifications" from the notifications doorhanger.
- Verify that https://www.mozilla.org/en-US/ opens in a new tab.
- Click "pop Notification" button.
- Verify that https://www.mozilla.org/en-US/ opens in the same tab as step 5.
teardown()
Verify setting a _blank target causes a notification to open in the new window.
- Open https://pdehaan.github.io/push-notification-test/
- Set "target" to `_blank` (default).
- Click "pop Notification" button.
- Select "Always Show Notifications" from the notifications doorhanger.
- Verify that https://www.mozilla.org/en-US/ opens in a new tab.
- Click "pop Notification" button.
- Verify that https://www.mozilla.org/en-US/ opens in a new tab.
teardown()
Verify clicking the pop Notification button causes the notification to display multiple times.
setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Click "pop Notification" button 10 times.
- Verify the notification only appears once (and says "9 new notifications").
- Verify there are 11 notifications in the OSX notifications tray.
teardown()
Verify the notification is not dismissed when hovering over the notification.
setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Hover over the notification and make sure the notification is not auto-dismissed.
- Move mouse off of notification.
- Verify that the notification disappears after X seconds.
teardown()
Verify the notification is not dismissed when hovering over an item in the submenu (OS X only).
setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Hover over the notification and click the "..." button in the lower-right corner.
- Click "Disable notifications from this site" menu option.
- Click "pop Notification" button.
- Verify notification doorhanger appears.
teardown()
Verify clicking Notification Settings in the notification causes the preferences page to appear.
setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Hover over the notification and click the "..." button in the lower-right corner.
- Click "Notification settings" menu option.
- Verify that about:preferences#content opens in a new tab.
teardown()
Verify allowing notifications reports correctly in about:preferences#content
setup()
- Select "Always Show Notifications" from the notifications doorhanger.
- Open about:preferences#content
- Click "Choose" button.
- Verify that https://pdehaan.github.io/ appears in site list and it's status is set to "Allow".
teardown()
Verify blocking notifications reports correctly in about:preferences#content
setup()
- Select "Always Block Notifications" from the notifications doorhanger.
- Open about:preferences#content
- Click "Choose" button.
- Verify that https://pdehaan.github.io/ appears in site list and it's status is set to "Block".
teardown()
Verify a long "Title" doesn't cause the notification to resize.
- Open https://pdehaan.github.io/push-notification-test/
- Set "Title"to a a long string.
- Click "pop Notification" button.
- Verify the title text truncates and doesn't resize notification popup.
- teardown()
Verify a long "Body Text" doesn't cause the notification to resize.
- Open https://pdehaan.github.io/push-notification-test/
- Set "Body Text"to a a long string.
- Click "pop Notification" button.
- Verify the body text truncates and doesn't resize notification popup.
- teardown()
PUSH API
Common
setup()
- Open https://pdehaan.github.io/push-notification-test/
- Click "register Service Worker" button.
teardown()
- Click "Unregister Service Worker" button.
Tests
Verify registering a service worker causes it to appear in about:serviceworkers.
setup()
- Verify HTML output is:
registering service worker registered service worker. scope: https://pdehaan.github.io/push-notification-test/
- Click "Check Service Worker" button.
- Verify HTML output is:
checking service worker Service worker active
- Open about:serviceworkers
- Verify service worker is registered to https://pdehaan.github.io/ origin.
- Go back to https://pdehaan.github.io/push-notification-test/
- Click "Unregister Service Worker" button.
- Open about:serviceworkers
- Verify "No Service Workers registered." message (refresh page if it was previously open tab).
teardown()
Verify sending a message to a service worker causes it to echo the message.
setup()
- Click "subscribe to push" button.
- Click "sendMsgToSW" button.
- Verify "messageChannel.port1.onmessage: SW echo: HelloWorld" output on page.
- Change text box value to "999".
- Click "sendMsgToSW" button.
- Verify "messageChannel.port1.onmessage: SW echo: 999" output on page.
teardown()
CONTACTS
- pdehaan@mozilla
- rpappalardo@mozilla
- ryanvm@mozilla