QA/Push Notifications: Difference between revisions

Jump to navigation Jump to search
Add some more formatting, 140% cooler now.
(Adding spinning GIF)
(Add some more formatting, 140% cooler now.)
Line 1: Line 1:
= https://irccloud.mozilla.com/file/8eTYehOd/hot.gif Test Plan (Overview) =
= Test Plan (Overview) https://irccloud.mozilla.com/file/8eTYehOd/hot.gif =
 
 




Line 40: Line 38:
=== Common ===
=== Common ===


'''setup()'''
Shared steps between Notifications tests:
 
'''<code>setup()</code>'''
# Open https://pdehaan.github.io/push-notification-test/
# Open https://pdehaan.github.io/push-notification-test/
# Click '''pop Notification''' button.
# Click '''pop Notification''' button.


'''teardown()'''
'''<code>teardown()</code>'''
# Click on lock icon in the address bar.
# Click on lock icon in the address bar.
# Set '''Show Notifications''' permission to "Always Ask".
# Set '''Show Notifications''' permission to "Always Ask".
Line 56: Line 56:
# 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.'''
'''Name:''' TBD<br/>
'''Description:''' Verify that trying to display a notification causes a dialog to appear.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Click the "close" button in the upper right corner of the notifications doorhanger.
# Click the "close" button in the upper right corner of the notifications doorhanger.
Line 65: Line 66:




'''Verify clicking outside of a notification dismisses it automatically (OS X only).'''
'''Name:''' TBD<br/>
'''Description:''' Verify clicking outside of a notification dismisses it automatically (OS X only).<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Click outside of the notifications doorhanger.
# Click outside of the notifications doorhanger.
Line 71: Line 74:




'''Verify clicking on the "Learn more" link opens the target page.'''
'''Name:''' TBD<br/>
'''Description:''' Verify clicking on the "Learn more" link opens the target page.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Click the "Learn more..." link in the notifications doorhanger.
# 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 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.'''
'''Name:''' TBD<br/>
'''Description:''' Verify that a notification is auto-closed after X seconds.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
Line 83: Line 90:




'''Verify that blocking notifications prevents notifications from displaying.'''
'''Name:''' TBD<br/>
'''Description:''' Verify that blocking notifications prevents notifications from displaying.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Block Notifications" from the notifications doorhanger.
# Select "Always Block Notifications" from the notifications doorhanger.
Line 92: Line 101:




'''Verify clicking "Not Now" from the notification permissions doorhanger causes the permissions popup to appear again.'''
'''Name:''' TBD<br/>
'''Description:''' Verify clicking "Not Now" from the notification permissions doorhanger causes the permissions popup to appear again.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Not Now" from the notifications doorhanger.
# Select "Not Now" from the notifications doorhanger.
Line 101: Line 112:




'''Verify changing notification permissions in the address bar causes the notification permissions screen to reappear.'''
'''Name:''' TBD<br/>
'''Description:''' Verify changing notification permissions in the address bar causes the notification permissions screen to reappear.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
Line 122: Line 135:




'''Verify programmatically closing a notification causes it to immediately disappear.'''
'''Name:''' TBD<br/>
# setup()
'''Description:''' Verify programmatically closing a notification causes it to immediately disappear.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
# Verify notification appears.
# Verify notification appears.
# Click "closeNotification" button.
# Click "closeNotification" button.
# Verify notification is immediately dismissed.
# Verify notification is immediately dismissed.
# teardown()
# <code>teardown()</code>




'''Verify notification can be manually dismissed by swiping it (OS X only).'''
'''Name:''' TBD<br/>
# setup()
'''Description:''' Verify notification can be manually dismissed by swiping it (OS X only).<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
# Click and drag notification to dismiss it.
# Click and drag notification to dismiss it.
# teardown()
# <code>teardown()</code>




