Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@googlemail.com>2014-05-28 06:44:52 +0400
committerThomas Steur <thomas.steur@googlemail.com>2014-05-28 06:44:52 +0400
commitecbc9c27cc4bf44f44ec0b0a806e4a2fce3268a7 (patch)
tree20e6646b178ef859effc6413c6771ac82b7b7e38 /tests
parente23557dad21a5ff6d9acd4729c4af4d94ea492dd (diff)
this is an experiment to generate the diffs on the client side and not on the server side
Diffstat (limited to 'tests')
m---------tests/PHPUnit/UI0
-rw-r--r--tests/lib/screenshot-testing/support/app.js6
-rw-r--r--tests/lib/screenshot-testing/support/diff-viewer.js103
-rwxr-xr-xtests/travis/upload_artifacts.sh3
4 files changed, 27 insertions, 85 deletions
diff --git a/tests/PHPUnit/UI b/tests/PHPUnit/UI
-Subproject 15e1892a561bf7c669d0303e13185860b857a29
+Subproject 63ea53008dd59373bdbd4eda26dd87d70f66515
diff --git a/tests/lib/screenshot-testing/support/app.js b/tests/lib/screenshot-testing/support/app.js
index 9813413ccd..655974bf9f 100644
--- a/tests/lib/screenshot-testing/support/app.js
+++ b/tests/lib/screenshot-testing/support/app.js
@@ -199,10 +199,8 @@ Application.prototype.doRunTests = function () {
}
// build diffviewer
- self.diffViewerGenerator.checkImageMagickCompare(function () {
- self.diffViewerGenerator.generate(function () {
- self.finish();
- });
+ self.diffViewerGenerator.generate(function () {
+ self.finish();
});
});
};
diff --git a/tests/lib/screenshot-testing/support/diff-viewer.js b/tests/lib/screenshot-testing/support/diff-viewer.js
index 2c147c5c29..81ce164d15 100644
--- a/tests/lib/screenshot-testing/support/diff-viewer.js
+++ b/tests/lib/screenshot-testing/support/diff-viewer.js
@@ -14,26 +14,10 @@ var DiffViewerGenerator = function (diffDir) {
this.diffDir = diffDir;
this.outputPath = path.join(diffDir, 'diffviewer.html');
this.failures = [];
- this.isCompareAvailable = true;
-};
-
-DiffViewerGenerator.prototype.checkImageMagickCompare = function (callback) {
- var self = this;
-
- var child = require('child_process').spawn('compare', '--help');
- child.on("exit", function (code) {
- self.isCompareAvailable = code == 0 || code == 1;
-
- if (!self.isCompareAvailable) {
- console.log("Cannot find ImageMagick compare utility, no diffs will be created.");
- }
-
- callback();
- });
};
DiffViewerGenerator.prototype.getDiffPath = function (testInfo) {
- var baseDir = options['assume-artifacts'] ? path.join(PIWIK_INCLUDE_PATH, 'tests/PHPUnit/UI') : testInfo.baseDirectory;
+ var baseDir = path.join(PIWIK_INCLUDE_PATH, 'tests/PHPUnit/UI');
return path.resolve(path.join(baseDir, config.screenshotDiffDir, testInfo.name + '.png'));
};
@@ -47,11 +31,9 @@ DiffViewerGenerator.prototype.generate = function (callback) {
return callback();
}
- console.log("Generating diffs...");
+ console.log("Generating diff file");
- var self = this;
- this.generateDiffs(function () {
- var diffViewerContent = "<html>\
+ var diffViewerContent = "<html>\
<head></head>\
<body>\
<h1>Screenshot Test Failures</h1>\
@@ -63,20 +45,29 @@ DiffViewerGenerator.prototype.generate = function (callback) {
<th>Difference</th>\
</tr>";
- for (var i = 0; i != self.failures.length; ++i) {
- var entry = self.failures[i];
+ for (var i = 0; i != this.failures.length; ++i) {
+ var entry = this.failures[i];
+ var expectedUrl = null;
if (entry.expected) {
- var expectedUrl = self.getUrlForPath(entry.expected),
+ if (options['assume-artifacts']) {
+ require('child_process').spawn('cp', [entry.expected, this.getDiffPath(entry)]);
+ }
+
+ var filename = entry.name + '.png',
+ expectedUrl = filename,
screenshotRepo = options['screenshot-repo'] || 'piwik/piwik-ui-tests',
- pathPrefix = options['screenshot-repo'] ? '/Test/UI' : '',
+ pathPrefix = options['screenshot-repo'] ? '/Test/UI' : '',
expectedUrlGithub = 'https://raw.githubusercontent.com/' + screenshotRepo + '/master' + pathPrefix
- + '/expected-ui-screenshots/' + entry.name + '.png';
+ + '/expected-ui-screenshots/' + filename;
var expectedHtml = '';
+
if (!options['assume-artifacts']) {
- expectedHtml += '<a href="' + expectedUrl + '">Expected</a>&nbsp;';
+ expectedUrl = '../expected-ui-screenshots/' + filename;
}
+
+ expectedHtml += '<a href="' + expectedUrl + '">Expected</a>&nbsp;';
expectedHtml += '<a href="' + expectedUrlGithub + '">[Github]</a>';
} else {
var expectedHtml = '<em>Not found</em>';
@@ -86,7 +77,7 @@ DiffViewerGenerator.prototype.generate = function (callback) {
if (options['assume-artifacts']) {
entry.processedUrl = path.join("../processed-ui-screenshots", path.basename(entry.processed));
} else {
- entry.processedUrl = self.getUrlForPath(entry.processed);
+ entry.processedUrl = this.getUrlForPath(entry.processed);
}
}
@@ -102,7 +93,7 @@ DiffViewerGenerator.prototype.generate = function (callback) {
<td>' + entry.name + entryLocationHint + '</td>\
<td>' + expectedHtml + '</td>\
<td>' + (entry.processed ? ('<a href="' + entry.processedUrl + '">Processed</a>') : '<em>Not found</em>') + '</td>\
- <td>' + (entry.diffUrl ? ('<a href="' + entry.diffUrl + '">Difference</a>') : '<em>Could not create diff.</em>') + '</td>\
+ <td>' + (expectedUrl ? ('<a href="singlediff.html?processed=' + entry.processedUrl + '&expected=' + expectedUrl + '&github=' + expectedUrlGithub + '">Difference</a>') : '<em>Could not create diff.</em>') + '</td>\
</tr>';
}
@@ -111,9 +102,9 @@ DiffViewerGenerator.prototype.generate = function (callback) {
</body>\
</html>';
- fs.write(self.outputPath, diffViewerContent, "w");
+ fs.write(this.outputPath, diffViewerContent, "w");
- console.log("Failures encountered. View all diffs at: " + self.outputPath);
+ console.log("Failures encountered. View all diffs at: " + this.outputPath);
console.log();
console.log("If processed screenshots are correct, you can copy the generated screenshots to the expected "
+ "screenshot folder.");
@@ -122,56 +113,6 @@ DiffViewerGenerator.prototype.generate = function (callback) {
+ "Piwik developers will be aware of it.");
callback();
- });
-};
-
-DiffViewerGenerator.prototype.generateDiffs = function (callback, i) {
- i = i || 0;
-
- if (i >= this.failures.length
- || !this.isCompareAvailable
- ) {
- try {
- callback();
- } catch (ex) {
- console.error("Fatal error: failed to generate diffviewer: " + ex.stack);
- phantom.exit(-1);
- }
- return;
- }
-
- var entry = this.failures[i];
-
- if (entry.expected
- && entry.processed
- ) {
- var diffPath = this.getDiffPath(entry);
-
- var child = require('child_process').spawn('compare', [entry.expected, entry.processed, diffPath]);
-
- child.stdout.on("data", function (data) {
- fs.write("/dev/stdout", data, "w");
- });
-
- child.stderr.on("data", function (data) {
- fs.write("/dev/stderr", data, "w");
- });
-
- var self = this;
- child.on("exit", function (code) {
- if (!code) {
- console.log("Saved diff to " + diffPath);
-
- if (fs.exists(diffPath)) {
- entry.diffUrl = entry.name + '.png';
- }
- }
-
- self.generateDiffs(callback, i + 1);
- });
- } else {
- this.generateDiffs(callback, i + 1);
- }
};
exports.DiffViewerGenerator = DiffViewerGenerator; \ No newline at end of file
diff --git a/tests/travis/upload_artifacts.sh b/tests/travis/upload_artifacts.sh
index 4f73bbb4b0..0708aecac4 100755
--- a/tests/travis/upload_artifacts.sh
+++ b/tests/travis/upload_artifacts.sh
@@ -48,6 +48,9 @@ else
echo "[NOTE] screenshot diff dir:"
echo "`pwd`/screenshot-diffs"
+ cp $base_dir/tests/lib/resemblejs/resemble.js screenshot-diffs
+ cp $base_dir/libs/jquery/jquery.js screenshot-diffs
+
echo "[NOTE] uploading following diffs:"
ls screenshot-diffs