UNPKG

slimerjs-firefox

Version:

This repo includes slimerjs as well as downloads a local copy of Firefox.

224 lines (196 loc) 6.27 kB
describe("WebPage.onAlert", function(){ var webpage; var url = "http://127.0.0.1:8083/alert.html"; beforeEach(function() { if (webpage) { return; } webpage = require("webpage").create(); }); it("has no effect if it is empty",function() { var loaded = false; runs(function() { webpage.open(url, function(success){ loaded = true; }); }); waitsFor(function(){ return loaded;}, 1000); runs(function(){ var result = webpage.evaluate(function(){ doAlert(); return foo; }) expect(result).toEqual("alert done"); }); }); it("retrieve the message when there is an alert",function() { var message = "-1"; webpage.onAlert = function (msg) { message = msg; } var result = webpage.evaluate(function(){ doAlert(); return foo; }) expect(result).toEqual("alert done"); expect(message).toEqual("alert message"); webpage.close(); }); }); describe("WebPage.onConfirm", function(){ var webpage; var url = "http://127.0.0.1:8083/alert.html"; beforeEach(function() { if (webpage) { return; } webpage = require("webpage").create(); }); it("has no effect if it is empty",function() { var loaded = false; runs(function() { webpage.open(url, function(success){ loaded = true; }); }); waitsFor(function(){ return loaded;}, 1000); runs(function(){ var result = webpage.evaluate(function(){ return doConfirm(); }) expect(result).toEqual("cancel"); }); }); it("retrieve the message when a confirm dialog is asked",function() { var message = "-1"; webpage.onConfirm = function (msg) { message = msg; if (msg == "question1") return false; return true; } var result = webpage.evaluate(function(){ return doConfirm(); }) expect(result).toEqual("ok"); expect(message).toEqual("do you confirm?"); var result = webpage.evaluate(function(){ return doConfirm("question1"); }) expect(result).toEqual("cancel"); expect(message).toEqual("question1"); webpage.close(); }); }); describe("WebPage.onPrompt", function(){ var webpage; var url = "http://127.0.0.1:8083/alert.html"; beforeEach(function() { if (webpage) { return; } webpage = require("webpage").create(); }); it("has no effect if it is empty",function() { var loaded = false; runs(function() { webpage.open(url, function(success){ loaded = true; }); }); waitsFor(function(){ return loaded;}, 1000); runs(function(){ var result = webpage.evaluate(function(){ return doPrompt(); }) expect(result).toEqual("--cancel--"); }); }); it("retrieve the message when a prompt is asked",function() { var message = "-1"; webpage.onPrompt = function (msg, defaultVal) { message = msg; if (msg == "question1") return "response2"; return "response1"; } var result = webpage.evaluate(function(){ return doPrompt(); }) expect(result).toEqual("response1"); expect(message).toEqual("what is your name?"); var result = webpage.evaluate(function(){ return doPrompt("question1"); }) expect(result).toEqual("response2"); expect(message).toEqual("question1"); }); it("returns empty value",function() { var message = "-1"; webpage.onPrompt = function (msg, defaultVal) { message = msg; if (msg == "question1") return ""; return null; } var result = webpage.evaluate(function(){ return doPrompt(); }) expect(result).toEqual("--cancel--"); expect(message).toEqual("what is your name?"); var result = webpage.evaluate(function(){ return doPrompt("question1"); }) expect(result).toEqual(""); expect(message).toEqual("question1"); }); it("supports defaultValue",function() { var message = "-1"; webpage.onPrompt = function (msg, defaultVal) { message = msg; return defaultVal; } var result = webpage.evaluate(function(){ return doPrompt("question", "hello"); }) expect(result).toEqual("hello"); expect(message).toEqual("question"); webpage.close(); }); }); describe("WebPage and onbeforeunload", function(){ var webpage; var url = "http://127.0.0.1:8083/onbeforeunload.html"; var result = { text:'', title:'', buttons:[] }; beforeEach(function() { if (webpage) { return; } webpage = require("webpage").create(); }); it("onConfirm should be called",function() { var loaded = false; webpage.onConfirm = function(text, title, buttons) { result.text = text; result.title = title; result.buttons = buttons return true; } runs(function() { webpage.open(url, function(success){ webpage.sendEvent("click", 5, 5, 'left', 0); window.setTimeout(function(){ loaded = true; }, 1000) }); }); waitsFor(function(){ return loaded;}, 1500); runs(function(){ expect(result.title).toEqual("Are you sure?"); expect(result.buttons[0]).toEqual("Leave Page"); expect(result.buttons[1]).toEqual("Stay on Page"); expect(webpage.title).toEqual('simple hello world'); webpage.close(); }); }); });