'''Verify notification can be dismissed by clicking the close button.'''
'''Name:''' TBD<br/>
# setup()
'''Description:''' Verify notification can be dismissed by clicking the close button.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
# Hover over the doorhanger and click the "Close" button.
# Hover over the doorhanger and click the "Close" button.
# Verify notification is immediately dismissed.
# Verify notification is immediately dismissed.
# teardown()
# <code>teardown()</code>




'''Verify setting `requireInteraction` to true causes the notification to remain open until explicitly closed (OS X only).'''
'''Name:''' TBD<br/>
# setup()
'''Description:''' Verify setting `requireInteraction` to true causes the notification to remain open until explicitly closed (OS X only).<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
# Set "requireInteraction" dropdown to `true`.
# Set "requireInteraction" dropdown to `true`.
# Click "pop Notification" button.
# Click "pop Notification" button.
# Verify that the notification persists until explicitly closed.
# Verify that the notification persists until explicitly closed.
# teardown()
# <code>teardown()</code>




'''Verify setting `requireInteraction` to false (default) causes the notification to auto-close after X seconds.'''
'''Name:''' TBD<br/>
# setup()
'''Description:''' Verify setting `requireInteraction` to false (default) causes the notification to auto-close after X seconds.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
# Set "requireInteraction" dropdown to `false`.
# Set "requireInteraction" dropdown to `false`.
# Click "pop Notification" button.
# Click "pop Notification" button.
# Verify the notification auto dismisses after X seconds.
# Verify the notification auto dismisses after X seconds.
# teardown()
# <code>teardown()</code>




'''Verify clicking on a notification opens a specified URL.'''
'''Name:''' TBD<br/>
'''Description:''' Verify clicking on a notification opens a specified URL.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
Line 172: Line 197:




'''Verify setting target opens specified URL in the specified window.'''
'''Name:''' TBD<br/>
'''Description:''' Verify setting target opens specified URL in the specified window.<br/>
'''Steps:'''<br/>
# Open https://pdehaan.github.io/push-notification-test/
# Open https://pdehaan.github.io/push-notification-test/
# Set "target" to `_top`.
# Set "target" to `_top`.
Line 181: Line 208:




'''Verify setting a target causes a notification to open in the same window.'''
'''Name:''' TBD<br/>
'''Description:''' Verify setting a target causes a notification to open in the same window.<br/>
'''Steps:'''<br/>
# Open https://pdehaan.github.io/push-notification-test/
# Open https://pdehaan.github.io/push-notification-test/
# Set "target" to `foobar`.
# Set "target" to `foobar`.
Line 192: Line 221:




'''Verify setting a _blank target causes a notification to open in the new window.'''
'''Name:''' TBD<br/>
'''Description:''' Verify setting a _blank target causes a notification to open in the new window.<br/>
'''Steps:'''<br/>
# Open https://pdehaan.github.io/push-notification-test/
# Open https://pdehaan.github.io/push-notification-test/
# Set "target" to `_blank` (default).
# Set "target" to `_blank` (default).
Line 203: Line 234:




'''Verify clicking the pop Notification button causes the notification to display multiple times.'''
'''Name:''' TBD<br/>
'''Description:''' Verify clicking the pop Notification button causes the notification to display multiple times.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
Line 212: Line 245:




'''Verify the notification is not dismissed when hovering over the notification.'''
'''Name:''' TBD<br/>
'''Description:''' Verify the notification is not dismissed when hovering over the notification.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
Line 221: Line 256:




'''Verify the notification is not dismissed when hovering over an item in the submenu (OS X only).'''
'''Name:''' TBD<br/>
'''Description:''' Verify the notification is not dismissed when hovering over an item in the submenu (OS X only).<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
Line 231: Line 268:




'''Verify clicking Notification Settings in the notification causes the preferences page to appear.'''
'''Name:''' TBD<br/>
'''Description:''' Verify clicking Notification Settings in the notification causes the preferences page to appear.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
Line 240: Line 279:




'''Verify allowing notifications reports correctly in about:preferences#content'''
'''Name:''' TBD<br/>
'''Description:''' Verify allowing notifications reports correctly in about:preferences#content<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Show Notifications" from the notifications doorhanger.
# Select "Always Show Notifications" from the notifications doorhanger.
Line 249: Line 290:




