Pngjs:Replace phantomjs dependency with chromium puppeteer (#135)

* pngjs: Replace phantomjs dependency with chromium puppeteer

Signed-off-by: ossdev <ossdev@puresoftware.com>

* pngjs: Replace phantomjs dependency with chromium puppeteer

Signed-off-by: ossdev <ossdev@puresoftware.com>

* Removed Node-v6 and added Node-v12 support from travis
This commit is contained in:
ossdev07 2020-04-09 19:19:20 +05:30 committed by GitHub
parent 257a4c972d
commit 90e00c07fd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 768 additions and 1648 deletions

View file

@ -2,7 +2,7 @@ language: node_js
after_success:
- if [ "$TRAVIS_NODE_VERSION" = "10" ]; then npm run coverage && npm i coveralls@2 && npm run coveralls; fi
node_js:
- "6"
- "8"
- "10"
- "11"
- "12"

2286
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -62,7 +62,7 @@
"connect": "^3.4.0",
"eslint": "^5.15.2",
"istanbul": "^0.4.4",
"phantomjs-prebuilt": "^2.1.7",
"puppeteer": "1.20.0",
"serve-static": "^1.10.0",
"tap-dot": "^2.0.0",
"tape": "^4.0.2"

View file

@ -259,7 +259,7 @@
var tolerance;
if (inImage.src.match(/16\.png/)) {
tolerance = 3; // phantomjs uses a different scaling method.
tolerance = 2; // phantomjs uses a different scaling method.
// In chrome with gamma correction this can be 2.
} else {
tolerance = 0;

View file

@ -1,58 +0,0 @@
/*global phantom:true*/
'use strict';
var page = require('webpage').create();
var last = new Date();
var timeout = 10000;
setInterval(function () {
var results = page.evaluate(function () {
if (window.isFinished && window.isFinished()) {
return window.results;
}
});
if (results) {
var success = true;
var successes = [],
failures = [];
for (var i = 0; i < results.length; i++) {
var result = results[i];
if (result.success) {
successes.push(result.name);
} else {
failures.push(result.name);
}
success = success && result.success;
}
console.log("Success:", successes.join(", "));
if (failures.length) {
console.log("Failure:", failures.join(", "));
}
phantom.exit(success ? 0 : 1);
return;
}
if (new Date() - last > timeout) {
phantom.exit();
}
}, 100);
page.onConsoleMessage = function (msg, lineNum, sourceId) {
//console.log('CONSOLE: ' + msg);
};
page.onError = function (msg, trace) {
console.log('error.onError', msg, trace);
phantom.exit();
};
phantom.onError = function (msg, trace) {
console.log('error.onError', msg, trace);
phantom.exit();
};
page.open("http://localhost:8000");

View file

@ -1,24 +1,42 @@
require("./http-server");
var path = require('path');
var childProcess = require('child_process');
var phantomjs = require('phantomjs-prebuilt');
var binPath = phantomjs.path;
var childArgs = [
path.join(__dirname, 'phantom-compare.js')
];
try {
console.log("Comparing in PhantomJS");
childProcess.execFile(binPath, childArgs, function (err, stdout, stderr) {
// handle results
console.log("Comparison Test Results:");
console.log(stdout);
process.exit(err ? 1 : 0);
});
} catch (e) {
console.log("Error starting phantomjs");
}
require('./http-server')
const puppeteer = require('puppeteer');
const URL = 'http://localhost:8000';
puppeteer.launch({ headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox'] }).then(async browser => {
const page = await browser.newPage();
await page.goto(URL, {waitUntil: 'networkidle0'});
const results = await page.evaluate(() => {
try {
if (window.isFinished && window.isFinished()) {
return window.results;
}
} catch(err) {
reject(err.toString());
console.log("Failed", err);
}
});
console.log("Comparing in Chrome");
console.log("Comparison Test Results:");
await browser.close();
if (results) {
var success = true;
var successes = [],failures = [];
for (var i = 0; i < results.length; i++) {
var result = results[i];
if (result.success) {
successes.push(result.name);
} else {
failures.push(result.name);
}
success = success && result.success;
}
console.log("Success:", successes.join(", "));
if (failures.length) {
console.log("Failure:", failures.join(", "));
}
}
process.exit();
}).catch(function(error) {
console.error(error);
process.exit();
});