aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test-pageMod.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-pageMod.js')
-rw-r--r--tests/test-pageMod.js141
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);
+};