| <!DOCTYPE html> |
| <html> |
| <head> |
| <title> |
| Subscribing with applicationServerKey should succeed only when the |
| applicationServerKey is valid. |
| </title> |
| <script src="./resources/push-constants.js"></script> |
| <script src="./resources/test-helpers.js"></script> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="../resources/testharness-helpers.js"></script> |
| <script src="../serviceworker/resources/test-helpers.js"></script> |
| </head> |
| <body> |
| <script> |
| // Subscribe should fail given a gcm sender id encoded as base64 url safe string. |
| promise_test(function(test) { |
| return registerAndSubscribePushWithBase64urlString(test, btoa('0123456789')) |
| .then(function(pushSubscription) { |
| assert_unreached('Subscribe should have failed.'); |
| }) |
| .catch (function(e) { |
| assert_true(e.message.includes( |
| 'The provided applicationServerKey is not encoded as base64url without padding')); |
| }); |
| }, 'Subscribing with a gcm sender id encoded as base64 url safe string should fail'); |
| |
| // Subscribe should succeed given a valid numeric sender ID. |
| promise_test(function(test) { |
| return registerAndSubscribePushWithString(test, '0123456789') |
| .then(function(pushSubscription) { |
| assert_true( |
| pushSubscription.endpoint.includes('StandardizedEndpoint')); |
| }); |
| }, 'Subscribing with a valid numeric sender ID should succeed'); |
| |
| // Subscribe should succeed given a valid p256 key. |
| promise_test(function(test) { |
| return registerAndSubscribePush(test, new Uint8Array(PUBLIC_KEY)) |
| .then(function(pushSubscription) { |
| assert_true( |
| pushSubscription.endpoint.includes('StandardizedEndpoint')); |
| }); |
| }, 'Subscribing with a valid p256 applicationServerKey should succeed'); |
| |
| // Subscribe should succeed given a valid base64url encoded key. |
| promise_test(function(test) { |
| return registerAndSubscribePushWithBase64urlString(test, VALID_BASE64URL_ENCODED_KEY) |
| .then(function(pushSubscription) { |
| assert_true( |
| pushSubscription.endpoint.includes('StandardizedEndpoint')); |
| }); |
| }, 'Subscribing with a valid base64url encoded key should succeed'); |
| |
| // Subscribe should fail given a base64 encoded key instead of base64url. |
| promise_test(function(test) { |
| return registerAndSubscribePushWithBase64urlString(test, INVALID_BASE64_ENCODED_KEY) |
| .then(function(pushSubscription) { |
| assert_unreached('Subscribe should have failed.'); |
| }) |
| .catch (function(e) { |
| assert_true(e.message.includes( |
| 'The provided applicationServerKey is not encoded as base64url without padding')); |
| }); |
| }, 'Subscribing with a base64 encoded string should fail'); |
| |
| // Subscribe should fail given an invalid base64url encoded string. |
| promise_test(function(test) { |
| return registerAndSubscribePushWithBase64urlString(test, INVALID_BASE64URL_ENCODED_KEY) |
| .then(function(pushSubscription) { |
| assert_unreached('Subscribe should have failed.'); |
| }) |
| .catch (function(e) { |
| assert_true(e.message.includes( |
| 'The provided applicationServerKey is not encoded as base64url without padding')); |
| }); |
| }, 'Subscribing with an invalid base64url encoded string should fail'); |
| |
| // Subscribe should fail given a non-numeric sender ID. |
| promise_test(function(test) { |
| return registerAndSubscribePushWithString(test, '01234a56789') |
| .then(function(pushSubscription) { |
| assert_unreached('Subscribe should have failed.'); |
| }) |
| .catch (function(e) { |
| assert_true(e.message.includes( |
| 'The provided applicationServerKey is not valid.')); |
| }); |
| }, 'Subscribing with a non-numeric sender ID should fail'); |
| |
| // Subscribe should fail given an empty applicationServerKey. |
| promise_test(function(test) { |
| return registerAndSubscribePushWithString(test, '') |
| .then(function(pushSubscription) { |
| assert_unreached('Subscribe should have failed.'); |
| }) |
| .catch (function(e) { |
| assert_true(e.message.includes( |
| 'The provided applicationServerKey is not valid.')); |
| }); |
| }, 'Subscribing with an empty applicationServerKey should fail'); |
| |
| // Subscribe should fail given a too long applicationServerKey. |
| promise_test(function(test) { |
| const longKey = new Uint8Array(300); |
| return registerAndSubscribePush(test, longKey) |
| .then(function(pushSubscription) { |
| assert_unreached('Subscribe should have failed.'); |
| }) |
| .catch (function(e) { |
| assert_true(e.message.includes( |
| 'The provided applicationServerKey is not valid.')); |
| }); |
| }, 'Subscribing with a too long applicationServerKey should fail'); |
| </script> |
| </body> |
| </html> |