From 1c274da64dd6ea5d681efd3808883f61942f951a Mon Sep 17 00:00:00 2001 From: Benaka Moorthi <benaka.moorthi@gmail.com> Date: Sun, 18 Aug 2013 17:19:29 -0400 Subject: [PATCH] Refs #4087, rewrote UI integration tests to use phantomjs or slimerjs and added (disabled) UI tests to travis build config. Notes: * Modified main page-loading JavaScript to use ajaxHelper so it's possible to know when all AJAX requests are made. * Add setUrl method to ajaxHelper so it can be used when a doing AJAX w/ a URL instead of an object containing query parameters. --- .travis.yml | 3 +- core/AssetManager.php | 2 + plugins/CoreHome/javascripts/broadcast.js | 17 +-- plugins/CoreHome/stylesheets/coreHome.less | 1 - plugins/Zeitgeist/javascripts/ajaxHelper.js | 61 ++++++-- tests/PHPUnit/IntegrationTestCase.php | 12 +- tests/PHPUnit/TestingEnvironment.php | 7 + tests/PHPUnit/UI/UIIntegrationTest.php | 122 ++++++++++------ tests/resources/screenshot-capture/capture.js | 126 ++++++++++++++++ .../jquery.waitforimages.js | 136 ++++++++++++++++++ .../screenshot-override/open_sans.woff | Bin 0 -> 21956 bytes .../screenshot-override/open_sans_b.woff | Bin 0 -> 22748 bytes .../screenshot-override/open_sans_bi.woff | Bin 0 -> 21184 bytes .../screenshot-override/open_sans_i.woff | Bin 0 -> 21092 bytes .../screenshot-override/override.css | 28 ++++ .../resources/screenshot-override/override.js | 41 ++++++ tests/travis/prepare.sh | 14 ++ tests/travis/upload_artifacts.sh | 34 +++-- 18 files changed, 526 insertions(+), 78 deletions(-) create mode 100644 tests/resources/screenshot-capture/capture.js create mode 100644 tests/resources/screenshot-override/jquery.waitforimages.js create mode 100644 tests/resources/screenshot-override/open_sans.woff create mode 100644 tests/resources/screenshot-override/open_sans_b.woff create mode 100644 tests/resources/screenshot-override/open_sans_bi.woff create mode 100644 tests/resources/screenshot-override/open_sans_i.woff create mode 100644 tests/resources/screenshot-override/override.css create mode 100644 tests/resources/screenshot-override/override.js diff --git a/.travis.yml b/.travis.yml index 5a28f29340..0ade48a0fe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,9 +12,10 @@ env: - TEST_SUITE=PluginTests - TEST_SUITE=CoreTests - TEST_SUITE=IntegrationTests + #- TEST_DIR=UI global: secure: "AMhZmPZx4SUcuZRBzGHlQPxzM4D8FvFB3UThDa52gbi9KIBrwcumzV2VGi6B\n5fgjwtB4XTE1In7qhY2HMikPWBmWYYOQ5QcMPJsqqHt4iMmahx8WKzne6NOk\nNpqAuje/fulNGeP2LJZi0nrub3Fh4VwXaOvpNloKNQN/2JuqPtM=" - + # Run PHP 5.4 for aa tests to generate # code coverage. diff --git a/core/AssetManager.php b/core/AssetManager.php index 086f538a3f..541157dc2f 100644 --- a/core/AssetManager.php +++ b/core/AssetManager.php @@ -284,6 +284,7 @@ class AssetManager 'plugins/Zeitgeist/stylesheets/', 'plugins/', 'plugins/Dashboard/stylesheets/dashboard.less', + 'tests/', ); return self::prioritySort($priorityCssOrdered, $cssFiles); @@ -380,6 +381,7 @@ class AssetManager 'plugins/Zeitgeist/javascripts/', 'plugins/CoreHome/javascripts/broadcast.js', 'plugins/', + 'tests/', ); return self::prioritySort($priorityJsOrdered, $jsFiles); diff --git a/plugins/CoreHome/javascripts/broadcast.js b/plugins/CoreHome/javascripts/broadcast.js index 7b0a3bfe24..761404efbd 100644 --- a/plugins/CoreHome/javascripts/broadcast.js +++ b/plugins/CoreHome/javascripts/broadcast.js @@ -394,16 +394,13 @@ var broadcast = { } } - var ajaxRequest = { - type: 'POST', - url: urlAjax, - dataType: 'html', - async: true, - error: broadcast.customAjaxHandleError, // Callback when the request fails - success: sectionLoaded, // Callback when the request succeeds - data: {} - }; - globalAjaxQueue.push($.ajax(ajaxRequest)); + var ajax = new ajaxHelper(); + ajax.setUrl(urlAjax); + ajax.setErrorCallback(broadcast.customAjaxHandleError); + ajax.setCallback(sectionLoaded); + ajax.setFormat('html'); + ajax.send(); + return false; }, diff --git a/plugins/CoreHome/stylesheets/coreHome.less b/plugins/CoreHome/stylesheets/coreHome.less index 2c82ad95b4..71a130f999 100644 --- a/plugins/CoreHome/stylesheets/coreHome.less +++ b/plugins/CoreHome/stylesheets/coreHome.less @@ -40,7 +40,6 @@ h3 { .pageWrap { border-left: 1px solid #DDDDDD; border-right: 1px solid #DDDDDD; - max-height: 681px; min-height: 10px; overflow: visible; padding: 15px 15px 0; diff --git a/plugins/Zeitgeist/javascripts/ajaxHelper.js b/plugins/Zeitgeist/javascripts/ajaxHelper.js index f12d451bbe..b3915f5897 100644 --- a/plugins/Zeitgeist/javascripts/ajaxHelper.js +++ b/plugins/Zeitgeist/javascripts/ajaxHelper.js @@ -11,19 +11,32 @@ * @type {Array} array holding XhrRequests with automatic cleanup */ var globalAjaxQueue = []; +globalAjaxQueue.active = 0; /** - * Extend Array.push with automatic cleanup for finished requests - * - * @return {Object} + * Removes all finished requests from the queue. + * + * @return {void} */ -globalAjaxQueue.push = function () { - // cleanup ajax queue +globalAjaxQueue.clean = function () { for (var i = this.length; i--;) { if (!this[i] || this[i].readyState == 4) { this.splice(i, 1); } } +}; + +/** + * Extend Array.push with automatic cleanup for finished requests + * + * @return {Object} + */ +globalAjaxQueue.push = function () { + this.active += arguments.length; + + // cleanup ajax queue + this.clean(); + // call original array push return Array.prototype.push.apply(this, arguments); }; @@ -40,6 +53,8 @@ globalAjaxQueue.abort = function () { } // remove all elements from array this.splice(0, this.length); + + this.active = 0; }; /** @@ -85,6 +100,13 @@ function ajaxHelper() { */ this.getParams = {}; + /** + * Base URL used in the AJAX request. Can be set by setUrl. + * @type {String} + * @see ajaxHelper.setUrl + */ + this.getUrl = 'index.php?'; + /** * Params to be passed as GET params * @type {Object} @@ -119,6 +141,10 @@ function ajaxHelper() { * @return {void} */ this.addParams = function (params, type) { + if (typeof params == 'string') { + params = broadcast.getValuesFromUrl(params); + } + for (var key in params) { if(type.toLowerCase() == 'get') { this.getParams[key] = params[key]; @@ -128,6 +154,15 @@ function ajaxHelper() { } }; + /** + * Sets the base URL to use in the AJAX request. + * + * @param {string} url + */ + this.setUrl = function (url) { + this.getUrl = url; + }; + /** * Gets this helper instance ready to send a bulk request. Each argument to this * function is a single request to use. @@ -300,7 +335,10 @@ function ajaxHelper() { var parameters = this._mixinDefaultGetParams(this.getParams); - var url = 'index.php?'; + var url = this.getUrl; + if (url[url.length - 1] != '?') { + url += '&'; + } // we took care of encoding &segment properly already, so we don't use $.param for it ($.param URL encodes the values) if(parameters['segment']) { @@ -328,10 +366,17 @@ function ajaxHelper() { $(that.errorElement).html(response.message).fadeIn(); piwikHelper.lazyScrollTo(that.errorElement, 250); } - return; + } else { + that.callback(response); } - that.callback(response); + --globalAjaxQueue.active; + var piwik = window.piwik; + if (piwik + && piwik.ajaxRequestFinished + ) { + piwik.ajaxRequestFinished(); + } }, data: this._mixinDefaultPostParams(this.postParams) }; diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php index cfcf72c581..ed567452ae 100755 --- a/tests/PHPUnit/IntegrationTestCase.php +++ b/tests/PHPUnit/IntegrationTestCase.php @@ -635,7 +635,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase $abandonedCarts = false, $idGoal = false, $apiModule = false, $apiAction = false, $otherRequestParameters = array(), $supertableApi = false, $fileExtension = false) { - list($pathProcessed, $pathExpected) = $this->getProcessedAndExpectedDirs(); + list($pathProcessed, $pathExpected) = self::getProcessedAndExpectedDirs(); if ($periods === false) { $periods = 'day'; @@ -866,9 +866,9 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase return $input; } - protected function getProcessedAndExpectedDirs() + protected static function getProcessedAndExpectedDirs() { - $path = $this->getPathToTestDirectory(); + $path = self::getPathToTestDirectory(); return array($path . '/processed/', $path . '/expected/'); } @@ -879,7 +879,7 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase $filename .= ".$format"; } - list($processedDir, $expectedDir) = $this->getProcessedAndExpectedDirs(); + list($processedDir, $expectedDir) = self::getProcessedAndExpectedDirs(); return array($processedDir . $filename, $expectedDir . $filename); } @@ -1062,9 +1062,9 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase } /** - * Path where expected/processed output files are stored. Can be overridden. + * Path where expected/processed output files are stored. */ - public function getPathToTestDirectory() + public static function getPathToTestDirectory() { return dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Integration'; } diff --git a/tests/PHPUnit/TestingEnvironment.php b/tests/PHPUnit/TestingEnvironment.php index 99d2822ef6..171ce74901 100644 --- a/tests/PHPUnit/TestingEnvironment.php +++ b/tests/PHPUnit/TestingEnvironment.php @@ -23,5 +23,12 @@ class Piwik_TestingEnvironment Piwik_AddAction('FrontController.dispatch', function() { \Piwik\Plugins\CoreVisualizations\Visualizations\Cloud::$debugDisableShuffle = true; }); + Piwik_AddAction('AssetManager.getCssFiles', function(&$cssFiles) { + $cssFiles[] = 'tests/resources/screenshot-override/override.css'; + }); + Piwik_AddAction('AssetManager.getJsFiles', function(&$jsFiles) { + $jsFiles[] = 'tests/resources/screenshot-override/jquery.waitforimages.js'; + $jsFiles[] = 'tests/resources/screenshot-override/override.js'; + }); } } \ No newline at end of file diff --git a/tests/PHPUnit/UI/UIIntegrationTest.php b/tests/PHPUnit/UI/UIIntegrationTest.php index 7d63301b8e..341756fa2b 100644 --- a/tests/PHPUnit/UI/UIIntegrationTest.php +++ b/tests/PHPUnit/UI/UIIntegrationTest.php @@ -13,7 +13,7 @@ use Piwik\Plugins\VisitsSummary\API; /** * Tests UI code by grabbing screenshots of webpages and comparing with expected files. * - * Uses cutycapt. + * Uses slimerjs or phantomjs. * * TODO: * - allow instrumentation javascript to be injected before screenshot is taken (so we can, say, @@ -22,10 +22,9 @@ use Piwik\Plugins\VisitsSummary\API; class Test_Piwik_Integration_UIIntegrationTest extends IntegrationTestCase { const IMAGE_TYPE = 'png'; - const CUTYCAPT_DELAY = 1000; + const CAPTURE_PROGRAM = 'phantomjs'; public static $fixture = null; // initialized below class definition - private static $useXvfb = false; public static function createAccessInstance() { @@ -35,11 +34,21 @@ class Test_Piwik_Integration_UIIntegrationTest extends IntegrationTestCase public static function setUpBeforeClass() { - if (self::isXvfbAvailable()) { - self::$useXvfb = true; - } else if (!self::isCutyCaptAvailable()) { - self::markTestSkipped("cutycapt is not available, skipping UI integration tests. " - . "(install with 'sudo apt-get intsall cutycapt')"); + if (!self::isXvfbAvailable()) { + self::markTestSkipped("xvfb is not available, skipping UI integration tests. (install with 'sudo apt-get install xvfb')"); + } else if (self::CAPTURE_PROGRAM == 'slimerjs' + && !self::isSlimerJsAvailable() + ) { + self::markTestSkipped("slimerjs is not available, skipping UI integration tests. " + . "(install by downloading http://slimerjs.org/download.html)"); + } else if (self::CAPTURE_PROGRAM == 'phantomjs' + && !self::isPhantomJsAvailable() + ) { + self::markTestSkipped("phantomjs is not available, skipping UI integration tests. " + . "(install by downloading http://phantomjs.org/download.html)"); + } else { + self::markTestSkipped("No way to take screenshots of URLs, skipping UI integration tests. (Enable by installing " + . "phantomjs (http://phantomjs.org/download.html) or slimerjs (http://slimerjs.org/download.html)."); } parent::setUpBeforeClass(); @@ -48,10 +57,35 @@ class Test_Piwik_Integration_UIIntegrationTest extends IntegrationTestCase // launch archiving so tests don't run out of time API::getInstance()->get(self::$fixture->idSite, 'year', '2012-08-09'); + + // make sure processed & expected dirs exist + list($processedDir, $expectedDir) = self::getProcessedAndExpectedDirs(); + if (!is_dir($processedDir)) { + mkdir($processedDir); + } + if (!is_dir($expectedDir)) { + mkdir($expectedDir); + } + + // run slimerjs/phantomjs w/ all urls so we only invoke it once + $urls = array(); + foreach (self::getUrlsForTesting() as $testInfo) { + list($name, $urlQuery) = $testInfo; + + list($processedScreenshotPath, $expectedScreenshotPath) = self::getProcessedAndExpectedScreenshotPaths($name); + $urls[] = array($processedScreenshotPath, self::getProxyUrl() . $urlQuery); + } + + echo "Generating screenshots...\n"; + self::runCaptureProgram($urls); } public static function tearDownAfterClass() { + if (file_exists("C:\\nppdf32Log\\debuglog.txt")) { // remove slimerjs oddity + unlink("C:\\nppdf32Log\\debuglog.txt"); + } + if (!Zend_Registry::get('db')) { Piwik::createDatabaseObject(); } @@ -63,14 +97,6 @@ class Test_Piwik_Integration_UIIntegrationTest extends IntegrationTestCase { parent::setUp(); - list($processedDir, $expectedDir) = $this->getProcessedAndExpectedDirs(); - if (!is_dir($processedDir)) { - mkdir($processedDir); - } - if (!is_dir($expectedDir)) { - mkdir($expectedDir); - } - if (!Zend_Registry::get('db')) { Piwik::createDatabaseObject(); } @@ -84,7 +110,7 @@ class Test_Piwik_Integration_UIIntegrationTest extends IntegrationTestCase \Zend_Registry::set('db', false); } - public function getUrlsForTesting() + public static function getUrlsForTesting() { $generalParams = 'idSite=1&period=week&date=2012-08-09'; $evolutionParams = 'idSite=1&period=day&date=2012-08-11&evolution_day_last_n=30'; @@ -196,33 +222,26 @@ class Test_Piwik_Integration_UIIntegrationTest extends IntegrationTestCase */ public function testUIUrl($name, $urlQuery) { - list($processedDir, $expectedDir) = $this->getProcessedAndExpectedDirs(); - - $processedScreenshotPath = $processedDir . "$name." . self::IMAGE_TYPE; - $expectedScreenshotPath = $expectedDir . "$name." . self::IMAGE_TYPE; - - // run cutycapt w/ url and output to /processed-ui-screenshots/$name.svg - $this->runCutyCapt($urlQuery, $processedScreenshotPath); + list($processedScreenshotPath, $expectedScreenshotPath) = self::getProcessedAndExpectedScreenshotPaths($name); // compare processed w/ expected $this->compareScreenshot($name, $expectedScreenshotPath, $processedScreenshotPath, $urlQuery); } - private function runCutyCapt($urlQuery, $processedPath) + private static function runCaptureProgram($urlInfo) { - $url = self::getProxyUrl() . $urlQuery; - - $cmd = "cutycapt --url=\"$url\" --out=\"$processedPath\" --min-width=1366 --delay=".self::CUTYCAPT_DELAY." 2>&1"; - if (self::$useXvfb) { - $cmd = 'xvfb-run --server-args="-screen 0, 1024x768x24" ' . $cmd; - } + file_put_contents(PIWIK_INCLUDE_PATH . '/tmp/urls.txt', json_encode($urlInfo)); + $cmd = self::CAPTURE_PROGRAM . " \"" . PIWIK_INCLUDE_PATH . "/tests/resources/screenshot-capture/capture.js\" 2>&1"; + $cmd = 'xvfb-run --server-args="-screen 0, 1024x768x24" ' . $cmd; exec($cmd, $output, $result); - - if ($result !== 0) { - throw new Exception("cutycapt failed: " . implode("\n", $output) . "\n\ncommand used: $cmd"); + $output = implode("\n", $output); + if ($result !== 0 + || strpos($output, "ERROR") !== false + ) { + echo self::CAPTURE_PROGRAM . " failed: " . $output . "\n\ncommand used: $cmd\n"; + throw new Exception("phantomjs failed"); } - return $output; } @@ -241,21 +260,40 @@ class Test_Piwik_Integration_UIIntegrationTest extends IntegrationTestCase $this->assertTrue($expected == $processed, "screenshot compare failed for '$processedPath'"); } - private static function isCutyCaptAvailable() + private static function isSlimerJsAvailable() { - exec("cutycapt --help 2>&1", $output, $result); - return $result === 0 || $result === 1; + return self::isProgramAvailable('slimerjs'); + } + + private static function isPhantomJsAvailable() + { + return self::isProgramAvaialble('phantomjs'); } private static function isXvfbAvailable() { - exec("xvfb-run --help 2>&1", $output, $result); + return self::isProgramAvailable('xvfb-run'); + } + + private static function isProgramAvailable($name) + { + exec($name . ' --help 2>&1', $output, $result); return $result === 0 || $result === 1; } + + private static function getProcessedAndExpectedScreenshotPaths($name) + { + list($processedDir, $expectedDir) = self::getProcessedAndExpectedDirs(); + + $processedScreenshotPath = $processedDir . "$name." . self::IMAGE_TYPE; + $expectedScreenshotPath = $expectedDir . "$name." . self::IMAGE_TYPE; + + return array($processedScreenshotPath, $expectedScreenshotPath); + } - protected function getProcessedAndExpectedDirs() + protected static function getProcessedAndExpectedDirs() { - $path = $this->getPathToTestDirectory() . '/../UI'; + $path = self::getPathToTestDirectory() . '/../UI'; return array($path . '/processed-ui-screenshots/', $path . '/expected-ui-screenshots/'); } @@ -265,4 +303,4 @@ class Test_Piwik_Integration_UIIntegrationTest extends IntegrationTestCase } } -Test_Piwik_Integration_UIIntegrationTest::$fixture = new Test_Piwik_Fixture_ManySitesImportedLogsWithXssAttempts(); +Test_Piwik_Integration_UIIntegrationTest::$fixture = new Test_Piwik_Fixture_ManySitesImportedLogsWithXssAttempts(); \ No newline at end of file diff --git a/tests/resources/screenshot-capture/capture.js b/tests/resources/screenshot-capture/capture.js new file mode 100644 index 0000000000..34ac2f8068 --- /dev/null +++ b/tests/resources/screenshot-capture/capture.js @@ -0,0 +1,126 @@ +var fs = require('fs'); +var app = typeof slimer === 'undefined' ? phantom : slimer; +var readFileSync = fs.readFileSync || fs.read; + +var PageRenderer = function() { + this.start = new Date(); + + this.urlIndex = 0; + this.urls = JSON.parse(readFileSync('../../tmp/urls.txt')); + + this.webpage = require('webpage').create(); + this.outputPath = ''; + this.url = ''; + + this._setupWebpageEvents(); + this._setScriptTimeout(); +}; + +PageRenderer.prototype = { + renderAll: function () { + this._saveCurrentUrl(); + }, + + _saveCurrentUrl: function () { + if (this.urlIndex >= this.urls.length) { + app.exit(); + return; + } + + this.outputPath = this.urls[this.urlIndex][0]; + this.url = this.urls[this.urlIndex][1]; + + console.log("SAVING " + this.url + " at " + this._getElapsedExecutionTime()); + + this.webpage.viewportSize = {width:1350, height:768}; + this.webpage.open(this.url); + + this._setPageTimeouts(); + }, + + _setPageTimeouts: function () { + var url = this.url, self = this; + this.webpage.onLoadFinished = function () { + // check that we're still on the same url + if (url != self.url) { + return; + } + + // in case there are no ajax requests, try triggering after a sec + setTimeout(function () { + if (url == self.url) { + self.webpage.evaluate(function () { + window.piwik.ajaxRequestFinished(); + }); + } + }, 1000) + + // only allowed at most one minute to load + setTimeout(function () { + if (url == self.url) { + self.webpage.evaluate(function () { + window.piwik._triggerRenderInsane(); + }); + } + }, 1000 * 60); + }; + }, + + _setupWebpageEvents: function () { + this.webpage.onError = function (message) { + console.log("Webpage error: " + message); + }; + + var self = this; + this.webpage.onConsoleMessage = function (message) { + if (message == "__AJAX_DONE__") { + try { + self._setCorrectViewportSize(); + self.webpage.render(self.outputPath); + + self._renderNextUrl(); + } catch (e) { + console.log("ERROR: " + e.message); + app.exit(1); + } + } else { + console.log("LOGGED: " + message); + } + }; + }, + + _renderNextUrl: function () { + ++this.urlIndex; + this._saveCurrentUrl(); + }, + + _setCorrectViewportSize: function () { + this.webpage.viewportSize = {width:1350, height:768}; + var height = Math.max(768, this.webpage.evaluate(function() { + return document.body.offsetHeight; + })); + this.webpage.viewportSize = {width:1350, height: height}; + }, + + _getElapsedExecutionTime: function () { + var now = new Date(), + elapsed = now.getTime() - this.start.getTime(); + + return (elapsed / 1000.0) + "s"; + }, + + _setScriptTimeout: function () { + setTimeout(function() { + console.log("ERROR: Timed out!"); + app.exit(1); + }, Math.max(1000 * 15 * this.urls.length, 1000 * 60 * 5)); + }, +}; + +try { + var renderer = new PageRenderer(); + renderer.renderAll(); +} catch (e) { + console.log("ERROR: " + e.message); + app.exit(1); +} \ No newline at end of file diff --git a/tests/resources/screenshot-override/jquery.waitforimages.js b/tests/resources/screenshot-override/jquery.waitforimages.js new file mode 100644 index 0000000000..eba523b8bb --- /dev/null +++ b/tests/resources/screenshot-override/jquery.waitforimages.js @@ -0,0 +1,136 @@ +/*! waitForImages jQuery Plugin - v1.5.0 - 2013-07-20 +* https://github.com/alexanderdickson/waitForImages +* Copyright (c) 2013 Alex Dickson; Licensed MIT */ +;(function ($) { + // Namespace all events. + var eventNamespace = 'waitForImages'; + + // CSS properties which contain references to images. + $.waitForImages = { + hasImageProperties: ['backgroundImage', 'listStyleImage', 'borderImage', 'borderCornerImage', 'cursor'] + }; + + // Custom selector to find `img` elements that have a valid `src` attribute and have not already loaded. + $.expr[':'].uncached = function (obj) { + // Ensure we are dealing with an `img` element with a valid `src` attribute. + if (!$(obj).is('img[src!=""]')) { + return false; + } + + // Firefox's `complete` property will always be `true` even if the image has not been downloaded. + // Doing it this way works in Firefox. + var img = new Image(); + img.src = obj.src; + return !img.complete; + }; + + $.fn.waitForImages = function (finishedCallback, eachCallback, waitForAll) { + + var allImgsLength = 0; + var allImgsLoaded = 0; + + // Handle options object. + if ($.isPlainObject(arguments[0])) { + waitForAll = arguments[0].waitForAll; + eachCallback = arguments[0].each; + // This must be last as arguments[0] + // is aliased with finishedCallback. + finishedCallback = arguments[0].finished; + } + + // Handle missing callbacks. + finishedCallback = finishedCallback || $.noop; + eachCallback = eachCallback || $.noop; + + // Convert waitForAll to Boolean + waitForAll = !! waitForAll; + + // Ensure callbacks are functions. + if (!$.isFunction(finishedCallback) || !$.isFunction(eachCallback)) { + throw new TypeError('An invalid callback was supplied.'); + } + + return this.each(function () { + // Build a list of all imgs, dependent on what images will be considered. + var obj = $(this); + var allImgs = []; + // CSS properties which may contain an image. + var hasImgProperties = $.waitForImages.hasImageProperties || []; + // To match `url()` references. + // Spec: http://www.w3.org/TR/CSS2/syndata.html#value-def-uri + var matchUrl = /url\(\s*(['"]?)(.*?)\1\s*\)/g; + + if (waitForAll) { + + // Get all elements (including the original), as any one of them could have a background image. + obj.find('*').addBack().each(function () { + var element = $(this); + + // If an `img` element, add it. But keep iterating in case it has a background image too. + if (element.is('img:uncached')) { + allImgs.push({ + src: element.attr('src'), + element: element[0] + }); + } + + $.each(hasImgProperties, function (i, property) { + var propertyValue = element.css(property); + var match; + + // If it doesn't contain this property, skip. + if (!propertyValue) { + return true; + } + + // Get all url() of this element. + while (match = matchUrl.exec(propertyValue)) { + allImgs.push({ + src: match[2], + element: element[0] + }); + } + }); + }); + } else { + // For images only, the task is simpler. + obj.find('img:uncached') + .each(function () { + allImgs.push({ + src: this.src, + element: this + }); + }); + } + + allImgsLength = allImgs.length; + allImgsLoaded = 0; + + // If no images found, don't bother. + if (allImgsLength === 0) { + finishedCallback.call(obj[0]); + } + + $.each(allImgs, function (i, img) { + + var image = new Image(); + + // Handle the image loading and error with the same callback. + $(image).on('load.' + eventNamespace + ' error.' + eventNamespace, function (event) { + allImgsLoaded++; + + // If an error occurred with loading the image, set the third argument accordingly. + eachCallback.call(img.element, allImgsLoaded, allImgsLength, event.type == 'load'); + + if (allImgsLoaded == allImgsLength) { + finishedCallback.call(obj[0]); + return false; + } + + }); + + image.src = img.src; + }); + }); + }; +}(jQuery)); diff --git a/tests/resources/screenshot-override/open_sans.woff b/tests/resources/screenshot-override/open_sans.woff new file mode 100644 index 0000000000000000000000000000000000000000..55b25f867099eb26c436b1c9fecff14a51290d46 GIT binary patch literal 21956 zcmYg%V~{946YlD)ZJTFp>#S|twr$(CZQHhO+uptVe)s;ksd_5uXS&l}>8Y7aGI5a+ z76t$W_$^9<0Pz3S(UHIM|Cs-z|Gx+eD@p+X09yWX*#AMZ(hWyOftKNy3;mU~exaMk z-2-c2rDyxgo&Lh~7xj^+n`s8lj`#ooz_PzOYQM;blR_^vwl%T(<thOHK*|6Bz#6^v znh{L&9DZ%VReyE<iv}J51%SxJ(#`mn`|XRl2LM1$v9hnK$<#>C5CDLO{8xwZ7c6fq z$m^!R<S(cBE93ow7`6rE-PFp_^_TMm004sf^`)BXq5@=LWN!@sz!wPs0E-L&Km-Dv z3<qIpWAJM$o%<Va^?z_qF_5&<bN!7)_P?0%{{xT~pt!Z3mC-Nv%L5$%0DwYlhuZhs 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 V`l^D1+v7dzXWE*Ozus}S{{vS5Z1n&D literal 0 HcmV?d00001 diff --git a/tests/resources/screenshot-override/open_sans_b.woff b/tests/resources/screenshot-override/open_sans_b.woff new file mode 100644 index 0000000000000000000000000000000000000000..27619e7cea1c29f9d71567b78470fdd705c174dc GIT binary patch literal 22748 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 literal 0 HcmV?d00001 diff --git a/tests/resources/screenshot-override/open_sans_bi.woff b/tests/resources/screenshot-override/open_sans_bi.woff new file mode 100644 index 0000000000000000000000000000000000000000..e12c3a9f273c2f0e4952293bb852406c2ab1eb0a GIT binary patch literal 21184 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 literal 0 HcmV?d00001 diff --git a/tests/resources/screenshot-override/open_sans_i.woff b/tests/resources/screenshot-override/open_sans_i.woff new file mode 100644 index 0000000000000000000000000000000000000000..cedefb8f6ff406c6b77e75ae55ee88e2bd88dc17 GIT binary patch literal 21092 zcmcG#V{k7)_b&R2ZQFLT;~m?!ZQI(hZ5unbZSL5%?d0Tr|EKDl`{mwGcdDLQYdzJ^ zbkFLZny%_vZgQfc03g86rDzO5{ErQ>|B3(0{3rUqFHuot82|vt`iH~)546|fq~(+t zn18sipIGMy`uWn$F-A59_CMUo56pj1A9b>kZsh7r2mpY{|Flv2K^}ZB29~M4navMZ z1^|GT0{{?>z6Q-mW(H0_T1e%eHvbt7A^;6QVrK1O`okFm0L+2_fCQjtLIuOz#Na39 z`q2Vde!%upi8^imL;i3ZKQYk{Na6WFzszl%-2njZpAZ=9r!RHmO+jWW6GvMBfam8O z;86hp5>VI_1So4eqaUpl<Ii}j{{yXBNl6<6_n)yy@BD}f{{vthz?-dsjR^qolLi3r zB>(^}VhQ;MZExq~3;@X8{OCM>a2IHOx@hlc@}pJwPp)2mI4I?Sl*At&=m&tYa66{| zS|jn^|JutHP4_G#ebZgDtlr-7-af9##k7C`1$;pkJ!5erLw$YyJyRniQxgM2Lyz9x zhphksB5cYsph4J>n7(P)C|GD{tCfTAaK=Xa2WAmUM#gD~u{!r!TM$KldVriV9K}y3 z|9QT?zNx=H7Pu%lqB_U{Q{XEtEQ)_4Fk(I6lq=*rDkQ2;dL+%3X;T4FAx<$)NnWv5 z(O!X4LH+)lPyG-$FM_ZP+5ij+3@Z;>DlOtW_M701@78a3``d5(!{<}~JV*wCjaU6y ze>mt10t(?*e)B$9lr^lqNt85yAe0W!EDddy^#yL0_Qvl{?+@TW!G7Wb!#(5##edB8 zj(5-zlH=4BmS@-*nrmF`o^RkGqQm4Rrbp;0s!MFmu21kWveWd{wpaK$x?8;6zF$BA z0)0gJ2D?b{3Uf?#4!2O@ur`<3n~7$VTAk)&^~Dov)w)flmv1gOY_?nNChIYmUar@h zBl1ZJ86NqD1_EqC8t6hJv>}GzArFqV=Z=<`suz~h(;#(DR#*ucnxzE1j(Z2IPNlNf z#vG&euV+J2{ORK?$5@)48D1T46w()&T+s&OS#1pncs#nJz4lemlyHDjDX*BHJfj#O zn%x*}f|E*VwAAI8@B`7}!xF=yU}1js0No-U@F5{W{d+VU|6cyq{2uz$y8UJiTIu0| zH3ou*T%4L6wNEtw7vd8l7?2Ku4-pmh1#HmbAN|aqi^`1Bx+v-v8aON_vC=r>B2lI7 zMZbQkb3!vem9@>-ip#tqEDOzv05Q3d=U$RfN%rmEDDm%93P&c+!!@DrP~0^wPV(i4 zu4EZPmPJUb?PuSs=Pi26_Z!05cdyIMrD-`n-naZ$pTcgP`!35v?xv>K%VG9&t4ck; z$3u)~HC~2PbUqsNt1-FF4j3no_vy)pg#%$%Z|h$yh7PL8y+Q<{(8PL?MGS?WZKNN; z)oS#w_2_|NpgR;wNssLT#-PNg@`G~DAn*eDhlvQZDwgHdbZvBOE8xX(z+ZPoC-*@q z!;b_xu%O!Mk0cG#sL_nkf#(IG<q;KVybC$5Mtp<V9?Yy7$&34Aj^Sj9O08M_Xtd+= ze;8~X8*0%%9|sLrEhHnk9}D3x8XK=Ut8tQ~;L_rA6zVFVpo~;7*@=drlBcId6g|=S zuGcRpwWnQ-Dc&>&#Q${Ph7pYP2>D{A6hTPMeChUP69`Fo^3p0T99_BO9K9#uio!Ib z-r|I;$E$sBi537ctJZEaY6hx+byw<mW??(xjj&Q#I$(-@x^<CISz}SOX?vfMY+8#M zg?)9T9>Xu>K<J0+bmPM|>#p1Mi~SXXQ_UxDM<RZ)m2g{hxL;=D{w_5Yhe-&6?Vz8t z-%`7P1UqSRriO7n&}M9^$Mr``I9imyzvZ>?6q;)CqO5C~YK|dNGIuVDjmj09<?cUy z3&tj~N%J^wWzLz3Y)bB3fv&2U<3wWA6i%2uF9Df`Ya47vGTkc4rGY>}y>Bp-F~p46 zm*T_il<R=O<R_eaJak5U`bCL=L5=M^DR)(qCx&V`Ap3h>T0Op$k%DG<v$*~vv6+n? zggvbi7={3$Q-6s4Sn|c;q?k;ecJ*KCMPJAAn9y#gdoO-{FUkHZwXDWmtjjUf23$6L zP6ve`H+>m^8&}*1cXowHNU8>p1vel)nP<~_!t|WK1|C`h4V7N$h7XdYDKVrE=#MoK zP2*t{sJS@_p=E1aGTcY-tswfhHR(p)uhwL^{I-FRC3SFGsP7e=m3VKO6Uu0%Cf+DE zQR3n9B|LWf`BLqAc{=d$ITER&rBLe568ZR{*QzBrVQu=^Ss1!l6T%MQg_x2qB%Y8% zAgqvkftn{<3HDLJjI_wJe12m=o7FZ6dTX3l%__e<Ti8Y7>2Xu;k{w6HID<nt{a^i- ztk-EB{_u^19cnA?MN<JWD8(m?Zp&0**3O2jOE|;W*NNL%W=U2ltR7A^iuAjSsuHAp zR%8*mO$ZOgQ)wLQ^BCwY6$WJDSNXDf(8Earbb?T%0&)EDt_q{rUdM_|ODt<qKv5s9 zGwFTxLQxGPJ~TrYzZB+36(<E{$QR4<UBK(CBOYN*bN(QiSUM`3EdCkSm`_Qx52Q!* z7{kikxe$qwbD|Ka(E)k(U`UsjwVV@zNmg}l{^ouB3h<3LIx+QSQV7P!O%0}J!}<RE zQXmv`XEhr=;17?JIkL1f5ilWRowzY5IPAzs6-&cNM)SuGsXKYk=uhl^*qukr70<;d zynTkh(B)n{YVODB;1ik)b*~gz^EcHu1l2PU)qj3yKmZT`Bmf!!2Y~qg1|Ya+C3iyc zCoQgV_)d3B^)tTr!w-y-Q};7Qwf2Tx5E5f?g@w^Zv=Rf`hKU=8ghgnXTAGRq9|Rhk zrg&MZ>awuhXDoN>*!i9|9i}jcZgXC9(`x!`f9LKJ{=UyL+n&CM&*L|LwxLeC1cj9c zX3vBX8N<?~$2Uto7qF(Zk5my04Ms@jPt*h<DV#*|%uZo>g;2~t8R6VzJ!x>b4GJ|G z4Axqm9%0W*_q;K;dLy+`_TFLy{3y4iMhrH7Ap$MK#~{!B3S-raf+T>pNE{C9*~v~d zB~!XuHzjMxj)6!@@CM@F!hr#B1NSVWyZ|>$!M#u?UvVW%4uqL7pB$c1vznXBRt&!w zPNj)9tXB1ZKYI(wGDbvAD@Cc2e4CWKG9V3p8ykbouA}Lc*_Mf<TApDPj#ST9Vt(#G zLonEsh3v9EF3QuMbHNSV&5^akH!T*>uE=&<?*74E3HUdr24@+B!r1jo{7QG~kAvh6 z2yibU<HpfBO`*^Sghv~=eO5?f@hT4pYk-Ao7x=eSp^*zAtu!7U9(oCLXa(R)5k$!O zPXuE1A?mC#9Blmye}gGxqp;|ZV1u|FA{h7_FXHe{?#}greCZ<2$&*&;!1;h2{kSJz zabEsgB|^|ykSl$pj&@>8Ik?J{CO*6F?+#`nu&s3;UBB}Z@0aGdz8mG25-@H)#Y=9& zhQATXdB*41jq5HNwhN$q)Qctt0Yg^-A_$u8*L6A<V3X;<_o&bzL4eGR+q(jg{sF3t z!VT}x@FFfZ-LJYqN%!6R5?~8I!E8=qNt^Ir=2V=6=tkknDE9%=dPDMlFKAv5w_|^$ zqZ}qDSN_eBLBZ7xMXx%gqPEbfx0X$ys##{DaT2lFNB?!78szMkTb&jwU$JJk^wWBI zl00EHx=zu6ykyvD^ksnEUK2i~|L&@=*(h<6@M@VBjqw4?e9f&Hz#TH!@?MSX1v?1< zgKhGF$35wz4#E_<neB_ROIyPzTJynbpk1_Gg4FHx3M5)Xl<5R|bK?3NV2=n%Qcxu? zYoG!uEULjo5g0j2g%nkv!5Ke{I@ln-nbF2rnNND8@$fdd2{T(ta}--9rstxaemlgS zxrN2!_UT?$BVkK*)oEXCILBV8HQjI<c|=bwH$IBTyY#h!%Z_zLpd=r!sOjaj|9Dzc zv+iUo<|Aq%u*Bc!eC750lppF9S<eR?_kz<o@Sb@95b?e&*s<tLg@O;UK?|gHPI|*1 zXak%IWTb!xtgPJRV;5s*6w4Pcq?J`c$bXF2#9}P43Xyq-)C<6Qo|p?z%&w0D6@!Yo z@p3`?4RaJ>hNhW<;>t@1pvY5MG+=*ypm=uT@lsZ<^B)(s;1U#sDkG}E<pv{u{;_D4 zOlEG%qKE@Y4Z@{>ScwZWKLsfGiwX}AV(Oc)IzK74szp_BJ*5yeB5KM9p{0b@_T+0m z(ioJnA=`@5MdmMO*<AOzV4A_9vVfan97$~v1;iEdV}^rc{+%;aPFE4lRxl~RY(!mR z??0YP5Untv(+)<j5n22#w?1dbi24D^LAW&oKnxke(BBazZ$ir$G^tsjpLv<P8JL+p zrtwZe)6Fj^ccitt_5F}De8a9(FlOz`{JI&B!4sb5Xf|~CJ@_yRFLC1F3Kd?yEA;mh z*y7}+NM6eHBd%<rE|G*zLWu+lufu`A{OD2qL8#ng^)5zb)1@sNpBA$lkpjbQ+i0(j zZo;3NamARv+QJnBsZgeY<w|z`aIrt_gDO&yr}tvy&1q2A<64>dwkGczcf-vY!Py6A zTA*@*w}LuD&9^b?3r$DJHdf$Sh%(g8Pw$y0<4I+G_ga75ha)5l#sIUVE@!!?J`qU( z3Stuw4l=hZ6iptz77?V5C<}RNQ!45%wt`^Xzn^*X7)MtNo2v!V<&K+X+N<smbqlJ? z#(9|UDA7<UJWH}EYk%9gKa0ux3slnpHo9x-U?w~;3m;rW-mECIy~1a=_%yR5m@b2< zc{S&8cl%if_xTE}F>-Ak_F3AZN;gBbm65C4d;Kf*81L1aubq<oIK&`5c;6|gPd_uj z)yd6Gs-dH!0~GwNcojs1o|?8Fe|NVP_Y!@$=O$mH=sw`UIgyVbm!yDEBY&3KdtQnF z#rJEczG=dD<G#i1?(6B|Dh4mwr5mosud9~PNlV~pj2l9Zsj^w`J`r=Pth%RGe<R0! zVjAOIm9?p6EE^9^t*tuy1kH;&aT<T%ZZU3j!UC0e)N;kSL%1+s1eZ>nJ8A}>x^Gm* zyCTSR%{ofaN?KT0`egHfr#$9$%Xy=G<|~*wWQ9CTB^Z1Jfe{4HAB+2>$0gVsgk%SB zt+EwEPMj%Ci-Sw!j}aeT3JG{r=LQf50ab#%1Irp0@TJ1p&B4Y;cIW>3MG7OPu$ryL zo+tJmTeCI)wwpTTA_U{8D5ta@9iwMO{%<iAzVq#V&%vw2Z=tz!b&)Q^(hI5>GYs~O ziH=iU4nMF&ds98xp-QLN(MZE0BO9&FqhxjSD+ybs2m)6>rk8X60Kwb|_8>Zh7=J`G z4%YJSxX|@;PcDCE*Mq9$<y0>(^L7vEI?49D?7O<{p4NKY3g3^!R^w}SsP+(f172n- z<k9ni?9Eeq>$F*Ijv@NHafVm*N$X(&46M=(@+k^!gm$=o-+znTglb1r>C`m?1(KAS zSx7r1OrIMLcendNQ4V4No1OJ{dms-F!F@*b=L+63!Y*O|QTeW*bQBHdLA)u!uTeCB z_HRHuO|$$mpQH7OihtS2ZwdPPgfk*==%&CtRJbu6PY^v}dABt=TRu&t_LHS0BRxEB zc9)MVmVeK>o({ePTgbP87|i5dZ{D0<x0f<a1SY19sSL07Z>Q|+zR5YYWPV%R^X*r$ z-XN(MIH{<%CA?*snN75o#`6zZid7B3lVaw%(+5?V3am@Ezv^u}n}s`%zWO_gYDawC z?=NZKfZZ#CD~RHtvcKuiEWPp{USE$1R*R07p|^i)zkjyJG?bY-9cQhc(p(TFM?HXM zgjN5&-9`fE*~x1RFOBU2ZO^=t{uuc(nGs2)A1n8Qx@ltgJ%)Pg0*J|mzU1f-T*WC1 zURmW+w;Fwx8@kj<mzdAN+QjHNT^^C8mq<74dzv^#3Csnd&TEjs#Gz1$YLH6)ea9Fp z=QS_IH^`G-G8?{}?ocM@HEYPN1&hxtd4xS|RVzU_RF5lUghD)IEc{FF6PzDrL4vUG zB16K?;iQZJzrPFY=7@YD3?9a#5FFnG_5rV(O|54F7@Qe4cVyB)Nu0g`(*@CQaaOBC z^5n0xtPlvbdI$P%m+sQ3U=zY3pinEp0AMuw5fAKN$bz8S(wi=rCv-Y2yOwFN6YNAr zK;uZ}D|0@XTf^&;gy9avXaEpp5bxnth!d56s2vd={n87AqK0|N?7+OO9Ge*^yYgbs z^C-p-Lx(iXp_8KoJxsRBS0fsBxYg?_JYzR}=@LP-!ezA{hd7Cm<Y+_ERBZ1{86=v` zbf4C92ldDg^mB&eN#X(B9-HCXDC+@MgLC?MGANkT3BpvHqS1z=k{=Wc?17CerGKcm zHU>DEjFHU)rE%?gf5(G!{)(%>=)hxqWl55Sib7JwGrJpDOz`w)3RGzLl4XDV6QDi6 z5u2K&8gcBBwA^)*%UW1TvATD9ip5&KxwGqbayUPWAt|@r`9;SS)XcF1bn-^DQ0-Q9 zbU7Z4^ZC^fUia`P=;Yc9o?z?lgT_32-9J=Eh&rc7%ZVV6VXoqOR>+yPgB&8IZ!Ru) z#BVe3N+#ROvM<SO2U0w~b$!!+KMi?=38{Lz)5Z})6kh4Vk#lO6IODq2eh*2JW$+U1 zN>Q4g5fP*P7Y`<t->d(V4c|tFsiP4Hxi2(BKBHo_yp#S(UkiEDzGNi$D&{v(lpZ{6 zZ>%uXl3f0cR1*zqwPPF6B7LdOrs8Gw8DBKAZ$%F6WLlK`d}5%5(F{B4#&UO|H`QAw zPOy;FtlfI-0=tecXmO~lwWd?-rSLnpoV(PgZu<L>pS?t<>%d(CR_t;2TBm)v{(7c^ z9pMn$sVH$EdeKT#R3+umRmEv#N!V9dK@}Hrp*z@Jd5Eo@*!TU}SPS;n)E4hEQM(%! z`X*Nw*{;ZvH}K!?+pnn;nQmQ1R7K&lXJ#A}cbtKG{U&vE<gDY{@GP#y>A5QM#p#ON zvTZ@aUvEH|O#F2AW0v0`DS2Y%7_Rl!Wx?G#cDbQQH9nqCy(FISo>51B!5Urv$b2zO zwYxm`Z@v3*;=QQ!o*~v6vq*=g9pVaBP`O2fF6?fo0uskz5<aH<=FmftG|Mu5WA4F{ z`qv%&fJ_Xy^#t>^@V?JNwF2oxiFQizH2Jr<B_PR$3=ky6n~=PDV`7gLCHY2tq9$(# zq<FYSd%14Noq?}Wwf!0C>CaF*U<O)CSFon$oefzo9LV;p3y5YHDoNo=aCKLn7Qr5H z+I@jiv};<`k=b4SPBTwJZ7>k*Xr{#2sSd(qgG9xJ)Lyn2`huF@#I*Tw?C{>XAn{$s zqv?(hj|`m9=BZrk(vls28GDT&{5Hbg!WxYVz<Lx-G<tedHMjU%$hOoX|Bjo!vce|s z6o5hykEgf2ze2U}Y-&Cn(b$~lG^huO%N1kk&VeQ0MUxMdLUx0pjzA#!4xu3-JMxHM z^fZk-PF94m*e2ve)6NLL*vf8IiBb1Ac2A)z(U*DOflNbuJWPA=7wY5eG{!}Ma$Fb% zzL8OpSOPm)iyF#Vi@X>ErzJw)p4&O@iV@yGIZI4CKK_YyRN_#h0e-E#e|sofe}qC( z^mgo(0y@djafi(T4+>xhe*f7#phJed*dC7tWuCt;QP7;o1U7{z{D`zdpLF&B$U#cv za+L->m^$_{Bqf(!qRf<1By}y7?|O`LvWofD!4l&t1;3O9k7L?cUd4#ulk$a`H`b=_ zm<n>cF;e^sqB}o)e<tvVl15eQl?Zk070!C#*tr)bYo_;!XL1#%w4>VSfux5=I26hw zV8sltdQscqSkRN6(=NT;H|6xA%~Ki~^uel~7-Y5G=j3M5*8l4k3HP}rH$QX#UCmd^ zr^4jiZwa>;XI9R9PY0LcKpvL+DqpTSS4^vi*Xy1%%V+;$DkrV4YR`)S?v@RMeDP|J zcyECimrYpC9cKZU#1<xxNpO3;im`Imz}az8u}UxP?T{T_=2LB(t;#DJ>k-HEfMeR# zcju+TN$>G@KgHVq!8}HqHML%Gi=uHa(OfU3gSay9Zpb*xhkg-3s{F!8k0g|ED<9S2 z>c(yD7bRD*;u8ws?U|>nds-7zl`n*)Cb#SLgr_1G)qaU9>^Ji)8^w2}hu^|3WIhr| z8*WhoC|U7BBkhnZw@I&835yLP(Mx#}?U+i^=xToNnkF$A&hL<=O+H79BWI6^+Zi>R z;yb(!`-ctxCsb~9rPl?ABK*yEr(0Y@C4ts%*4-6U$Pa5tz4VwRkKz><*k}^`O+7+y zfyjx~-Ys9sFy(!pTPU?g-q{_Yx%0W_&EgvJOWxY|mB|u1G<ol)o4@4_4qnJPep7rd zruVQg)@|O)>pd?0DaXte!+h)QH=hK+q1N!Y3-V~JY`zOc1w);G3Hq2%cbwR+c=9y= zB(gS(5kqE`g)1fWT9Fw%zq6GI6^p)QAW$3lv{)l~n;<lwVt@GJ&90GhQB9S-O{No+ zCLjURo7HB{3Npp;g#2wY7isbPJl@{qHUE_FG4NRr4Wh5l))|<)j+v2*(G#AztYDa` zP=B2Ec!T5wflyjXUCykZ4;~l-6%!=b?gYOHm=w-r^~CGstias*s68)@+59`-Sh}2@ z=a%3hrnXfM9-w*wR-hR*k~xSZx+^Nx`AZR75_H*h7zqW>yf6RHh{bHg<N+W``z54p z9h?4WBXKV8DNR*Ra(s29R|Z0mOg@1PcFE;msoqN5hi57-LA$eJUv=)%?5mEK?%LgC z3(ct|prgf5Ll604h8#&L3iKHGD7;lrC=rw(RHGo)Ra>B2tPJYpxf$l>lO%>l`EOwe zy3%D#WYTK<SrUvB@;-`D8vtF5FC`U*%AE`}SVAb1%FX?`wXm-0@7ajz8StafGVF*A zwZE?1kqE-gd*<s#q>bXBykUw&UBfTb=b2OgRF?GO8=kWG>J!Z~5j(e}*Evpn9gzjE z%5*pe_TM>TH~EDNAo*Y1gM0n>;J2Oeza#g#pi&RZuvG`Rw%1PvZJd+57G6ffURwi# zl#b?|Xv+Hjm9;ltYR)V`yQUg`6w7|B$Oe=_^gw3%qva~Nz^vK6_j*3yYA%g!S$|~j zKicLCVn*=9yu*7yzyJyDh6Ei;4y?mhlh+^fpT0SnGolH;p`Ss7#$;i{&RAW@9+|ns z?U}g<LoRey)9^Y|a<zl=Q>V0v*6c;8L+pLx9+>&f{sINpnDhkcsxV%lt`W*7n`}}L z6Ft*)A6Pv;Vrk<zeGMSYR2?4$R3e`HixuEenq&xfNN=-q#i-o625314ty-4IsG8a3 z#S{dqTObots3dmKub4<rZF(Zy_OZZmFY!XBKg|`qCQ8A}&KNnuls5A4dY?|GH_sT% zz0%J->yMUTNv+K;*U(X--2H=;R{B*s#CsuU?r30d3zj9DFE{8zcQc&y8BdNbMu{>< z6<TO`oh3Zam!LFkF$MH*&@ye!uo*sCnlov;)##DI_tlK%Xo}XmQkdIEk*3rqtbLvO zINReL+4GRr=N<FSbz&o8ld<uTZ3!m@Z8O4TXnBEHqd=z!G{bk{Mp@tDLE74LdKeDb z+j(yyI?l(&MQ5d;|MhyRszzKFsX_Yva4gnf3F1ifUh3ql8qF$*C(|&Si!=OnL?ZS^ zu4A;WT->=g@<g~=>Y{7GQ;-6j_t|LR9EbCFK3c`mpm6y(jS<6{^=xG1^C7FX-m{ec z)(BdI8EOwt;uz<XBU;widzaKAS?OBO9}$Z7&h5|=x_k8QnCed7%w?F}o}lCHT;)dH zJK>I048-sa4~epOiGr2_6E8D@))}S@VOft+qNOMnuRgEP@8;9xXa*Z0ypzCq4NV*^ zy|fm3$Km|^`fFdwIbWX-%0@qBy+sG6hH8)AS-2qShrfk(%E=nYuNo~B|NgmTF*I)l zuysue?fo58Eda&el5j-;(`S;&@u@!x$8U6MH(N|Iq{^>5d@S}ijSo*5NcdyWoPVlu z)e_s`Yl(TcR=pGKn}1qJE_>_xJ@@JNh1Q5;;S&93ayWUz<RC)OV;i^ZDOZ`TbKiO& z<mwo@q!ZaF&6T3Wc-1=MZ>&{Yx*BCd79m^D;)|?_YL1>R(!Rs5mB1s9B~7*(gw`$~ z;kt>El(2Cg!tIy^CYUW#0Sp}!K$y_#O|;F89So&$odz4Z2Jk8|HfX)r`R<z;lWt`( z`?tvuy1`@dXd4#!m*WBZ4gB+Yko{bDDvg(u?fxr1%317e94#BetY)Ll9Bkp(IHocx zJ1JR#DMKRX5IymG*QSn)WKfBAnXhH<=Jn{<%r+8wOqvq*vC{Ww&~8nvCu*u(12d6U zt(~ECab}I;mzkMKtX}M=DQL_&(MnF21V**%+yuaW?zGPKLDI~STr}!Fnmi)c9NMKJ z>&nF#Nla;(ts?W%ZV5Y5tM<Dhx&%=!wbL!~ECW`cSXoSWba-5gTLH0jYOT4!=j~^b zW`>e*#YD}1_xZinvpZ}g?Tgc)C_tADFnub6(%;Io!k=VnZrZ-OO&Df+{7Vz)i<f40 z#z{#sl0g`;6N9v%vWpT5@$%75KS|o7sEXWi)I_5K)ULe8RZE6pvvzW!Mm!hjL39FB ztW2&NfrE+Oi8{x(eW`yh$trlx{G1*L8+l;Wbsij$XC_MJq4I-8f&khIP&e?7m7rwN zI`fL;L6xXpIZ>g5w!RIlRB5DbWONzRpbIzV^u<8Pv?7iiG#h6eYML?lSTXl0UZa6K zX~RhKUR7bF?fQBUornMSv;Bq?BaGH1ns24{S15tm`=wp5DHMcehEC1guquIE)5Tx< z_RF;N4z`PHknaK{58h6Bq)29^4fFhd8_x4|u*GR2r8TTU4t43*$#RqJ0(nu)w!$HI zWEmTi(cF}pJRs3Kzry&i|7?h%Dk}GUw3JH{e7K0NvmR)SKQ`LHb2B^|>R{aYkLpzJ z$_hal>45>vJh=%Zxv2O!Uz*;$wR!(B=tv2}+dF(tAlVSy;(i3)>$Lle|E+1g*BeD1 z@vX)|2u~LSN$*wwPk0bxy`HALlFLZ9#`F0Eflt>iySf^W)%3cORfXh}tU<k9Hg5#H z^Vj|Y6UP-HHI3a`n6F<`wFQXt;bq%9bPU6sw5*)(Ae9!8iumtuz5_ANQv$|$1;2O# zc2FrSO(rXbN$cM9_m?v~hOdoOf=EZ;O((=D5#4ql$88MrkyDC$k`#!N$OU8`=QaRX zHQ8^Eh@{^xei~Bz*0_G@t(Ny0z}h3qg+5-9WI{tq+;__t+TYu88%mMKsHoR829A*w zEuUXdAFemuLk)7>_h7V~bB7+7Z#}=A#xhUNtXjY_N1g;yZ(L$Zr&O+hjiE8{u6t$g z5vxF;!#id;D9;1}J^aZW@2071G&(g%kEiq<4>NTzbTq<?R)|Y@S<-ee_BSwNZxINa zDknpiPJg3Za*@$VG|s=3zEf3yH)+Yst)PQ}W&E*%BZz4C*x$%xAia`R?<RKG9bY}x z^RqHrsNJieDweo6mB9l3yS^>4!elS5AnGjYJ)ZG_u`R80iO<Dkpl*6GdLfvzopt54 z;KGLQj`*!oVZ)p)_;-nHbrBk#bdA&J+i`6`Mxr__JBYuVv)^NmmKcOy5W%{3?K9H5 z;(U?S=I*%yrb_-Y;A*)dRLy;1yh$b50i`S}DeAi264#3y9-l3NuLpLS(L<WK8m+by z&9XeRU!`>TPL*2@eGORrCh<Xdt*(1~s3L%Zy)u)csrrFo?cFCxSJhtsECTKgPP(3C z2!F2eWF7D3ZGQlx0tVaC=t$9P)B|kgd-3Hr2JS8yho&J(R5W2zE7r4&WwwS)|J~FX zdM1t<3KR-F$CHsU1Bo&)>#OqB{s5>LSd0hm@UGMwlj^RlR41z<7$UHp9G@seOdxsi zZ0xD$JCj{lk5VEz#Zqj%@b4hoEQHNMbSDETFLXMg?c~^jgvaIg#(>Ma|`R(at zVn!-0w~z|Qn${gHNJIXgjKTT2=uDW9eUCmLEC@=ZLi>DYA0I5g;AuA#Y?RKZr<^~_ z*DcKh3n-NBm0<Y%SV_VE@`zhE9Y!3m_HhC}6{pUDk5N>Kz@UTCxeLv%oq^o&(;#Tc zsvvp29<}|3`vX&y%R^X_TT#-<<W9BYaS3p8RSaZCU^k@s`AlR!#3)%Wku1G*TO@U~ zUx4$!+1j2*jvvqW6E3QNBN8u2S3f)m#PIC@;FQT4KNKx_ag!@#Ky!6?$}BrnVaPcr z!4LSTA}&QnmMWj^A(yGl`(Ie5krWJoO6^^egM*7?R29`m29V@IE~m9-pq$!QDe-r& zFZYo|Yc&o7juP}t5_z}2qg$f7S)7_AbSI>m%LY)XX7UPIDv2*~bmv)FWoQG!J5+y_ zNDC9t>l7FYt%;KA;p1CF=|y@Jb;c)HIvmMQR+r9_WT=pjcjO1mf3-xOAU#`+c(n7_ zFf(9alq*+4fi{L9;^#9z%j3@p<*Z8BQ#L}<s?(*FtB;z|(md!sC(vtqjHx%N@|pH- z2~{7GWf(snHn3Ha9PGn%txTsU3zcfeBG_oA>IBAIl<Q{xMjBR8u51giixKZ;UfV|A z3Nz7=HDNaO1g<t*$cFCy8#ia^sBz@LL>x%q9ZpNij`^}9Oz-+3;T_nf(1Zkbj)HEw zULvAyH6?PMkV;W{D1VGh+%kC!fAbL0V4Gw0aPNe2H!rjRAYk_Rm_}>n00=ksjJn`j zAiufZ61uv-44N!w`Q!@Rz6=Va+!lt4D%ix@)#snK#VbfCO&U``jwB*J0p9@ivEdz( zB#J8=UGmymxDtdT(8meS>Zq?n!oXbC(Jc+C4W4avHBfLdBPFZjy=f~=@hxYjfGeZ@ znM#jbuRo@C&}x2Qy;S+0Y3_nBnm*IiBJHyxk#JM(B3h}W3L$#(!FWGrd%~T5+hudZ z2+AZHpm%jr0_jcYu!$D@E8bGM=_#r@Z8~~EyB7>gLd*_v(2dZe&J;jS6Qk&Sw)@us zC#M5B9)RJVH_Z51Bz+c9M>BR`Kz3mi>vU>y(RT6X@EsJhpv|C;*Z$XGRF2(JA3saf zG9KOBIBAkvS_u(Tf4(*;RG=_PVvx8gQ+E923|Lrws+5>FTHY7C4}w{yh;`JG&|}0B zF&-H5m>?ll_~*dPN)9A|%$1^>t;KXW5NxQattmX5m9q&9O$CgVll8VqhDDOinlimR zrd?a1_q(30w7E$7g$%rEtR`blSbx+SVnIKBbD%p9qR?8jT$_l%3WJKHNt9<v79?6W z|8`LxI$Dq<h)ec}JSw`Dxpb!ymxxk1jsT1FHeKRiBW%#mKCBdZ7vY-Q_hk!4hqWKk z&Y8}0ozZy!=MCp}yJfm(I5tE6v)c24CTR~N16Y}l0DbpOMsl7w1j)dPY`Q7}UJ1&y zg1J1)RtC4@oc&<!aXW`|$nF7e8fSTQpjSV$qaz)=3KN%g0eA2<%p06^)yJ7wBLUCo zLgqWf++YL@hHp0g;oXt94ak+v{WB7TvP%4pPWwGpCHL}uhjU_h{4{bt6%9?8KD}k9 zL+(ih&Wp9n*XH&C<9Gl{qj(61r4;?&LfgN=w+y^nDX|ziNI6V4bM1JWwJigQWUX!N zra8a3&((YlAyL-eTYM=LlzZ!-l#$phY4^ZmbxxnuF4!WDfN}V7i)hSsxSq4M<yp{& zjw3#HYw_VQLM6;B9$IVK*AO~PW^$I_zVfv<g07M{?bi;)D{ha3h{8w`4$OI~quwT{ z@-&M{(sW8*A$y(^iKk-@>bFW+>-^Kn;ah9Mh}Z|Ev{Be<p;2Rg0F%WEEEd0VaX3OZ z(}(J_w`7`n%l*3ozPEMu5mnU~+RL>&rb%u;>?3bq_%4TAmd5vkNmq{6zj*N8rFc4< z%Q4;Fp-fG7UiXW$WV&nb+umOjqax_eX`RQQYoD(aC(-x0eOWAag%fry193jnEw`?- zl2#U2Ug*myyrlo6YI!V-{cmr3lR@bPlk|kM&a&s!-<LU=;;t;Fm{M<c0}1H~JBZY# zK{1M>=)6rEd>5kroSbY}K3zoNjzmQmlt)ThRnxmTqh1hTB;K56fO|iY%8RzljsQYC z5DR6ls1qFhQ~p(9j;m8nqTQ}iAG6hgW9NwqH}p@Cwo-%W*wDP=v-Ntco=nHoS1L1C z;l{!jp4qz#!?Tm+nKp9cvO%-{>PZ#v06`Z=kcW+g3*vx$LMRMosycm3cXitcb>ZM~ zb$h-*tKh5$0#DP$k=IX$1xL3AYxj>s9A>u9i(&!;gTo@eH^lraJ>LQOH%9f*X5aD) z!3Dy6EQZ>KxO-d=>6Tp>?z^=Abh><IYwJNnV=8-DSAesPqEvP!zxtbi8pDj1Js&$Q z)^+YawU9gWpHY~#t&`?(uZ@o<o7DG)%eJ@`$EB0Hn%e1aE~E+m5E`b{pB=p%3ew$$ zK_&S<?w;aj(DkAaO|AytuDp(p*lK^38G4eLi7N9H4g7xYUk+z;k)!?y2Msi|etcN; z`he94D^ajI5MP@Gux|$w9TQqRh_fxQSPBe@F;D4l6UD})Ey+dJevH`yQRPiIY#b=R zS7qu)nrV+#TX(gJo8kx06Nu65P)4~HaE@gSPjnnkF#6LaZeA9Chu6WKG$c+IF=e|9 zB_5|wxE2256kj!E4yH-NiAgH@2^#OFH=nKUirS%%sF@oI-GdtC3gxWKmKqqd3p3Og z#?rhO=tbmJJFB{5Yb3O|xVg3tPuIu5NC?LVrBXU+OeUTgF0<o6v|J|U#fLw~8KH}$ zE!8>6$-f+xKawQwOI?NIGh`>U3uAZYNsaAPi6^HWkW7d3#f%FY2e5%-z<d+f5??(I zItE;JbK{<Gy4<O%U3kR*R;Ex1g9j^@J}b-nY}!^eScl5FaS4#;6Hu_DOg(kEe6i?t ztnZL#{!?JwrgdN<y$(pH!&#JH(|*0Axw(!-(9_mV$gKmvJR-)UYE#!WQ^1%HzfT2r zU(x2MQ=b;(%r;E@*}<oZfQrhJ$r>o$qClD?t&Td=w<_YZ>{i0)eMe$PwYQ#apPM(l z%^8gn?zQ|?#@>)QrWD}^vn)gQ9nOeu++qHb4gRYtO@p>#$=8P^FfRuaAfT#kq_d?% zz|1jQ%41~ga9YOYT$87$I5>reOns$|3rSd13&(o<+|??!Z_bBHZ)D^#mNsTT8Zm?` z+@^-F!MeS9f?qc}>FR1zbik6*8X7aPYlW*RwK?RFGP$G8{j0HZA(fV1ghT5rhpd>; zY`j-gU~{vl$$Ie*T`<~&U%GC5PMlg_*2hiX+F8WBQ|_~m*=57bm0pY5=pnegZ0hXD zE616Y6BsU?V=~u1<#q9AK^Z8xz*+?qqV5T@ax#$6+W1ugbR#{E=LKa4_;p^BhCQq{ zT7c-pT&J))FbwgmHtlwCtK_61ce20^bFi1H38A_tewpwNjAi@24k4$wQjue$dKmp4 z;{`r!qyZb?3y;XZm%eC?sp<q!Oq%B(+k(P$(X--&*}SI(^u$iMbLqH;N4Ycf=z&39 z=xaoN%bh`<8R6unmLa{he?eZXm|&=uk%PI1@;I8`;M1Snkncv5xKgilHF#b2_*QUN z&TV#JW*Zeb#>rAweBYKm6TSRBYKIvE6<MIEdX=7_+Tbwm++cS(JIdZn_ug5dFN;Kq z6B;j}H1(UHe>$a18xIov<{|d<3)&RO0-{*CK7df!#Gyax5<&?o0}PYBg+f2%F^Cgx z4-_-|3M!3UL7ibzBksG@T~Gw5i?R4O{wh(%-7|(i?dM5}=kBzAX2sBFMPSKQM_;C` zeGZOts{ngmM&LKfLoGJo3cP1IABe=pS8*A&Lm8SA?#Un;+_6ft;Anx$H74Ya!j6A) zw2`{%+c$9-QpSf{)|kGxnZp}Kp1R#P!?su}ItE50>EDDyPgaEE!Y?^~tbWmTDN5&t z{ag;UYbWD7*G4Rhu`SFa5=5<1NZNeqkD1plO5L13*{<J5CSW=`UdE3QX_E4Ey$@p_ z2#loy1%N_TJ}{J7n0XQ>=(o40M9v<+UpXVJ;(1Wn81{A6e%j93d}-rX7++DgT&)C? zr&o|bqSQXX<bO&f{HZRRIW3qmJuUjV<Xo@%;?r;RGy8-{(Ti8$jOQdP<eK*V_g3x5 zuEwV0wqxewWN*UZI1A>s=-N~=KiJrLn<&{4O0X5o%AIs#G`rH*{<Sb2pR7d{rTO}X zhP6D}_buhC@62s>rHc6ygry4oA(WFRehF%M*6UXmECiq+-lQ^?_MriljF@;D^m`gi z2XgxbP~>5hpn4xYbk)}KrVDMnhs-0SQP+P*b#TCoV@gt!x15n$<Gci<s{q3xQxeC& zdpUOk)^^eaol%Engb4Ct@5(3aor&Hc*Y4&NoM{QxX2ZR;$5dQe>auYM?A$_j#LI74 zUt#ruH&Jb=T)_rFdE5F&7;5h2%5HcXhuQ{1JFEyOtx>V`^T?SY@Ah2{+|KroEstyH z$tHw?xf9RPt+BEDYUG3ETO8@J@Jhz4TE5Jpof4`2)NIdT_-?d>73RF05Jqr=>x`$& zRp`4+kjKljR#Z|vk*CRh`>uO$?g)++_DKbnc}m_W7?U}CZy0&#pD2Fv00uNXaZZ)y zubZZ5KX{5kMD*#CybZVO5bZo10wwp><wQUoxs9?A0LT<AkZO`5%^FRXXzFNpoMz3W z0M?t)O-pBc-iDp%$D6!;6Rv+XTXi`M5o$X-<6ElQmP%Y?bk4fG03X3!=6a^fop@&5 z1T5Ppa%fBW3$V3N>L6Z{B#Kb1ne>|R7i@}sk7yYStai1G&U%FYImfsY#@ilyw%QBr zCENuH=}xxGQaDE`5EY5a(f7B_|K_OcFxq*+IF^OWwCQ$z$)-9|VKQMj2^o};gbYhh zz}n}V*M027cw<W2;ATH9oi_R8<85f>YPY|eG}{XudYz%hxu0Gw(jhtu9_nKnsDg45 z)2vTK4jGDpsx4Noad&<Wa;5e2oe5$wd>t`*b<&^oC3G*6jN^SlNgH>^H{I#|20ME2 z^GM6fD>Ycb>0&fn^a}{>+JI3y19X~+i9++IY&BSV8BBZA^}=HA{ORM3Fld#KrpFAs zWPl%B1wYv^kBP4k#YVX#5v%tEtBj117a?8aQ6Be~x1dxlR^E2=pz3_UOz!hgAV2F7 zHbA#66ZTU#+yTx}_YCO5fs@|9SPt~Ta1T4~<aHT~j7C^Cr9*JUVi|EeEv_(iM)biR zR9@CdRlPXPV14|o7&C%-Ml1fOMjaC}_I)c=;HqspP<&jHZSjdJ`)$0o&<y9Lr@rDr z)KI-@zLm9fLyz0)F`UpcxBW~@S=zw2qQzvVoF)H_Mo70R(^oHvddF6E70<HScTS@* z`!1=A!9#oz+_sHS@~?jY7W)BpGToQ4l<(L;P%tO()qlAhp!61;S5sETn;p{&?-o1a z)SuoE354j_TtQJ1_x|Sh98`XRPu<(v&I{yJK`?3YP!1qT{_(R)#r&y6^ni9IS1Wuu zxgpjyurT}!KM)Zu?j6-meEic)%=LWi3v_DKUa0M%N*JG9oR4^ekgDMv-V515F<(kk zvS302chx1V2Ei@f*ceAW7jjxB%ag<7>Uh#Ps-Zr&<~$r0KciXnm>sCfPj+i>G`vce zlc!c$>$0NpZ2zXkwHlcEyzaZeH(o3pUtb2U;U$hJRABJt)>}O7BOLj4<lPP3&8X7q zQQb@!-}$oZ-f)vJASIqc;qmBqdbF89J=KCiVtx4qlt+OJntti&%Wi)+xZnBL-8?`t znzi-x4xEeoQ+;CCo4)W8)Bx#31z7Apvu_04A=;9uFr$4Rc&N{?@WyvxKvi_xS)Kfi zQM#uk5fv4UvG10Lvsy0jW58#1bhn0mjJ%OFO)6~XPLnRdGQ%f86wWDDr4fduxP883 zt7tR?BhjvA;UHps`{LY|@d(kwLeELwMd7RQ^sT_Z32mIg#P;24&M(tH%6d7<Ww)cG zOV>aPI-2n<6&G<(u+qk(Y<C~lQYzmk$XhZhtZY!7TJZrky@;&AQ{%Qd0{_!|0AF%8 zFq;iUE;hA8E)LZ_v)y#po<@4|K&E?*kN<h_@k`nS3gP}wcTNZ=9hjiV%`ey*2B4CK zQw5&Bzz69MACg!KHIDQ3(&@8RgPq3KX6)W;=vLrl&@dhq+i=%p<d?5U_@LSoSqHza zL$z8aacWhWZJ6gKX}Bfvh-Voacf(kNx1t2&10rxr3pa0<vE0AR4>!H{R5$W(A4=ZP z++a7viL@7Ul%CJ#zf9{z|M*>P)L{hIV$|ti2{ca0mG{9lBaa(Lpms#1c<#l-=08%o zYQinbXBr;2`4~b?uI@bYU>Kg*+^;}ZmQcLc@^RlWGkdAdweU)1KOJiE>Wu_Bj{j?- zAUa!qaI9~xzSI$Ahn&il9jID@fjOV{UJJP|M;hrj(El?Pn$S=WS(O|HsfvEYa6j@E zPt_&3f>=fTR4yH{c;MX|Za%?K#t{03m9=)3%jflcu~;$M>)-w0fx|N?+uHhYqn6pB z8{+7-HdGOEd7|^+0ol;VW+QWC3&C2-<F~r;d0bhxxJUr6==a@Q(#2}k=SC4T5cSz| zL|d-)apjT4G$4~Xe}c1OrE9wZ5EDu@nPDNg(5bgK2llw?2yYYp9>;PJj>jv~87--@ zpD=)i-4iB<!FoUSA^JRzI!QP-o6*oSSwUj-Aat@ZH&Q7u^RbcNg>m@U2!rl-x3zC- zeP#q?Pl@c(KqU@Jnuo_sy7Hy}vttvv3mD}*qX5pcqot;;)@EyJtsgXnkHuk{v^IK1 zqo-vUtyE{6LPjwP$7Ypu7v)K88~#(rUJF;wtr0x|O%~^0tAvElK7E5hDnzNMn6YpK zNe}_KBs~}2XCYzq0iOOSGO&&Ri=JxODQ>lpGN#QInpFfLbiscXNTCiAX!q66lSk!t z<oMg7lCQJgDiuXk`Ob`y*n?qG@r{G*C>JXQ7cf0zJqs#gF_~1BLStTOfiFt1tQW%k zFzniGRylmb?CYlK=ud{=6-Q`E7^K>iY&h6wMX|`6+v|Ep;kG;wfYJLsGsBt($@8F? zgRi!;1|;0r_{^dOS`pO`^P!RTsxWnhI8v-jjnEfR<}1Nahnk;Uy=$SOug$C~aKf4! zep0w%zGJSW%r{=%_pdW1;{>`!7yTi(;C;e?Kjr2(T~qe)0Gd{AB+X1DXF)0sz7~O! za+&d2_Zn-R>=7)+T&(>867zTPbJ^pAj<wg`Cvrw=Xvuc;+v?HTMrSn5g;H7bqYYSF zGz9dm7kL1)C8M8S(bYk10imDN!hPAf(zBp4t~MJ!9>2?OElAHYV0@RySF~a{u-F2< z-sjo{USyZ2(VQ06mgXJ9+yAV7M_nB+;Gg>^ksIwKgx`|~;zG~}g|4CK<M;0{ZR+Iq zF?_Pz2|yHEaAla%9<oA#@;_pNwVBs^ppSuyelzf$1f7>j0Lphd+(O&hY=-=TwSUVQ z#&RBLHrp}rUmm~iH0=FW$bCidq)+M%i=jPl*JK_DV1W#}qGS5p`@1J>tI{sCt?sR) zKd$$#_o_J2gqyag<vR11XJ0cuiDaAQ9!knbUo8to7`;Rp-%?b+iO%JsiCaDtR6kO& zA!$Y)s#&*-`&1E<ikt!#x6EN+H8k}a4kJ7M=By9C(dBTL_WhZ;utH&(Sh-;_I~T)P z$_KZ)hdjB9tfF@k<Z%wb&);P*_5X%|MB1tUpZZ1Pp9;pLEEVgSGRzsf`(%NfARtiL z?k*&-!f%N$6n#5m22*{*9e^Pr03ZtitMuQRM`Qh+lg|!dapsT24~l`U(YSuXaevrq zAVAnUxb%PPB5e|w%rymYhkM+f{nSF`C85NjWU+8@nbDw-|HKJ!1taT<;0{XsA<X|H zFZ}aq5dE<wLUo|T8We~S3Ly^uClDx3MaGd#3{NI6Ii?=Ce4W#n90$SI-SPdtz1eZ? zg*1t;0h+W=gv=FDm&>myIhsbR>5G4^i(r)8r<7a=MrAbU=5ifsQ^u7rPM9C^1ZTxi zbnsUmBWxbRI1x7vo+{38#m?GjDYjinM|A!{As)|*6a%s-2*ocFTO{ut@`L$!9dZF$ zBgZ#RX9)sQ8bixB(R(nw(>QnDs2XMP5pL_1EK353=N@aD)K+dNkHX?ziib$ZyEw%J zE7oPhR$Qd`5FlbfT&x$Wxv>1P<<mhre$~+)!BL|0iC2kRld&z{*1n+K(*?Us+Ukpg z<Pw2<%-tSYusu-yWjN!qT=GztT?Uj=RAgwWKjZOz%yNCnI$}h%N@Hnt6diF2^<3kQ zQ4&nDD4^9Nw$$ac)sfL13pE47vYQQU9P6f$)ZF#3JX^YLb3F-ec|!GwPFEfK#-~7b zP99>`Zfz&Hecg+@CX^aHVUWWZ%9*BeWC!2k;Ff>YMtcO+pl|vBmw)Z1A2!i{$T&kA z`ptO1(SvKd?_FguWx^CY(Qk6JaA_dQ!K8Lk<6cu#zPBL5BY39^A;Az!T^{`XL7^-m zb8Iby^VShS8}11+FZRGYbN|l|V8?Vi``@)ew%TDwYUT=dv&ApLnP$@)V3bKL10)6f z7rcxrA?6n{9Z)ouB3-!k+IP_Y)SJaxheV;CId4Q->0l^uU=jF25UFUNt;(|V4*&O{ zC_Jv`)A=^|Z%XefubFbEO55eXHS&}nCGsz&{@0%~e5lY04?V%p&`#H1Bs-D@OgloD z15N$g5Fam_Za{n<%g`@W8~(XnUMM$A-oWgC?Kr>s9Tsm>Z>-cu7X4*b0&P|Tpteex ze-C`&cKb8z(!9WZETvQ2pyu>BxkJ_Luzuiohp^v3toi=o>&x9`*zG~`BmNTp2!BDj zrPz}j%njrF|Ap{Vd(qi-*%dJO+T_@Qs0E#{Co}hze>vH#0U`*wCqOl91%J+(5Axyg z7vcysYGoJz`u#_YG5%PF<G3Z@yhAWPftXB0G9n3;ib_$js7PGm|CL}?b7!!hLL=rN z_~OQRn7nc8fqGVwXXU0JKs){oJANFPgEjpy3C7d#{iII-zk?XFgGoN^x6hGyY18`* zgCN-a3?ssU@%8Sz<B4*!+tC9WwOjGXI&xlXTMU$03$|Vhf?_6XoCBWa7JXmsu(deV z(e9zfbWMGvGt^m`=7x4(ZMdZ}Ip4#74?G3)i($6&|HJvly;|Q6J$@0ew_{?Qz9AUc zCf*X^#5mMWa#EQ7uLHYksxa>_g{!{Tiwu#%Q9Bqw22bmt9}e<=DBP>8O@E}UmOCKY zK4$Fzf?yg=`02?QqgM1z&EeLlpYuQFVUwr{%v2`&P;QTuT>ySRN!sW=I}a9_9Y~6D zX%QD0ee!?JB2~Gpgo|W_(w=d6BAILohsJ-M|Dkzlf4_Wx!>Ipp+D(6xKSDVCU_8kB z`%53CSs%xBNBH8Ge)=8rp~?6}QYsaLl5R?mv<H^d|AQ*&l=eu!Lvve@+--@8j4^v& zjM$DxW7ScZ|DRhA1I_NTG5Ze1^arYK@667=z0QA#kWAHPT)*Acvlpo-J?^a(4~V55 z`VaQCvjXf|D6LvJZu^;6o|RA#jz1(EA#&N@QD4V5VBS!AeRex7)4u~sZ(wr<q};)3 zcAsxpI|KMy+X;5%Zp_@J#&BLDS-uY>zhNn|(s}+81Y>_<*Fqi(g7HDyPS*bK`KFl8 z1^32ejsij7t?EV)%DD!f4rL(-d7J)O$~Q&|xxI3`;2)EI1OpWI^KU8p47h4|eo#Fj zF4}M_f9O_1@LG>2@h=8|aQ{~?=N;9=w*7H>4??J^R1x&jq(}=95tOcUkq%PD2uQg^ z5CKCkHbg*>azl|`M1cTOm6p&Wy^0b90#d|?FZ!PAzIWg6%3tp{d#`=I^Vw(4%$mJs zt(mpvoK|jVTY+`ft3NMogCVO`A(&Hkj;|3j(>AujbP!HHx5q;PHQjDjac>>*Y)Qk* zXS-;2-Awun-BNw$-@E+(3+zW8S#JMf5$b8-U^7B%84zv(bF^T#{wYWN>#$!+KcKx= zYWY``)U$SHjySTW&UM`ml^*uSWVZtL9)Ihf&K_$-mfs2K8?F0i341QwQCi1)=T!IQ zt_VVY*6;D3_47qU;^)}+fK3rIEvPwGjXUleQ2W*s!GPxI@;LzIl?8?6Rs^!G`S&mJ z{t}<?`^5SJ$0@UlH7V;|-jar6V^jA@Yi|N}7wge}Q;3&qS++q)N_@~>a$7@}1D&p1 zB#K_M>frUhShG|z1*@@{vH2R+oi|HaZLUjF=&B}~wDQ&p%0+-~LauA~15{5fPNw+( zhxn$nNC|CWaog}|!7ov4`|(e{z1%ucucdRU@I4bBKCHvcfoyK6;mc=Y+reW+ZnyZq zq#*)3Cl5&W3^r`zA(@mQD-YWDvD-$ZjGM&8HVGl+&lPW?jWn;uP4PAy4K!FyB}!Lb zcCKr`7CQy}4z30$moq2KmbhEKG+#1(XkdY;?tXT>ytuJ=#nA#*QXFX!P*KcjIr6HQ zQnFdyjX#cj_TM6>N#PEPK5WT;zZ>`IA^O9K-NEPHZv&+#rawK$eefY6Cr(~PYfq%Q zPoT$>3Sk%3a|6$Qj2Y*y74teboKy&Y<YimzThy5izU4(JdbyMCUH*4r=8x--TJ6|^ zq$d9q8#9QW03MGi2AeT7DFpSsy-iZPPHj)!9yNMOP1!}4kWvC*Rb|?v0k7*hFO7+i zBnb6ziywIa7_6x1;Xxog&C$}1#4rJV4enzk07l?+MMY1KK|+3xp7yUnZjO$2Jcb`2 z4YpCN@$eWR{2F+A3=yz7M%oz|Wq=QOT(Rbt00vf5yy5YlK*-6_){e$-0)7eFZl&+< zR;)YCv^7KrnH(TK?=H^Vzx7jmZg%~G+GE~3N8GLnM3mZXxs5fxRYC>!W&BER4+kOE z5w?e0sO{lKZ+p0D+a7LWwuhUG?cw&tZ6#D;yXkSrj3Ew%ojzr@o>8>hH~bUtpT^LG zI9*jz=Kd-k%w51}gE+6K{6!?Ws@$79j}Zg?RkSlaNDBux567}f4)_BR$9@EP+M^Or z|C!;r;7q4)c$%6%4B})4NWgy&haK?uLw}n1*U1T$>rq`zJn%2Z!K-1Kfyact3-!5w zqd#{vw{^b`L$=LOJtjD5Wc5Msz5)qff~-53-1jHpOPebWTKCyWvL($m2ZQ?tB-zsD zs)O$R6QuHzY-?m?*gW7{JLDkt6om)1cWipYq;W1g2EmO!zGJ>xL^P``a5m}4ibGK6 zTT;PeqC%y+Grm157Qus-*fIP8mYwk(S@8$~w9Jm}>Pw=3<#%8ogX2Pr?3`J>Lu9WM zaF%WV0i<?JSN|XyR6cT+?XZu-@uI(jhr|<=R?g+^_OUo1`sj}S4>0Cj-eDh)<3~&H z*sRtPy(_<iCeF%crUXZ(8K%a&Te|%aRn+2tipyqgrA2d=-<n6hp|*3s?=^*bd%YOJ zt;<b2HMRvulQ|b)o$3ief<Hi4a55RbfapXg><X^SPrEdB?R91hX0N{e3c@y}6f{K@ z1lpLXmli!49X9s%Dp0B&N+0($`dEYAcP%!-Qgfjvsc7XswS#%KVdz)mzc{t$-wg0e zy!L1%tmsF0GMaz{-8y;TN_n$)pL}e=q%-?}0%D)c{OO*~&dWjna%>v$^OIkDnvz6d zn7>l@h@@4XZKB`*USPcxE%J)MMk5}@x@Jo0#RKMvhoGTLi3e<n=W*fG&%&RZ42>a8 zJ}n1r2<<!CeL5(e2AvxnhAxw?jINt*mL5v4NgqPr%fP~5%z$NRXOv_NV=QAFXQVKJ znKYS_nAw=sm}8h*n0HvjS@c=%vDCBlvuv_LS(RC@v8J<*vvIQ7u%)prvNNzNv)izz zv$wL(bFgtpaHw%ua`<sXab$A51Dpi70jdBLPF>FaBb-O%j<_93JyOU;!==U*$koct z#eJGPhWj;;1}F-21114GfonV}Jo-Ejcsi-J!K=(0&P(6}^QrOW^Y!y<^55jI;(yIg z5I8MhDiAJEAuul}DyShCBA72&CO9a#2@(dGgS<fDpj6NzXa~#!27`YCp9b52^T8G1 zR`4+R9e5wY0f9s0AZH;dkX%R&q!U7ftUwN+$DtT#8nhVN2qi%0VQ^RqEEiS->x2<u zD=-Q?9G(Erf>*#>;luEE@I4_mA-GV4&;uc?&<mk%p-G`NVPWAg;S}Lq;TqviVWNnn zh?<C@NWQ3`sD|h@(M-`Y(H2pn=%yHpn2eaEScupIu`01avG?Lo@o;LXzOT47N^_Qm zkw%q<frgH{qL?g=EfsUp7*JO!p$*P_Vva!ZXmN!Ks5^8sv)qp2Ix`_G!khikJcUk5 z$dZ@$C{QaW=k26Ve@5nd39eSOK&N~C=~F#gWCT#l;P%s5cLMnuP9hK}x#1Z!ljJ_# z+ou6(!Oeo`I5bV15S()H$#4@#>MY^1S*HtIFXA$^@C$mq%qT=wYvOEt*HExLxpM(D zS=O?kI$6FNqLEy&`DTGJYQzdIJMX)#uD~>MX*!|Dex9ao<JAJI?ya2{5zBiYeECF) zTfxAfNQLBr4dLK*vf?x&QX}hCUTirWKc}~p)U_3Cr-!f?K3F1)+FRl)XcMD){GOZ< z!OY%kG{|L9t$$y=Irz-zS&Qn}NwA0Ch=!MQ?5I)5@+X5gVim?$1?|=b$;+>~=pbqX zmf6MD?SuN<OH)k)dJ}Q}m6IOIUX$qt&I<VZ=CRw8H~hs)`xP*2_e}2UI3{O;*wX8d z^Po?PP5N0B^zxFOuN41YHYnw%B_GsA0FPOS%Ja)qVBi;5z@|-Jk>)!2Ro0-3Jh!Ui zwBVJaL!Q5-Cw2ztB>6A+$yKcDpSYRa9hGAc7kY)Qson$A$Nf$O_3=1L?=oc2-YPZ_ zt!hhRG7J2pZD=;_IW*deNy=_LYHMXn<GN)V!uRSZA2KB=@U5u3)CtIBGSOh+ri;~w z3miI9(ec;bpE>W8m|$@(-Q}(jr;c#7^$k}CsHBs5F8ec%kvs)%DVL-8ysQD8k~~uh zo!}`#xz$3)`Exgzj@>X=<{SQ;`Qn%>QN?pnN;_KZ)7gpfHGN!|pC3>k5523Buxb4D zn<w=(Isjm4EXEqj9Ks57kB;1T_nKHQw&qiNBUw=4qyA|o@cxBsY>{ubb;qyh*&6@; zF!tzIraE%k=CNCsUiADHduD31<mqfeNZHHhrR`o;x*C*I2F``6OBLkZep~S)c2>Z! zj3mB`gsQ&mS86uIoZic8$TxiQ<J^xldX1>l?iqQvKbCHf_S-+R<llgVN@zZ$J_^B^ zJ_IXNA}vk$-13b=Q}jB{>LWtmo7z0_OUT+^8Md!v6#<sT1Zc0q<Yl<f9Zj?2Nf)oF zB3m*vZp}VynQ46iRXrGc_9BHL_MZ3&QJsrLaZ)lytVbW3+JLS+G_$AvAZdDu&%(mY z4xlt*dKnflV&*^(P#U!6F;W_`WtXnKS5~V$?p1)}R9nffmZ@LCHo!wxj%uSqUAqUZ zkY53E1mQ@4{IFbGqTHZlUZVV{%7T&HfcSkQ`4PpTzUz}tB%kYjaG|R;ZOUJu0pbrF zy(I_K8oqw&2}Jt@4xy2&LA|Iu2P%tE=rt8j>{a!?&C^7?T?CmRmK>TegI+6gH-7xF z!H$fQZB*=Xckq$7YS&=zeMAZ`ytB!$+3}mHW2H%|wOi4WrOjMbq~+x+iM368@8ZUc z)fW<jrqxK9@iH%$8riQ+EY?HHF!#>9k*b_L9}=SL=2at1o#}Nh^16+&BL8C7W~-Js zSo}&y#Cv4Ow9mO8_ueSJ!MN=-mrhWlajv;bOhrr!eCvApN9+BwQiiP&!D)Br&+6-# zIGJfjK9Gn>E#Ii`ao7;yy&2(KsM0ZlsISk%uMLRLvz)=ky0X!>Iay;i$2s12dz{oW zjPy@-3GM!BZv?BuJ}>#;SL``{6@lxKPFY=fCr!I_A=T7gJapf9cF}q$N7K<^oy;kW z27|~<uvXa{T;4avIa!#b_w*WLOerj5JR2+8?8+M#5&8O$jS8AhJx4cGR8;xa_YF)< zKDV;mxGDdPX1cm=+a`hD1wZ&WF`}2)g$>qPiuX-j)|cLzzvLrjZeRF~^5I}pz^MK- F;UD<^W={YB literal 0 HcmV?d00001 diff --git a/tests/resources/screenshot-override/override.css b/tests/resources/screenshot-override/override.css new file mode 100644 index 0000000000..8bc65e63d3 --- /dev/null +++ b/tests/resources/screenshot-override/override.css @@ -0,0 +1,28 @@ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url(tests/resources/screenshot-override/open_sans.woff) format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url(tests/resources/screenshot-override/open_sans_b.woff) format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: url(tests/resources/screenshot-override/open_sans_i.woff) format('woff'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: url(tests/resources/screenshot-override/open_sans_bi.woff) format('woff'); +} + +* { + font-family: 'Open Sans'; +} \ No newline at end of file diff --git a/tests/resources/screenshot-override/override.js b/tests/resources/screenshot-override/override.js new file mode 100644 index 0000000000..c354d5ca13 --- /dev/null +++ b/tests/resources/screenshot-override/override.js @@ -0,0 +1,41 @@ +(function ($) { + + var DEBUG_LOGGING = true; + + if (DEBUG_LOGGING) { + var log = function(message) { + console.log(message); + }; + } else { + var log = function() {}; + } + + var triggerRenderInsane = function () { + console.log("__AJAX_DONE__"); + }; + + var triggerRender = function () { + if (window.globalAjaxQueue.active === 0) { // sanity check + triggerRenderInsane(); + } + }; + + var triggerRenderIfNoAjax = function () { + setTimeout(function () { // allow other javascript to execute in case they execute ajax/add images/set the src of images + if (window.globalAjaxQueue.active === 0) { + $('body').waitForImages({ + waitForAll: true, + finished: function () { + // wait some more to make sure other javascript is executed & the last image is rendered + setTimeout(triggerRender, 1000); + }, + }); + } + }, 1); + }; + + window.piwik = window.piwik || {}; + window.piwik.ajaxRequestFinished = triggerRenderIfNoAjax; + window.piwik._triggerRenderInsane = triggerRenderInsane; + +}(jQuery)); \ No newline at end of file diff --git a/tests/travis/prepare.sh b/tests/travis/prepare.sh index b45bbe7039..04f50f0354 100755 --- a/tests/travis/prepare.sh +++ b/tests/travis/prepare.sh @@ -4,6 +4,20 @@ set -e # Install XMLStarlet sudo apt-get install -qq xmlstarlet +# Install phantomjs 1.9.1 for UI tests +if [ "$TEST_DIR" = "UI" ]; +then + cd tmp + wget "https://phantomjs.googlecode.com/files/phantomjs-1.9.1-linux-x86_64.tar.bz2" -O phantomjs.tar.bz2 + tar xvjf phantomjs.tar.bz2 + cd phantomjs* + export PATH=$PATH:`pwd`/bin + cd ../.. + + echo "Using phantomjs version:" + phantomjs --version +fi + # Copy Piwik configuration echo "Install config.ini.php" cp ./tests/PHPUnit/config.ini.travis.php ./config/config.ini.php diff --git a/tests/travis/upload_artifacts.sh b/tests/travis/upload_artifacts.sh index 1d829c4ca5..84cbab9efe 100755 --- a/tests/travis/upload_artifacts.sh +++ b/tests/travis/upload_artifacts.sh @@ -1,16 +1,30 @@ -if [ "$TEST_SUITE" != "IntegrationTests" ]; +#!/bin/bash + +if [ "$TEST_SUITE" = "IntegrationTests" ]; then - echo "No artifacts for $TEST_SUITE tests."; - exit; -fi + url="http://builds-artifacts.piwik.org/upload.php?auth_key=$ARTIFACTS_PASS&artifact_name=processed&branch=$TRAVIS_BRANCH&build_id=$TRAVIS_JOB_NUMBER" + + echo "Uploading artifacts for $TEST_SUITE..." -url="http://builds-artifacts.piwik.org/upload.php?auth_key=$ARTIFACTS_PASS&artifact_name=processed&branch=$TRAVIS_BRANCH&build_id=$TRAVIS_JOB_NUMBER" + cd ./tests/PHPUnit/Integration -echo "Uploading artifacts for $TEST_SUITE..." + # upload processed tarball + tar -cjf processed.tar.bz2 processed --exclude='.gitkeep' + curl -X POST --data-binary @processed.tar.bz2 "$url" +else + if [ "$TEST_DIR" = "UI" ]; + then + url="http://builds-artifacts.piwik.org/upload.php?auth_key=$ARTIFACTS_PASS&artifact_name=processed-ui-screenshots&branch=$TRAVIS_BRANCH&build_id=$TRAVIS_JOB_NUMBER" -cd ./tests/PHPUnit/Integration + echo "Uploading artifacts for $TEST_DIR..." -# upload processed tarball -tar -cjf processed.tar.bz2 processed --exclude='.gitkeep' -curl -X POST --data-binary @processed.tar.bz2 "$url" + cd ./tests/PHPUnit/UI + # upload processed tarball + tar -cjf processed-ui-screenshots.tar.bz2 processed-ui-screenshots --exclude='.gitkeep' + curl -X POST --data-binary @processed-ui-screenshots.tar.bz2 "$url" + else + echo "No artifacts for $TEST_SUITE tests." + exit + fi +fi \ No newline at end of file -- GitLab