diff options
author | Matěj Cepl <mcepl@redhat.com> | 2011-03-02 01:14:36 +0100 |
---|---|---|
committer | Matěj Cepl <mcepl@redhat.com> | 2011-03-02 01:14:36 +0100 |
commit | 41ffab7b32df1756e78af92ff68ff40afb75e1d5 (patch) | |
tree | 3bcddc3dfaa9f6ad7afbd0cf31f09d6bceb8e208 /tests/test-pageMod.js | |
parent | 273765aa78125b2106218ad554e6dedad7d2b381 (diff) | |
parent | 52bcf6e79eb3085b598a9ca0d21f60879a0e3706 (diff) | |
download | bugzilla-triage-41ffab7b32df1756e78af92ff68ff40afb75e1d5.tar.gz |
Merge branch 'pageMod' into next
Conflicts:
lib/bzpage.js
Diffstat (limited to 'tests/test-pageMod.js')
-rw-r--r-- | tests/test-pageMod.js | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/tests/test-pageMod.js b/tests/test-pageMod.js new file mode 100644 index 0000000..8662a4c --- /dev/null +++ b/tests/test-pageMod.js @@ -0,0 +1,141 @@ +/*jslint white: false, eqeqeq: false, plusplus: false, onevar: false, newcap: false */ +/*global exports: false, require: false, console: false, log: false */ +"use strict"; +var Cc = require("chrome").Cc; +var Ci = require("chrome").Ci; +var main = require("main"); +var utilMod = require("util"); +var testPageMod = require("pagemod-test-helpers").testPageMod; +var self = require("self"); + +var theURL = main.theURL; +var testURL = self.data.url('tests/change-more-bugs01.html'); +var JSONifiedMessage = '{"cmd":"testMessage","data":{"a":"first","b":"second"}}'; + +exports.ensureMessagesWork = function(test) { + var msg = new utilMod.Message("testMessage", { a: "first", b: "second" } ); + test.assertEqual(msg.cmd, "testMessage", + "msg.cmd comes over well"); + test.assertEqual(msg.data.a, "first", + "msg.data.a comes over well"); + test.assertEqual(msg.data.b, "second", + "msg.data.b comes over well"); + test.assertEqual(JSON.stringify(msg), JSONifiedMessage, + "JSONification of Message works as well"); +}; + +/* + +var theURL = main.theURL; +var testURL = self.data.url('tests/change-more-bugs01.html'); + +var contentScriptLibraries = { + "bugzilla.redhat.com": [ + self.data.url("util.js"), + self.data.url("color.js"), + self.data.url("rhbzpage.js"), + self.data.url("bzpage.js") + ] +}; + +libbz.initialize(libbz.config, function () { + pageMod.PageMod({ + include: [ + "https://bugzilla.redhat.com/show_bug.cgi?id=*" + ], + contentScriptWhen: 'ready', + contentScriptFile: contentScriptLibraries["bugzilla.redhat.com"], + onAttach: function onAttach(worker, msg) { + console.log("worker: " + worker); + worker.on('message', function (msg) { + messageHandler(worker, msg); + }); + } + }); +}); + +pageMod.PageMod({ + include: [ + "https://bugzilla.redhat.com/process_bug.cgi" + ], + contentScriptWhen: 'ready', + contentScriptFile: self.data.url("skip-bug.js") +}); + */ + +var ensureSimplePageLoad = function (test) { + console.log("testURL = " + testURL); + testPageMod(test, testURL, [{ + include: ["*"], + contentScriptWhen: 'ready', + contentScriptFile: [ + self.data.url("libPW.js"), + self.data.url("simplePageWorker.js") + ], + onAttach: function onAttach(worker) { + worker.on('message', function (msg) { + switch (msg.cmd) { + case "LogMessage": + log(msg.data); + break; + case "CallBack": + worker.postMessage(new utilMod.Message("Main", null)); + break; + default: + console.error(msg); + } + }); + } + }], + function (win, done) { + test.assertNotEqual(win.document.getElementsByTagName("form")[0], + null, "test of loading the page"); + done(); + }); +}; + +var ensurePageLoadsWell = function (test) { + var wm = Cc['@mozilla.org/appshell/window-mediator;1'] + .getService(Ci.nsIWindowMediator); + var browserWindow = wm.getMostRecentWindow("navigator:browser"); + if (!browserWindow) { + test.fail("page-mod tests: could not find the browser window, so " + + "will not run. Use -a firefox to run the pagemod tests."); + return null; + } + + var loader = test.makeSandboxedLoader(); + var pageMod = loader.require("page-mod"); + var testDoc = {}, b = {}, tabBrowser = {}, newTab = {}; + + pageMod.PageMod({ + include: ["*"], + contentScriptWhen: 'ready', + contentScriptFile: [ + self.data.url("libPW.js"), + self.data.url("pageWorker.js") + ], + onAttach: function onAttach(worker) { + worker.on('message', function (msg) { + switch (msg.cmd) { + case "testReady": + testDoc = b.contentWindow.wrappedJSObject.document; + test.assertNotEqual(testDoc.getElementById("dupeid_action"), + null, "test of DOM modifications of the page"); + pageMod.destroy(); + tabBrowser.removeTab(newTab); + test.done(); + // the test itself + break; + default: + main.messageHandler(worker, msg); + } + }); + } + }); + + tabBrowser = browserWindow.gBrowser; + newTab = tabBrowser.addTab(testURL); + tabBrowser.selectedTab = newTab; + b = tabBrowser.getBrowserForTab(newTab); +}; |