diff options
author | Thomas Steur <thomas.steur@googlemail.com> | 2014-05-28 06:44:52 +0400 |
---|---|---|
committer | Thomas Steur <thomas.steur@googlemail.com> | 2014-05-28 06:44:52 +0400 |
commit | ecbc9c27cc4bf44f44ec0b0a806e4a2fce3268a7 (patch) | |
tree | 20e6646b178ef859effc6413c6771ac82b7b7e38 /tests | |
parent | e23557dad21a5ff6d9acd4729c4af4d94ea492dd (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/UI | 0 | ||||
-rw-r--r-- | tests/lib/screenshot-testing/support/app.js | 6 | ||||
-rw-r--r-- | tests/lib/screenshot-testing/support/diff-viewer.js | 103 | ||||
-rwxr-xr-x | tests/travis/upload_artifacts.sh | 3 |
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> '; + expectedUrl = '../expected-ui-screenshots/' + filename; } + + expectedHtml += '<a href="' + expectedUrl + '">Expected</a> '; 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 |