summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_fxa_web_channel.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_fxa_web_channel.js')
-rw-r--r--browser/base/content/test/general/browser_fxa_web_channel.js210
1 files changed, 0 insertions, 210 deletions
diff --git a/browser/base/content/test/general/browser_fxa_web_channel.js b/browser/base/content/test/general/browser_fxa_web_channel.js
deleted file mode 100644
index eb0167ffb..000000000
--- a/browser/base/content/test/general/browser_fxa_web_channel.js
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-Cu.import("resource://gre/modules/Promise.jsm");
-Cu.import("resource://gre/modules/Task.jsm");
-
-XPCOMUtils.defineLazyGetter(this, "FxAccountsCommon", function () {
- return Components.utils.import("resource://gre/modules/FxAccountsCommon.js", {});
-});
-
-XPCOMUtils.defineLazyModuleGetter(this, "WebChannel",
- "resource://gre/modules/WebChannel.jsm");
-
-// FxAccountsWebChannel isn't explicitly exported by FxAccountsWebChannel.jsm
-// but we can get it here via a backstage pass.
-var {FxAccountsWebChannel} = Components.utils.import("resource://gre/modules/FxAccountsWebChannel.jsm", {});
-
-const TEST_HTTP_PATH = "http://example.com";
-const TEST_BASE_URL = TEST_HTTP_PATH + "/browser/browser/base/content/test/general/browser_fxa_web_channel.html";
-const TEST_CHANNEL_ID = "account_updates_test";
-
-var gTests = [
- {
- desc: "FxA Web Channel - should receive message about profile changes",
- run: function* () {
- let client = new FxAccountsWebChannel({
- content_uri: TEST_HTTP_PATH,
- channel_id: TEST_CHANNEL_ID,
- });
- let promiseObserver = new Promise((resolve, reject) => {
- makeObserver(FxAccountsCommon.ON_PROFILE_CHANGE_NOTIFICATION, function (subject, topic, data) {
- Assert.equal(data, "abc123");
- client.tearDown();
- resolve();
- });
- });
-
- yield BrowserTestUtils.withNewTab({
- gBrowser: gBrowser,
- url: TEST_BASE_URL + "?profile_change"
- }, function* () {
- yield promiseObserver;
- });
- }
- },
- {
- desc: "fxa web channel - login messages should notify the fxAccounts object",
- run: function* () {
-
- let promiseLogin = new Promise((resolve, reject) => {
- let login = (accountData) => {
- Assert.equal(typeof accountData.authAt, 'number');
- Assert.equal(accountData.email, 'testuser@testuser.com');
- Assert.equal(accountData.keyFetchToken, 'key_fetch_token');
- Assert.equal(accountData.sessionToken, 'session_token');
- Assert.equal(accountData.uid, 'uid');
- Assert.equal(accountData.unwrapBKey, 'unwrap_b_key');
- Assert.equal(accountData.verified, true);
-
- client.tearDown();
- resolve();
- };
-
- let client = new FxAccountsWebChannel({
- content_uri: TEST_HTTP_PATH,
- channel_id: TEST_CHANNEL_ID,
- helpers: {
- login: login
- }
- });
- });
-
- yield BrowserTestUtils.withNewTab({
- gBrowser: gBrowser,
- url: TEST_BASE_URL + "?login"
- }, function* () {
- yield promiseLogin;
- });
- }
- },
- {
- desc: "fxa web channel - can_link_account messages should respond",
- run: function* () {
- let properUrl = TEST_BASE_URL + "?can_link_account";
-
- let promiseEcho = new Promise((resolve, reject) => {
-
- let webChannelOrigin = Services.io.newURI(properUrl, null, null);
- // responses sent to content are echoed back over the
- // `fxaccounts_webchannel_response_echo` channel. Ensure the
- // fxaccounts:can_link_account message is responded to.
- let echoWebChannel = new WebChannel('fxaccounts_webchannel_response_echo', webChannelOrigin);
- echoWebChannel.listen((webChannelId, message, target) => {
- Assert.equal(message.command, 'fxaccounts:can_link_account');
- Assert.equal(message.messageId, 2);
- Assert.equal(message.data.ok, true);
-
- client.tearDown();
- echoWebChannel.stopListening();
-
- resolve();
- });
-
- let client = new FxAccountsWebChannel({
- content_uri: TEST_HTTP_PATH,
- channel_id: TEST_CHANNEL_ID,
- helpers: {
- shouldAllowRelink(acctName) {
- return acctName === 'testuser@testuser.com';
- }
- }
- });
- });
-
- yield BrowserTestUtils.withNewTab({
- gBrowser: gBrowser,
- url: properUrl
- }, function* () {
- yield promiseEcho;
- });
- }
- },
- {
- desc: "fxa web channel - logout messages should notify the fxAccounts object",
- run: function* () {
- let promiseLogout = new Promise((resolve, reject) => {
- let logout = (uid) => {
- Assert.equal(uid, 'uid');
-
- client.tearDown();
- resolve();
- };
-
- let client = new FxAccountsWebChannel({
- content_uri: TEST_HTTP_PATH,
- channel_id: TEST_CHANNEL_ID,
- helpers: {
- logout: logout
- }
- });
- });
-
- yield BrowserTestUtils.withNewTab({
- gBrowser: gBrowser,
- url: TEST_BASE_URL + "?logout"
- }, function* () {
- yield promiseLogout;
- });
- }
- },
- {
- desc: "fxa web channel - delete messages should notify the fxAccounts object",
- run: function* () {
- let promiseDelete = new Promise((resolve, reject) => {
- let logout = (uid) => {
- Assert.equal(uid, 'uid');
-
- client.tearDown();
- resolve();
- };
-
- let client = new FxAccountsWebChannel({
- content_uri: TEST_HTTP_PATH,
- channel_id: TEST_CHANNEL_ID,
- helpers: {
- logout: logout
- }
- });
- });
-
- yield BrowserTestUtils.withNewTab({
- gBrowser: gBrowser,
- url: TEST_BASE_URL + "?delete"
- }, function* () {
- yield promiseDelete;
- });
- }
- }
-]; // gTests
-
-function makeObserver(aObserveTopic, aObserveFunc) {
- let callback = function (aSubject, aTopic, aData) {
- if (aTopic == aObserveTopic) {
- removeMe();
- aObserveFunc(aSubject, aTopic, aData);
- }
- };
-
- function removeMe() {
- Services.obs.removeObserver(callback, aObserveTopic);
- }
-
- Services.obs.addObserver(callback, aObserveTopic, false);
- return removeMe;
-}
-
-function test() {
- waitForExplicitFinish();
-
- Task.spawn(function* () {
- for (let testCase of gTests) {
- info("Running: " + testCase.desc);
- yield testCase.run();
- }
- }).then(finish, ex => {
- Assert.ok(false, "Unexpected Exception: " + ex);
- finish();
- });
-}