diff options
Diffstat (limited to 'mobile/android/tests/browser/chrome/test_web_channel.html')
-rw-r--r-- | mobile/android/tests/browser/chrome/test_web_channel.html | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/mobile/android/tests/browser/chrome/test_web_channel.html b/mobile/android/tests/browser/chrome/test_web_channel.html new file mode 100644 index 000000000..3eeb5b527 --- /dev/null +++ b/mobile/android/tests/browser/chrome/test_web_channel.html @@ -0,0 +1,121 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=1174458 +Migrated from Robocop: https://bugzilla.mozilla.org/show_bug.cgi?id=1184186 +--> +<head> + <meta charset="utf-8"> + <title>Test for Bug 1174458</title> + <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> + <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SpawnTask.js"></script> + <link rel="stylesheet" type="text/css" href="chrome://global/skin"/> + <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/> + <script type="application/javascript;version=1.7"> + + const { classes: Cc, interfaces: Ci, utils: Cu } = Components; /*global Components */ + + Cu.import("resource://gre/modules/Promise.jsm"); /*global Promise */ + Cu.import("resource://gre/modules/Services.jsm"); /*global Services */ + Cu.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils */ + Cu.import("resource://gre/modules/Task.jsm"); /*global Task */ + XPCOMUtils.defineLazyModuleGetter(this, "WebChannel", + "resource://gre/modules/WebChannel.jsm"); /*global WebChannel */ + + const HTTP_PATH = "http://mochi.test:8888"; + const HTTP_ENDPOINT = "/chrome/mobile/android/tests/browser/chrome/web_channel.html"; + + const gChromeWin = Services.wm.getMostRecentWindow("navigator:browser"); + let BrowserApp = gChromeWin.BrowserApp; + + // TODO: consider if we want to run the original test in browser-chrome instead + + // Keep this synced with /browser/base/content/test/general/browser_web_channel.js + // as much as possible. (We only have this since we can't run browser chrome + // tests on Android. Yet?) + let gTests = [ + { + desc: "WebChannel generic message", + run: function* () { + return new Promise(function(resolve, reject) { + let tab; + let channel = new WebChannel("generic", Services.io.newURI(HTTP_PATH, null, null)); + channel.listen(function (id, message, target) { + is(id, "generic"); + is(message.something.nested, "hello"); + channel.stopListening(); + BrowserApp.closeTab(tab); + resolve(); + }); + + tab = BrowserApp.addTab(HTTP_PATH + HTTP_ENDPOINT + "?generic"); + }); + } + }, + { + desc: "WebChannel two way communication", + run: function* () { + return new Promise(function(resolve, reject) { + let tab; + let channel = new WebChannel("twoway", Services.io.newURI(HTTP_PATH, null, null)); + + channel.listen(function (id, message, sender) { + is(id, "twoway"); + ok(message.command); + + if (message.command === "one") { + channel.send({ data: { nested: true } }, sender); + } + + if (message.command === "two") { + is(message.detail.data.nested, true); + channel.stopListening(); + BrowserApp.closeTab(tab); + resolve(); + } + }); + + tab = BrowserApp.addTab(HTTP_PATH + HTTP_ENDPOINT + "?twoway"); + }); + } + }, + { + desc: "WebChannel multichannel", + run: function* () { + return new Promise(function(resolve, reject) { + let tab; + let channel = new WebChannel("multichannel", Services.io.newURI(HTTP_PATH, null, null)); + + channel.listen(function (id, message, sender) { + is(id, "multichannel"); + BrowserApp.closeTab(tab); + resolve(); + }); + + tab = BrowserApp.addTab(HTTP_PATH + HTTP_ENDPOINT + "?multichannel"); + }); + } + } + ]; // gTests + + add_task(function* test() { + for (let test of gTests) { + info("Running: " + test.desc); + yield test.run(); + } + }); + + </script> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1174458">Mozilla Bug 1174458</a> +<br> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1184186">Migrated from Robocop testWebChannel</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +</pre> +</body> +</html> |