'''Verify blocking notifications reports correctly in about:preferences#content'''
'''Name:''' TBD<br/>
'''Description:''' Verify blocking notifications reports correctly in about:preferences#content<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Select "Always Block Notifications" from the notifications doorhanger.  
# Select "Always Block Notifications" from the notifications doorhanger.  
Line 258: Line 301:




'''Verify a long "Title" doesn't cause the notification to resize.'''
'''Name:''' TBD<br/>
'''Description:''' Verify a long "Title" doesn't cause the notification to resize.<br/>
'''Steps:'''<br/>
# Open https://pdehaan.github.io/push-notification-test/
# Open https://pdehaan.github.io/push-notification-test/
# Set "Title"to a a long string.
# Set "Title"to a a long string.
# Click "pop Notification" button.
# Click "pop Notification" button.
# Verify the title text truncates and doesn't resize notification popup.
# Verify the title text truncates and doesn't resize notification popup.
# teardown()
# <code>teardown()</code>




'''Verify a long "Body Text" doesn't cause the notification to resize.'''
'''Name:''' TBD<br/>
'''Description:''' Verify a long "Body Text" doesn't cause the notification to resize.<br/>
'''Steps:'''<br/>
# Open https://pdehaan.github.io/push-notification-test/
# Open https://pdehaan.github.io/push-notification-test/
# Set "Body Text"to a a long string.
# Set "Body Text"to a a long string.
# Click "pop Notification" button.
# Click "pop Notification" button.
# Verify the body text truncates and doesn't resize notification popup.
# Verify the body text truncates and doesn't resize notification popup.
# teardown()
# <code>teardown()</code>




Line 278: Line 325:
=== Common ===
=== Common ===


'''setup()'''
Shared steps between Push API tests:
 
'''<code>setup()</code>'''
# Open https://pdehaan.github.io/push-notification-test/
# Open https://pdehaan.github.io/push-notification-test/
# Click "register Service Worker" button.
# Click "register Service Worker" button.


'''teardown()'''
'''<code>teardown()</code>'''
# Click "Unregister Service Worker" button.
# Click "Unregister Service Worker" button.


=== Tests ===
=== Tests ===


'''Verify registering a service worker causes it to appear in about:serviceworkers.'''
'''Name:''' TBD<br/>
'''Description:''' Verify registering a service worker causes it to appear in about:serviceworkers.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Verify HTML output is:
# Verify HTML output is:
Line 305: Line 356:




'''Verify sending a message to a service worker causes it to echo the message.'''
'''Name:''' TBD<br/>
'''Description:''' Verify sending a message to a service worker causes it to echo the message.<br/>
'''Steps:'''<br/>
# <code>setup()</code>
# <code>setup()</code>
# Click "subscribe to push" button.
# Click "subscribe to push" button.
Line 314: Line 367:
# 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>
== PUSH API - REFERENCE ==
'''Push WebSocket Endpoints:'''
{|
|-
| '''source:''' || https://mana.mozilla.org/wiki/display/SVCOPS/SimplePush#SimplePush-Deployments
|}
'''PUSH ENDPOINTS - STAGE:'''
{|
|-
| '''Production:''' || wss://push.services.mozilla.com/
|-
| '''Production:''' || wss://updates.push.services.mozilla.com/
|-
| '''Staging:''' || wss://autopush.stage.mozaws.net/
|-
| '''Staging:''' || wss://updates-autopush.stage.mozaws.net/
|-
| '''Dev:''' || wss://autopush.dev.mozaws.net/
|}
'''STATUS / HEALTH:'''
{|
|-
| '''Production:''' || https://updates.push.services.mozilla.com/health
|-
| '''Production:''' || https://updates.push.services.mozilla.com/status
|-
| '''Staging:''' || https://updates-autopush.stage.mozaws.net/health
|}


= CONTACTS =
= CONTACTS =
Confirmed users
33

edits

Navigation menu