diff options
Diffstat (limited to 'browser/base/content/test/general/browser_fxa_web_channel.html')
-rw-r--r-- | browser/base/content/test/general/browser_fxa_web_channel.html | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_fxa_web_channel.html b/browser/base/content/test/general/browser_fxa_web_channel.html new file mode 100644 index 000000000..be5631ff1 --- /dev/null +++ b/browser/base/content/test/general/browser_fxa_web_channel.html @@ -0,0 +1,138 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>fxa_web_channel_test</title> +</head> +<body> +<script> + var webChannelId = "account_updates_test"; + + window.onload = function() { + var testName = window.location.search.replace(/^\?/, ""); + + switch (testName) { + case "profile_change": + test_profile_change(); + break; + case "login": + test_login(); + break; + case "can_link_account": + test_can_link_account(); + break; + case "logout": + test_logout(); + break; + case "delete": + test_delete(); + break; + } + }; + + function test_profile_change() { + var event = new window.CustomEvent("WebChannelMessageToChrome", { + detail: JSON.stringify({ + id: webChannelId, + message: { + command: "profile:change", + data: { + uid: "abc123", + }, + }, + }), + }); + + window.dispatchEvent(event); + } + + function test_login() { + var event = new window.CustomEvent("WebChannelMessageToChrome", { + detail: JSON.stringify({ + id: webChannelId, + message: { + command: "fxaccounts:login", + data: { + authAt: Date.now(), + email: "testuser@testuser.com", + keyFetchToken: 'key_fetch_token', + sessionToken: 'session_token', + uid: 'uid', + unwrapBKey: 'unwrap_b_key', + verified: true, + }, + messageId: 1, + }, + }), + }); + + window.dispatchEvent(event); + } + + function test_can_link_account() { + window.addEventListener("WebChannelMessageToContent", function (e) { + // echo any responses from the browser back to the tests on the + // fxaccounts_webchannel_response_echo WebChannel. The tests are + // listening for events and do the appropriate checks. + var event = new window.CustomEvent("WebChannelMessageToChrome", { + detail: JSON.stringify({ + id: 'fxaccounts_webchannel_response_echo', + message: e.detail.message, + }) + }); + + window.dispatchEvent(event); + }, true); + + var event = new window.CustomEvent("WebChannelMessageToChrome", { + detail: JSON.stringify({ + id: webChannelId, + message: { + command: "fxaccounts:can_link_account", + data: { + email: "testuser@testuser.com", + }, + messageId: 2, + }, + }), + }); + + window.dispatchEvent(event); + } + + function test_logout() { + var event = new window.CustomEvent("WebChannelMessageToChrome", { + detail: JSON.stringify({ + id: webChannelId, + message: { + command: "fxaccounts:logout", + data: { + uid: 'uid' + }, + messageId: 3, + }, + }), + }); + + window.dispatchEvent(event); + } + + function test_delete() { + var event = new window.CustomEvent("WebChannelMessageToChrome", { + detail: JSON.stringify({ + id: webChannelId, + message: { + command: "fxaccounts:delete", + data: { + uid: 'uid' + }, + messageId: 4, + }, + }), + }); + + window.dispatchEvent(event); + } +</script> +</body> +</html> |