browser/base/content/test/general/browser_fxa_web_channel.html
author Jared Wein <jwein@mozilla.com>
Tue, 17 Jan 2017 10:38:58 -0600
changeset 329684 4900b6c465cad2a3f7950ccafbd0b4b36def1a63
parent 322774 dfa1b55da2b1a0d1ab60f20f0540d1ede684ea0b
child 356437 3960d9ea38a227c79c3d3e768ae755adbb2b8794
permissions -rw-r--r--
Bug 1331661 - Manually fix the remaining 'quotes' errors for eslint. r=Gijs MozReview-Commit-ID: 7iXjQtp9ftV

<!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>