From aaa58c58f88405b6562b59d442072210d8ea32e3 Mon Sep 17 00:00:00 2001 From: jef Date: Fri, 10 Mar 2017 18:15:14 +0100 Subject: [PATCH] require is still defined (#1782) change localhost port navigation.js onLongRunningScript Test Fix Bug remove __proto__ method add slimerJS 0.10.3 version into tests --- .travis.yml | 4 ++-- bin/bootstrap.js | 7 +++++++ modules/casper.js | 16 ++++++++++------ modules/cli.js | 2 +- modules/colorizer.js | 2 +- modules/http.js | 12 ++++++++++-- modules/mouse.js | 2 +- modules/pagestack.js | 2 +- modules/tester.js | 3 ++- modules/utils.js | 4 ++-- modules/xunit.js | 2 +- samples/each.js | 1 + tests/site/area.html | 2 +- tests/suites/casper/formfill.js | 2 +- tests/suites/casper/navigation.js | 19 +++++++++---------- tests/suites/casper/sendAjax.js | 4 ++++ 16 files changed, 54 insertions(+), 30 deletions(-) diff --git a/.travis.yml b/.travis.yml index 032d46b6a..a6ab70435 100644 --- a/.travis.yml +++ b/.travis.yml @@ -145,8 +145,8 @@ matrix: addons: firefox: latest-esr - env: > - CASPERJS_ENGINE="slimerjs" ENGINE_VERSION="0.10.2" MAKE_TEST_COMMAND="test" ENGINE_XVFB="1" - ENGINE_ARCHIVE_URL="https://github.com/casperjs/slimerjs-builds/releases/download/v0.10.2/slimerjs-0.10.2.zip" + CASPERJS_ENGINE="slimerjs" ENGINE_VERSION="0.10.3" MAKE_TEST_COMMAND="test" ENGINE_XVFB="1" + ENGINE_ARCHIVE_URL="https://github.com/casperjs/slimerjs-builds/releases/download/v0.10.3/slimerjs-0.10.3.zip" os: linux addons: firefox: latest-esr diff --git a/bin/bootstrap.js b/bin/bootstrap.js index dabf8d6ed..4a4be4976 100755 --- a/bin/bootstrap.js +++ b/bin/bootstrap.js @@ -181,6 +181,13 @@ CasperError.prototype = Object.getPrototypeOf(new Error()); }).join('/'); }; } + + if (phantom.casperEngine === 'slimerjs' && slimer.version.major === 0 && slimer.version.minor <= 9){ + fs.size = function (filename){ + var t = fs.read(filename, "rt"); + return t.length; + }; + } return fs; })(require('fs')); diff --git a/modules/casper.js b/modules/casper.js index 572f1a7e9..ad82a01f8 100644 --- a/modules/casper.js +++ b/modules/casper.js @@ -29,7 +29,7 @@ */ /*global __utils__, CasperError, console, exports, phantom, patchRequire, require:true*/ -var require = patchRequire(require); +require = patchRequire(require); var colorizer = require('colorizer'); var events = require('events'); var fs = require('fs'); @@ -119,6 +119,7 @@ var Casper = function Casper(options) { page: null, pageSettings: { localToRemoteUrlAccessEnabled: true, + javascriptEnabled: true, userAgent: defaultUserAgent }, remoteScripts: [], @@ -724,7 +725,7 @@ Casper.prototype.evaluate = function evaluate(fn, context) { return utils.clone(this.page.evaluate(fn)); } else if (arguments.length === 2) { // check for closure signature if it matches context - if (utils.isObject(context) && eval(fn).length === Object.keys(context).length) { + if (utils.isObject(context) && fn.length === Object.keys(context).length) { /* * in case if user passes argument as one array with only one object. * evaluate shlould return original array with one object @@ -1481,6 +1482,7 @@ Casper.prototype.open = function open(location, settings) { // current request url this.configureHttpAuth(location, settings); this.requestUrl = this.filter('open.location', location) || location; + this.emit('open', this.requestUrl, settings); this.log(f('opening url: %s, HTTP %s', this.requestUrl, settings.method.toUpperCase()), "debug"); // reset resources @@ -1598,7 +1600,7 @@ Casper.prototype.runStep = function runStep(step) { "use strict"; /*eslint max-statements:0*/ this.checkStarted(); - var skipLog = utils.isObject(step.options) && step.options.skipLog === true, + var skipLog = !!step.options && utils.isObject(step.options) && step.options.skipLog === true, stepInfo = f("Step %s %d/%d", step.name || "anonymous", this.step, this.steps.length), stepResult; function getCurrentSuiteId(casper) { @@ -1691,7 +1693,7 @@ Casper.prototype.sendKeys = function(selector, keys, options) { }, selector); this.click(selector); } - var modifiers = utils.computeModifier(options && options.modifiers, + var modifiers = utils.computeModifier(options && options.modifiers || null, this.page.event.modifier); this.page.sendEvent(options.eventType, keys, null, null, modifiers); if (isTextInput && !options.keepFocus) { @@ -2718,6 +2720,8 @@ function createPage(casper) { this.loadInProgress = false; if (this.isPopup) { casper.emit('popup.loaded', this); + } else { + casper.emit('page.loaded', this); } }; @@ -2842,8 +2846,8 @@ function createPage(casper) { casper.options.onPageInitialized.call(casper, page); } }; - page.onLongRunningScript = function onLongRunningScript() { - casper.emit('remote.longRunningScript', this); + page.onLongRunningScript = function onLongRunningScript(message) { + casper.emit('remote.longRunningScript', page, message); }; page.onPrompt = function onPrompt(message, value) { return casper.filter('page.prompt', message, value); diff --git a/modules/cli.js b/modules/cli.js index 7e7ee9a5d..3dade047a 100644 --- a/modules/cli.js +++ b/modules/cli.js @@ -30,7 +30,7 @@ /*global CasperError, console, exports, phantom, patchRequire, require:true*/ -var require = patchRequire(require); +require = patchRequire(require); var utils = require('utils'); var system = require('system'); diff --git a/modules/colorizer.js b/modules/colorizer.js index 66e8dbb8b..0798a6484 100644 --- a/modules/colorizer.js +++ b/modules/colorizer.js @@ -30,7 +30,7 @@ /*global exports, console, patchRequire, require:true*/ -var require = patchRequire(require); +require = patchRequire(require); var fs = require('fs'); var utils = require('utils'); var env = require('system').env; diff --git a/modules/http.js b/modules/http.js index 983515d3b..4cac9e37d 100644 --- a/modules/http.js +++ b/modules/http.js @@ -28,7 +28,7 @@ * */ -var require = patchRequire(require); +require = patchRequire(require); var utils = require('utils'); /* @@ -67,6 +67,14 @@ exports.augmentResponse = function(response) { if (!utils.isHTTPResource(response)) { return; } - response.headers.__proto__ = responseHeaders.prototype; + + // response.headers.__proto__ = responseHeaders.prototype; + Object.setPrototypeOf = Object.setPrototypeOf || function(obj, proto) { + obj.__proto__ = proto; + return obj; + }; + + Object.setPrototypeOf(response.headers, responseHeaders.prototype); + return response; }; diff --git a/modules/mouse.js b/modules/mouse.js index 849e919b8..55ed3f7b4 100644 --- a/modules/mouse.js +++ b/modules/mouse.js @@ -30,7 +30,7 @@ /*global CasperError, exports, patchRequire, require:true*/ -var require = patchRequire(require); +require = patchRequire(require); var utils = require('utils'); var Mouse = function Mouse(casper) { diff --git a/modules/pagestack.js b/modules/pagestack.js index 243543c71..d52f6402a 100644 --- a/modules/pagestack.js +++ b/modules/pagestack.js @@ -30,7 +30,7 @@ /*global CasperError, console, exports, phantom, patchRequire, require:true*/ -var require = patchRequire(require); +require = patchRequire(require); var utils = require('utils'); var f = utils.format; diff --git a/modules/tester.js b/modules/tester.js index f0c523165..cfab46ffb 100644 --- a/modules/tester.js +++ b/modules/tester.js @@ -28,7 +28,7 @@ * */ -var require = patchRequire(require); +require = patchRequire(require); var fs = require('fs'); var events = require('events'); var utils = require('utils'); @@ -114,6 +114,7 @@ var Tester = function Tester(casper, options) { failText: "FAIL", // text to use for a failed test passText: "PASS", // text to use for a succesful test skipText: "SKIP", // text to use for a skipped test + save: false, // false to not save pad: 80 , // maximum number of chars for a result line warnText: "WARN" // text to use for a dubious test }, options); diff --git a/modules/utils.js b/modules/utils.js index f0e0c84b1..5fab452f8 100644 --- a/modules/utils.js +++ b/modules/utils.js @@ -29,7 +29,7 @@ */ -var require = patchRequire(require); +require = patchRequire(require); /** * Provides a better typeof operator equivalent, able to retrieve the array @@ -798,7 +798,7 @@ function unique(array) { r = []; for (var i = 0, len = array.length; i !== len; i++) { var d = array[i]; - if (o[d] !== 1) { + if (typeof o[d] === "undefined") { o[d] = 1; r[r.length] = d; } diff --git a/modules/xunit.js b/modules/xunit.js index 179d992e9..4d1c456c0 100644 --- a/modules/xunit.js +++ b/modules/xunit.js @@ -30,7 +30,7 @@ /*global CasperError, console, exports, phantom, patchRequire, require:true*/ -var require = patchRequire(require); +require = patchRequire(require); var utils = require('utils'); var fs = require('fs'); var TestSuiteResult = require('tester').TestSuiteResult; diff --git a/samples/each.js b/samples/each.js index 0defaed37..167cce9e8 100644 --- a/samples/each.js +++ b/samples/each.js @@ -1,6 +1,7 @@ /*eslint strict:0*/ /*global CasperError, console, phantom, require*/ +require = patchRequire(require); var casper = require("casper").create(); var links = [ diff --git a/tests/site/area.html b/tests/site/area.html index 29a7c4dfe..7e44dbd3e 100644 --- a/tests/site/area.html +++ b/tests/site/area.html @@ -55,7 +55,7 @@
- +