diff options
Diffstat (limited to 'www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons')
26 files changed, 1494 insertions, 0 deletions
diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/README.md b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/README.md new file mode 100644 index 00000000..7c0f3663 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/README.md @@ -0,0 +1,16 @@ +Canvas - A QUnit Addon For Testing Canvas Rendering +================================ + +This addon for QUnit adds a pixelEqual method that allows you to assert +individual pixel values in a given canvas. + +Usage: + + pixelEqual(canvas, x, y, r, g, b, a, message) + +Where: + + * canvas: Reference to a canvas element + * x, y: Coordinates of the pixel to test + * r, g, b, a: The color and opacity value of the pixel that you except + * message: Optional message, same as for other assertions diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/canvas-test.js b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/canvas-test.js new file mode 100644 index 00000000..72ad66f4 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/canvas-test.js @@ -0,0 +1,76 @@ +test("Canvas pixels", function () { + var canvas = document.getElementById('qunit-canvas'), context; + try { + context = canvas.getContext('2d'); + } catch(e) { + // propably no canvas support, just exit + return; + } + context.fillStyle = 'rgba(0, 0, 0, 0)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 0, 0, 0, 0, 0, 0); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(255, 0, 0, 0)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 0, 0, 0, 0, 0, 0); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(0, 255, 0, 0)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 0, 0, 0, 0, 0, 0); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(0, 0, 255, 0)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 0, 0, 0, 0, 0, 0); + context.clearRect(0,0,5,5); + + context.fillStyle = 'rgba(0, 0, 0, 0.5)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 0, 0, 0, 0, 0, 127); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(255, 0, 0, 0.5)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 0, 0, 255, 0, 0, 127); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(0, 255, 0, 0.5)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 0, 0, 0, 255, 0, 127); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(0, 0, 255, 0.5)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 0, 0, 0, 0, 255, 127); + context.clearRect(0,0,5,5); + + context.fillStyle = 'rgba(0, 0, 0, 0.5)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 2, 2, 0, 0, 0, 127); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(255, 0, 0, 0.5)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 2, 2, 255, 0, 0, 127); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(0, 255, 0, 0.5)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 2, 2, 0, 255, 0, 127); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(0, 0, 255, 0.5)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 2, 2, 0, 0, 255, 127); + context.clearRect(0,0,5,5); + + context.fillStyle = 'rgba(0, 0, 0, 1)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 4, 4, 0, 0, 0, 255); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(255, 0, 0, 1)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 4, 4, 255, 0, 0, 255); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(0, 255, 0, 1)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 4, 4, 0, 255, 0, 255); + context.clearRect(0,0,5,5); + context.fillStyle = 'rgba(0, 0, 255, 1)'; + context.fillRect(0, 0, 5, 5); + QUnit.pixelEqual(canvas, 4, 4, 0, 0, 255, 255); + context.clearRect(0,0,5,5); +}); diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/canvas.html b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/canvas.html new file mode 100644 index 00000000..5d253b8c --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/canvas.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="UTF-8" /> + <title>QUnit Test Suite - Canvas Addon</title> + <link rel="stylesheet" href="../../qunit/qunit.css" type="text/css" media="screen"> + <script type="text/javascript" src="../../qunit/qunit.js"></script> + <script type="text/javascript" src="qunit-canvas.js"></script> + <script type="text/javascript" src="canvas-test.js"></script> +</head> +<body> + <div id="qunit"></div> + <canvas id="qunit-canvas" width="5" height="5"></canvas> +</body> +</html> diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/qunit-canvas.js b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/qunit-canvas.js new file mode 100644 index 00000000..bc26c4ca --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/canvas/qunit-canvas.js @@ -0,0 +1,6 @@ +QUnit.extend( QUnit, { + pixelEqual: function(canvas, x, y, r, g, b, a, message) { + var actual = Array.prototype.slice.apply(canvas.getContext('2d').getImageData(x, y, 1, 1).data), expected = [r, g, b, a]; + QUnit.push(QUnit.equiv(actual, expected), actual, expected, message); + } +}); diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/README.md b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/README.md new file mode 100644 index 00000000..d490b250 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/README.md @@ -0,0 +1,17 @@ +Close-Enough - A QUnit Addon For Number Approximations +================================ + +This addon for QUnit adds close and notClose assertion methods, to test that +numbers are close enough (or different enough) from an expected number, with +a specified accuracy. + +Usage: + + close(actual, expected, maxDifference, message) + notClose(actual, expected, minDifference, message) + +Where: + + * maxDifference: the maximum inclusive difference allowed between the actual and expected numbers + * minDifference: the minimum exclusive difference allowed between the actual and expected numbers + * actual, expected, message: The usual diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/close-enough-test.js b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/close-enough-test.js new file mode 100644 index 00000000..fc6a9a82 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/close-enough-test.js @@ -0,0 +1,35 @@ +test("Close Numbers", function () { + var halfPi = Math.PI / 2, + sqrt2 = Math.sqrt(2); + + QUnit.close(7, 7, 0); + QUnit.close(7, 7.1, 0.1); + QUnit.close(7, 7.1, 0.2); + + QUnit.close(3.141, Math.PI, 0.001); + QUnit.close(3.1, Math.PI, 0.1); + + QUnit.close(halfPi, 1.57, 0.001); + + QUnit.close(sqrt2, 1.4142, 0.0001); + + QUnit.close(Infinity, Infinity, 1); +}); + +test("Distant Numbers", function () { + var halfPi = Math.PI / 2, + sqrt2 = Math.sqrt(2); + + QUnit.notClose(6, 7, 0); + QUnit.notClose(7, 7.2, 0.1); + QUnit.notClose(7, 7.2, 0.19999999999); + + QUnit.notClose(3.141, Math.PI, 0.0001); + QUnit.notClose(3.1, Math.PI, 0.001); + + QUnit.notClose(halfPi, 1.57, 0.0001); + + QUnit.notClose(sqrt2, 1.4142, 0.00001); + + QUnit.notClose(Infinity, -Infinity, 5); +});
\ No newline at end of file diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/close-enough.html b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/close-enough.html new file mode 100644 index 00000000..f5683201 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/close-enough.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="UTF-8" /> + <title>QUnit Test Suite - Close Enough Addon</title> + <link rel="stylesheet" href="../../qunit/qunit.css" type="text/css" media="screen"> + <script type="text/javascript" src="../../qunit/qunit.js"></script> + <script type="text/javascript" src="qunit-close-enough.js"></script> + <script type="text/javascript" src="close-enough-test.js"></script> +</head> +<body> + <div id="qunit"></div> +</body> +</html> diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/qunit-close-enough.js b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/qunit-close-enough.js new file mode 100644 index 00000000..ddb5a584 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/close-enough/qunit-close-enough.js @@ -0,0 +1,32 @@ +QUnit.extend( QUnit, { + /** + * Checks that the first two arguments are equal, or are numbers close enough to be considered equal + * based on a specified maximum allowable difference. + * + * @example close(3.141, Math.PI, 0.001); + * + * @param Number actual + * @param Number expected + * @param Number maxDifference (the maximum inclusive difference allowed between the actual and expected numbers) + * @param String message (optional) + */ + close: function(actual, expected, maxDifference, message) { + var passes = (actual === expected) || Math.abs(actual - expected) <= maxDifference; + QUnit.push(passes, actual, expected, message); + }, + + /** + * Checks that the first two arguments are numbers with differences greater than the specified + * minimum difference. + * + * @example notClose(3.1, Math.PI, 0.001); + * + * @param Number actual + * @param Number expected + * @param Number minDifference (the minimum exclusive difference allowed between the actual and expected numbers) + * @param String message (optional) + */ + notClose: function(actual, expected, minDifference, message) { + QUnit.push(Math.abs(actual - expected) > minDifference, actual, expected, message); + } +});
\ No newline at end of file diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/README.md b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/README.md new file mode 100644 index 00000000..2e2d2fd7 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/README.md @@ -0,0 +1,12 @@ +Composite - A QUnit Addon For Running Multiple Test Files +================================ + +Composite is a QUnit addon that, when handed an array of files, will +open each of those files inside of an iframe, run the tests and +display the results as a single suite of QUnit tests. + +The Rerun link next to each suite allows you to quickly rerun that suite, +outside the composite runner. + +If you want to see what assertion failed in a long list of assertions, +just use the regular "Hide passed tests" checkbox.
\ No newline at end of file diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/composite-demo-test.html b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/composite-demo-test.html new file mode 100644 index 00000000..ad964c9d --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/composite-demo-test.html @@ -0,0 +1,26 @@ +<!doctype html> +<html lang="en"> +<head> + <meta charset="UTF-8" /> + <title>QUnit SubsuiteRunner Test Suite</title> + + <link rel="stylesheet" href="../../qunit/qunit.css" type="text/css" media="screen"> + <link rel="stylesheet" href="qunit-composite.css"> + <script src="../../qunit/qunit.js"></script> + <script src="qunit-composite.js"></script> + + <script> + QUnit.testSuites([ + "../../test/index.html", + "../canvas/canvas.html", + "../close-enough/close-enough.html", + "../step/step.html" + ]); + </script> +</head> +<body> + <div id="qunit"></div> + <div id="qunit-fixture"> +</div> +</body> +</html> diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/index.html b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/index.html new file mode 100644 index 00000000..b08f5e97 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/index.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8" /> + <title>Composite</title> + </head> + <body> + <h1>Composite</h1> + <h3>A QUnit Addon For Running Multiple Test Files</h3> + <p>Composite is a QUnit addon that, when handed an array of + files, will open each of those files inside of an iframe, run + the tests and display the results as a single suite of QUnit + tests.</p> + <h4>Using Composite</h4> + <p>To use Composite, setup a standard QUnit html page as you + would with other QUnit tests. Remember to include composite.js + and composite.css. Then, inside of either an external js file, + or a script block call the only new method that Composite + exposes, QUnit.testSuites().</p><p>QUnit.testSuites() is + passed an array of test files to run as follows:</p> + <pre> +QUnit.testSuites([ + "test-file-1.html", + "test-file-2.html", + "test-file-3.html" +]); + </pre> + <h4>Tests</h4> + <p> + <a href="composite-demo-test.html">Composite Demo</a>: A suite which demoes how Composite is bootstrapped and run. + </p> + </body> +</html> diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/qunit-composite.css b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/qunit-composite.css new file mode 100644 index 00000000..df47362d --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/qunit-composite.css @@ -0,0 +1,13 @@ +iframe.qunit-subsuite{ + position: fixed; + bottom: 0; + left: 0; + + margin: 0; + padding: 0; + border-width: 1px 0 0; + height: 45%; + width: 100%; + + background: #fff; +}
\ No newline at end of file diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/qunit-composite.js b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/qunit-composite.js new file mode 100644 index 00000000..89c47eb2 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/composite/qunit-composite.js @@ -0,0 +1,102 @@ +(function( QUnit ) { + +QUnit.extend( QUnit, { + testSuites: function( suites ) { + QUnit.begin(function() { + QUnit.initIframe(); + }); + + for ( var i = 0; i < suites.length; i++ ) { + QUnit.runSuite( suites[i] ); + } + + QUnit.done(function() { + this.iframe.style.display = "none"; + }); + }, + + runSuite: function( suite ) { + asyncTest( suite, function() { + QUnit.iframe.setAttribute( "src", suite ); + }); + }, + + initIframe: function() { + var body = document.body, + iframe = this.iframe = document.createElement( "iframe" ), + iframeWin; + + iframe.className = "qunit-subsuite"; + body.appendChild( iframe ); + + function onIframeLoad() { + var module, test, + count = 0; + + + iframeWin.QUnit.moduleStart(function( data ) { + // capture module name for messages + module = data.name; + }); + + iframeWin.QUnit.testStart(function( data ) { + // capture test name for messages + test = data.name; + }); + iframeWin.QUnit.testDone(function() { + test = null; + }); + + iframeWin.QUnit.log(function( data ) { + if (test === null) { + return; + } + // pass all test details through to the main page + var message = module + ": " + test + ": " + data.message; + expect( ++count ); + QUnit.push( data.result, data.actual, data.expected, message ); + }); + + iframeWin.QUnit.done(function() { + // start the wrapper test from the main page + start(); + }); + } + QUnit.addEvent( iframe, "load", onIframeLoad ); + + iframeWin = iframe.contentWindow; + } +}); + +QUnit.testStart(function( data ) { + // update the test status to show which test suite is running + QUnit.id( "qunit-testresult" ).innerHTML = "Running " + data.name + "...<br> "; +}); + +QUnit.testDone(function() { + var i, + current = QUnit.id( this.config.current.id ), + children = current.children, + src = this.iframe.src; + + // undo the auto-expansion of failed tests + for ( i = 0; i < children.length; i++ ) { + if ( children[i].nodeName === "OL" ) { + children[i].style.display = "none"; + } + } + + QUnit.addEvent(current, "dblclick", function( e ) { + var target = e && e.target ? e.target : window.event.srcElement; + if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) { + target = target.parentNode; + } + if ( window.location && target.nodeName.toLowerCase() === "strong" ) { + window.location = src; + } + }); + + current.getElementsByTagName('a')[0].href = src; +}); + +}( QUnit ) ); diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/junitlogger/index.html b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/junitlogger/index.html new file mode 100644 index 00000000..fe78af37 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/junitlogger/index.html @@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8" /> +<title>QUnit Test Suite - JUnit report</title> +<link rel="stylesheet" href="../../qunit/qunit.css" type="text/css" media="screen"> +<script type="text/javascript" src="../../qunit/qunit.js"></script> +<script type="text/javascript" src="junitlogger.js"></script> +<script type="text/javascript"> +QUnit.jUnitReport = function(data) { + console.log(data.xml); +}; + +module('Module 1'); + +test("test 1", 2, function () { + equal(1, 1, "Assert 1 = 1"); + equal(1, 2, "Assert fail 1 = 2"); +}); + +test("test 2", 3, function () { + equal(1, 1, "Assert 1 = 1"); + equal(1, 2, "Assert fail 1 = 2"); + equal(1, 1, "Assert 1 = 1"); +}); + +module('Module 2'); + +test("test 3", 2, function () { + equal(1, 1, "Assert 1 = 1"); + equal(1, 2, "Assert fail 1 = 2"); +}); + +test("test 4", 3, function () { + equal(1, 1, "Assert 1 = 1"); + equal(1, 2, "Assert fail 1 = 2"); + equal(1, 3, "Assert fail 1 = 3"); +}); +</script> +</head> +<body> + <div id="qunit"></div> +</body> +</html> diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/junitlogger/junitlogger.js b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/junitlogger/junitlogger.js new file mode 100644 index 00000000..dde47079 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/junitlogger/junitlogger.js @@ -0,0 +1,268 @@ +(function() { + var count = 0, suiteCount = 0, currentSuite, currentTest, suites = [], assertCount, start, results = {failed:0, passed:0, total:0, time:0}; + + QUnit.jUnitReport = function(data) { + // Gets called when a report is generated + }; + + QUnit.moduleStart(function(data) { + currentSuite = { + name: data.name, + tests: [], + failures: 0, + time: 0, + stdout : '', + stderr : '' + }; + + suites.push(currentSuite); + }); + + QUnit.moduleDone(function(data) { + }); + + QUnit.testStart(function(data) { + if(!start){ start = new Date(); } + + assertCount = 0; + + currentTest = { + name: data.name, + failures: [], + start: new Date() + }; + + // Setup default suite if no module was specified + if (!currentSuite) { + currentSuite = { + name: "default", + tests: [], + failures: 0, + time: 0, + stdout : '', + stderr : '' + }; + + suites.push(currentSuite); + } + + currentSuite.tests.push(currentTest); + }); + + QUnit.testDone(function(data) { + currentTest.failed = data.failed; + currentTest.total = data.total; + currentSuite.failures += data.failed; + + results.failed += data.failed; + results.passed += data.passed; + results.total += data.total; + }); + + QUnit.log(function(data) { + assertCount++; + + if (!data.result) { + currentTest.failures.push(data.message); + + // Add log message of failure to make it easier to find in jenkins UI + currentSuite.stdout += '[' + currentSuite.name + ', ' + currentTest.name + ', ' + assertCount + '] ' + data.message + '\n'; + } + }); + + QUnit.done(function(data) { + function ISODateString(d) { + function pad(n) { + return n < 10 ? '0' + n : n; + } + + return d.getUTCFullYear() + '-' + + pad(d.getUTCMonth() + 1)+'-' + + pad(d.getUTCDate()) + 'T' + + pad(d.getUTCHours()) + ':' + + pad(d.getUTCMinutes()) + ':' + + pad(d.getUTCSeconds()) + 'Z'; + } + + // Generate XML report + var i, ti, fi, test, suite, + xmlWriter = new XmlWriter({ + linebreak_at : "testsuites,testsuite,testcase,failure,system-out,system-err" + }), + now = new Date(); + + xmlWriter.start('testsuites'); + + for (i = 0; i < suites.length; i++) { + suite = suites[i]; + + // Calculate time + for (ti = 0; ti < suite.tests.length; ti++) { + test = suite.tests[ti]; + + test.time = (now.getTime() - test.start.getTime()) / 1000; + suite.time += test.time; + } + + xmlWriter.start('testsuite', { + id: "" + i, + name: suite.name, + errors: "0", + failures: suite.failures, + hostname: "localhost", + tests: suite.tests.length, + time: Math.round(suite.time * 1000) / 1000, + timestamp: ISODateString(now) + }); + + for (ti = 0; ti < suite.tests.length; ti++) { + test = suite.tests[ti]; + + xmlWriter.start('testcase', { + name: test.name, + total: test.total, + failed: test.failed, + time: Math.round(test.time * 1000) / 1000 + }); + + for (fi = 0; fi < test.failures.length; fi++) { + xmlWriter.start('failure', {type: "AssertionFailedError", message: test.failures[fi]}, true); + } + + xmlWriter.end('testcase'); + } + + if (suite.stdout) { + xmlWriter.start('system-out'); + xmlWriter.cdata('\n' + suite.stdout); + xmlWriter.end('system-out'); + } + + if (suite.stderr) { + xmlWriter.start('system-err'); + xmlWriter.cdata('\n' + suite.stderr); + xmlWriter.end('system-err'); + } + + xmlWriter.end('testsuite'); + } + + xmlWriter.end('testsuites'); + + results.time = new Date() - start; + + QUnit.jUnitReport({ + results:results, + xml: xmlWriter.getString() + }); + }); + + function XmlWriter(settings) { + function addLineBreak(name) { + if (lineBreakAt[name] && data[data.length - 1] !== '\n') { + data.push('\n'); + } + } + + function makeMap(items, delim, map) { + var i; + + items = items || []; + + if (typeof(items) === "string") { + items = items.split(','); + } + + map = map || {}; + + i = items.length; + while (i--) { + map[items[i]] = {}; + } + + return map; + } + + function encode(text) { + var baseEntities = { + '"' : '"', + "'" : ''', + '<' : '<', + '>' : '>', + '&' : '&' + }; + + return ('' + text).replace(/[<>&\"\']/g, function(chr) { + return baseEntities[chr] || chr; + }); + } + + var data = [], stack = [], lineBreakAt; + + settings = settings || {}; + lineBreakAt = makeMap(settings.linebreak_at || 'mytag'); + + this.start = function(name, attrs, empty) { + if (!empty) { + stack.push(name); + } + + data.push('<', name); + + for (var aname in attrs) { + data.push(" " + encode(aname), '="', encode(attrs[aname]), '"'); + } + + data.push(empty ? ' />' : '>'); + addLineBreak(name); + }; + + this.end = function(name) { + stack.pop(); + addLineBreak(name); + data.push('</', name, '>'); + addLineBreak(name); + }; + + this.text = function(text) { + data.push(encode(text)); + }; + + this.cdata = function(text) { + data.push('<![CDATA[', text, ']]>'); + }; + + this.comment = function(text) { + data.push('<!--', text, '-->'); + }; + + this.pi = function(name, text) { + if (text) { + data.push('<?', name, ' ', text, '?>\n'); + } else { + data.push('<?', name, '?>\n'); + } + }; + + this.doctype = function(text) { + data.push('<!DOCTYPE', text, '>\n'); + }; + + this.getString = function() { + for (var i = stack.length - 1; i >= 0; i--) { + this.end(stack[i]); + } + + stack = []; + + return data.join('').replace(/\n$/, ''); + }; + + this.reset = function() { + data = []; + stack = []; + }; + + this.pi(settings.xmldecl || 'xml version="1.0" encoding="UTF-8"'); + } +})();
\ No newline at end of file diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/phantomjs/README.md b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/phantomjs/README.md new file mode 100644 index 00000000..ed6a4467 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/phantomjs/README.md @@ -0,0 +1,14 @@ +PhantomJS Runner +================ + +A runner for PhantomJS, providing console output for tests. + +Usage: + + phantomjs runner.js url + +Example: + + phantomjs runner.js http://localhost/qunit/test + +If you're using Grunt, you should take a look at its [qunit task](https://github.com/cowboy/grunt/blob/master/docs/task_qunit.md).
\ No newline at end of file diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/phantomjs/runner.js b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/phantomjs/runner.js new file mode 100644 index 00000000..fdc82428 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/phantomjs/runner.js @@ -0,0 +1,97 @@ +/* + * Qt+WebKit powered headless test runner using Phantomjs + * + * Phantomjs installation: http://code.google.com/p/phantomjs/wiki/BuildInstructions + * + * Run with: + * phantomjs runner.js [url-of-your-qunit-testsuite] + * + * E.g. + * phantomjs runner.js http://localhost/qunit/test + */ + +var url = phantom.args[0]; + +var page = require('webpage').create(); + +// Route "console.log()" calls from within the Page context to the main Phantom context (i.e. current "this") +page.onConsoleMessage = function(msg) { + console.log(msg); +}; + +page.onInitialized = function() { + page.evaluate(addLogging); +}; +page.open(url, function(status){ + if (status !== "success") { + console.log("Unable to access network: " + status); + phantom.exit(1); + } else { + // page.evaluate(addLogging); + var interval = setInterval(function() { + if (finished()) { + clearInterval(interval); + onfinishedTests(); + } + }, 500); + } +}); + +function finished() { + return page.evaluate(function(){ + return !!window.qunitDone; + }); +} + +function onfinishedTests() { + var output = page.evaluate(function() { + return JSON.stringify(window.qunitDone); + }); + phantom.exit(JSON.parse(output).failed > 0 ? 1 : 0); +} + +function addLogging() { + window.document.addEventListener( "DOMContentLoaded", function() { + var current_test_assertions = []; + + QUnit.testDone(function(result) { + var name = result.module + ': ' + result.name; + var i; + + if (result.failed) { + console.log('Assertion Failed: ' + name); + + for (i = 0; i < current_test_assertions.length; i++) { + console.log(' ' + current_test_assertions[i]); + } + } + + current_test_assertions = []; + }); + + QUnit.log(function(details) { + var response; + + if (details.result) { + return; + } + + response = details.message || ''; + + if (typeof details.expected !== 'undefined') { + if (response) { + response += ', '; + } + + response += 'expected: ' + details.expected + ', but was: ' + details.actual; + } + + current_test_assertions.push('Failed assertion: ' + response); + }); + + QUnit.done(function(result){ + console.log('Took ' + result.runtime + 'ms to run ' + result.total + ' tests. ' + result.passed + ' passed, ' + result.failed + ' failed.'); + window.qunitDone = result; + }); + }, false ); +} diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/README.md b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/README.md new file mode 100644 index 00000000..37af9df6 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/README.md @@ -0,0 +1,18 @@ +QUnit.step() - A QUnit Addon For Testing execution in order +============================================================ + +This addon for QUnit adds a step method that allows you to assert +the proper sequence in which the code should execute. + +Example: + + test("example test", function () { + function x() { + QUnit.step(2, "function y should be called first"); + } + function y() { + QUnit.step(1); + } + y(); + x(); + });
\ No newline at end of file diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/qunit-step.js b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/qunit-step.js new file mode 100644 index 00000000..1ed3ff06 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/qunit-step.js @@ -0,0 +1,25 @@ +QUnit.extend( QUnit, { + + /** + * Check the sequence/order + * + * @example step(1); setTimeout(function () { step(3); }, 100); step(2); + * @param Number expected The excepted step within the test() + * @param String message (optional) + */ + step: function (expected, message) { + this.config.current.step++; // increment internal step counter. + if (typeof message === "undefined") { + message = "step " + expected; + } + var actual = this.config.current.step; + QUnit.push(QUnit.equiv(actual, expected), actual, expected, message); + } +}); + +/** + * Reset the step counter for every test() + */ +QUnit.testStart(function () { + this.config.current.step = 0; +}); diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/step-test.js b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/step-test.js new file mode 100644 index 00000000..a78c534b --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/step-test.js @@ -0,0 +1,13 @@ +module('Step Addon'); +test("step", 3, function () { + QUnit.step(1, "step starts at 1"); + setTimeout(function () { + start(); + QUnit.step(3); + }, 100); + QUnit.step(2, "before the setTimeout callback is run"); + stop(); +}); +test("step counter", 1, function () { + QUnit.step(1, "each test has its own step counter"); +});
\ No newline at end of file diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/step.html b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/step.html new file mode 100644 index 00000000..95ba492d --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/step/step.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="UTF-8" /> + <title>QUnit Test Suite - Step Addon</title> + <link rel="stylesheet" href="../../qunit/qunit.css" type="text/css" media="screen"> + <script type="text/javascript" src="../../qunit/qunit.js"></script> + <script type="text/javascript" src="qunit-step.js"></script> + <script type="text/javascript" src="step-test.js"></script> +</head> +<body> + <div id="qunit"></div> +</body> +</html> diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/README.md b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/README.md new file mode 100644 index 00000000..8bc1862c --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/README.md @@ -0,0 +1,6 @@ +Themes +====== + +These custom themes fully replace the default qunit.css file and should work +with the default markup. To see them in action, open the html file for each. +They'll run the QUnit testsuite itself.
\ No newline at end of file diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/gabe.css b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/gabe.css new file mode 100644 index 00000000..e66aa1f1 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/gabe.css @@ -0,0 +1,362 @@ +/** + * QUnit Theme by Gabe Hendry + * + * http://docs.jquery.com/QUnit + * + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +/** General Styles and Page Sturcture */ +body { + font-family:Arial, 'sans serif'; + padding:20px 20px 0 20px; + position:relative; +} + +h1, h2, h3, h4, h5, h6, #qunit-header, #qunit-banner { + font-family:Calibri, Arial, 'sans-serif'; +} + +h2 #qunit-tests, h2 #qunit-testrunner-toolbar, h2 #qunit-userAgent, #qunit-testresult { + font-family: Arial, 'sans-serif'; +} + +#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } +#qunit-tests { font-size: smaller; } + + +/** Resets */ + +#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult { + margin: 0; + padding: 0; +} + + +/** Headers */ + +#qunit-header { + padding: 10px 0px 25px 0px; + color: #3B73B9; + font-size: 1.8em; + font-weight: normal; + height:2em; +} + +#qunit-header a { + text-decoration: none; + color: #3B73B9; + font-weight:bold; + padding-right:22px; + float:left; + +} + +#qunit-header label { + font-size:14px; + color:#6BC9ED; + float:right; + font-family:Arial, 'sans-serif'; + display: inline-block; +} + +#qunit-header a + label:after { + content: ' }'; +} + +#qunit-header label + label { + margin-right:8px; +} + +#qunit-header a:hover, #qunit-header a:focus { + color: #3B73B9; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAcCAYAAABoMT8aAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4RjRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERkFDNTFBMjMwREYxMUUxQTA3RjlDQkNDQzY3MkI4MCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERkFDNTFBMTMwREYxMUUxQTA3RjlDQkNDQzY3MkI4MCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4RjRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4RjRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PjKftvwAAAFqSURBVHja5NTNKwVRHMbxey9X3rrXStlY2ljJRiQLGytLIkUpIks7lIUFC9laCX+DhUiSlMRdsFBSdkqSt4u8ju+vnqkxZriZheTUp1NzzvxmzjnPTNxxnFiUlohFbL9fIL9xeOUf7EEiSgEbf8XUTwv04A59mIuyB2VowyqKvytQjkU8YwaFul6CJmQ+5MB38zSGUIAs8vCi3loc6bA3mECvJl2o0Jhn/B47qAorMIgU9lGJBc/YDZbQgNugAt1I4gGtepq1ZTxiHu2B34L6LpRiD6ee8UPUqfe2lPbl0i1Qoz4T8JCgm89hf6IKdwnX6tM5ZGIEb1py1i2wporNORToUDa2LStugVntdPKr3GvMUnmFUe8p2No3FNOBkCIWsn7NOcC6Pwd2EicoUiZsnVvYxZNutpM601F/CpIFpNazH5bIel1LqOAmqrWEwG/BirQorp3KgL3yMSZxFBYkf7OJ43/jp/ouwAB8JktCUeXXIAAAAABJRU5ErkJggg==') center right no-repeat; +} + +h2, p { + padding: 10px 0 10px 0; + margin:0; + font-size:1.3em; +} + +p { + padding-top:0; + font-size:small; + color:#7B7979; + line-height:1.6em; +} + +h2#qunit-banner { + height: 16px; + padding:5px 5px 5px 25px; + line-height:16px; + margin:0px 0 15px 0; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + background-position:0px; + background-repeat:no-repeat; + font-size:1em; + font-weight:normal; +} + +h2#qunit-banner.qunit-pass { + background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc1RjgyNEY5MzE2NzExRTFCQTA0RTIzMEVFNkY4ODM2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjc1RjgyNEZBMzE2NzExRTFCQTA0RTIzMEVFNkY4ODM2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzVGODI0RjczMTY3MTFFMUJBMDRFMjMwRUU2Rjg4MzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzVGODI0RjgzMTY3MTFFMUJBMDRFMjMwRUU2Rjg4MzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4C94F5AAAAwklEQVR42mL8//8/AyWAiYFCQLEBLOW7GEnVYwzEaUC8B4hXs5CoWRCIVwGxEtQQE1K9ANMMN5AUAzqA2AWJ/x6IzxJrAMi55WhiriBDYAYoEQi0DjSxdJDtsGgESd4F4jNYDAIF2m4oDQOzoBieDsqRbDoDpWEAXfMeqO0oCWkPmo1noH6eiWbYPSAOw5YSQYKr0cRnQg1BDvEwKI1hAEyyAk9AVsACDV9e6MRhSydyoBHKTKuh8bsHSTM+lzEABBgAXD0oIFydPtEAAAAASUVORK5CYII='); + color:#76B900; +} + +h2#qunit-banner.qunit-pass:after { + content:'Congrats! All of your tests passed!'; +} + +h2#qunit-banner.qunit-fail { + background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU5QUIzNEU2MzE2NzExRTE4ODc3OEVFNEY2NzhDMjM4IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjU5QUIzNEU3MzE2NzExRTE4ODc3OEVFNEY2NzhDMjM4Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTlBQjM0RTQzMTY3MTFFMTg4Nzc4RUU0RjY3OEMyMzgiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTlBQjM0RTUzMTY3MTFFMTg4Nzc4RUU0RjY3OEMyMzgiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz46NEjgAAAAzElEQVR42mL8//8/AyWABUS8N1EFUS5AfA+KcQFBIE6DsjsFz9yGGAAEu6EGgEA6EM/CoRmkzhiJX8EE5bggKZyJZAsuzQwwNhMOp6IbsgpNM9jn8DCAOnsmFkNgNrlg0dyJbMAsNE0MOPgwza5AfBbdC7OgLsEHUDRjCwNChqBoxhWIxngMQI8dDAPKsSlCM2AmLgNAkh04/I3TECZcJiNFrys+Q2AGhOLQPAsaaLgMwZkS0fMDLkPgBqzGoxnZEBMg3gM1CBzdAAEGABpTMr+umvCXAAAAAElFTkSuQmCC'); + color:#ee3324; +} + +h2#qunit-banner.qunit-fail:after { + content:'Oops! One or more tests failed!'; +} + +/** Test Runner Result Styles */ + +#qunit-testrunner-toolbar { + position:absolute; + top:55px; + right:20px; + color:#6BC9ED; + font-size:14px; +} + +#qunit-testrunner-toolbar:after { + content:' }'; +} + +h2#qunit-userAgent { + padding: 0; + color: #7B7979; + border:0; + font-size:small; + font-family: Arial, 'sans-serif'; + font-weight:normal; + font-style:italic; +} + +h2#qunit-userAgent:before { + content:'User Agents: '; +} + + +/** Tests: Pass/Fail */ + +#qunit-tests { + list-style-position: inside; + list-style-type:none; +} + +#qunit-tests li { + padding: 4px 10px; + list-style-position:outside; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + margin-bottom:5px; + position:relative; + *zoom:1; + list-style-type:none; +} + +#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running { + display: none; +} + +#qunit-tests li strong { + cursor: pointer; +} + +#qunit-tests li a { + display:block; + position:absolute; + right:10px; + padding:0px 16px 0 0; + font-size:0.8em; + background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAYCAYAAADOMhxqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4RjRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpENEZDRDdDQTMxODUxMUUxOTc3NEQ0OTUxNjc4REFEQiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpENEZDRDdDOTMxODUxMUUxOTc3NEQ0OTUxNjc4REFEQiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MDRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4RjRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpE8SAQAAAD3SURBVHjaYsw5+YYBC5gGxN+BuBhdgoUBO1AFYlMgFgXiOGQJJjSFrEDcC8RaQMwPxEFAvBuXDSDFP6D4F1SMG4gtgFgBiB+g2/ATiL8C8UIgPgMV+wvEujDFyBoWQRVPB+IsqOa3QCyFrBhZgysQMwLxFCjfB4hFgPgVlH8DiOcha/jHgBu0ALEMEH9G1rAXqikHi4ZkIP4DxEuQNaQBMReUngjEdkAcDPU8KKROAPFp5GAFBSUPNHZToZEFM+wsEHtgiziQJmYg7gPiy0B8HIiTgNgRX0yD/FFzYdXZK0B8Fchei5GWgBI40xJQbjQtjdi0BBBgAAsUYVWmfe1CAAAAAElFTkSuQmCC') bottom right no-repeat; + color: #3b73b9; + text-decoration: none; + height:12px; + top:5px; +} +#qunit-tests li a:hover, +#qunit-tests li a:focus { + color: #6bc9ed; + background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAYCAYAAADOMhxqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo4RjRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpENEZDRDdDQTMxODUxMUUxOTc3NEQ0OTUxNjc4REFEQiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpENEZDRDdDOTMxODUxMUUxOTc3NEQ0OTUxNjc4REFEQiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MDRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4RjRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpE8SAQAAAD3SURBVHjaYsw5+YYBC5gGxN+BuBhdgoUBO1AFYlMgFgXiOGQJJjSFrEDcC8RaQMwPxEFAvBuXDSDFP6D4F1SMG4gtgFgBiB+g2/ATiL8C8UIgPgMV+wvEujDFyBoWQRVPB+IsqOa3QCyFrBhZgysQMwLxFCjfB4hFgPgVlH8DiOcha/jHgBu0ALEMEH9G1rAXqikHi4ZkIP4DxEuQNaQBMReUngjEdkAcDPU8KKROAPFp5GAFBSUPNHZToZEFM+wsEHtgiziQJmYg7gPiy0B8HIiTgNgRX0yD/FFzYdXZK0B8Fchei5GWgBI40xJQbjQtjdi0BBBgAAsUYVWmfe1CAAAAAElFTkSuQmCC') top right no-repeat; +} +#qunit-tests li.pass strong > span {color:#76B900;} +#qunit-tests li.pass strong:first-child { + padding-left:20px; + background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5MTRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozODgyNDY5QzMxN0ExMUUxOTdFMkVCQkNENjFBMjc3RSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozODgyNDY5QjMxN0ExMUUxOTdFMkVCQkNENjFBMjc3RSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MTRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MTRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv7qI08AAAClSURBVHjaYvz//z8DKYClfBcjMeqUgFgQiM+yEKEYpHA3VFMYExEaVkEVg20ipKEDiF2g7LNAPIsJaqUgFsVpQFwOZb8H4nQQzQR13zuoAhgwhpoOA2FQGxiYkNw3E4phnoTZWgHEe2A6maC63yM54y6S4llA3InsTiaobhOYlUiKz0JNZ0DXAAL3gNgViFcjeRLZZkRMI7FhioyhBrzHFs4AAQYAz08iXvWgossAAAAASUVORK5CYII=') center left no-repeat; +} + +#qunit-tests li.fail strong > span {color:#EE3324;} +#qunit-tests li.fail strong:first-child { + padding-left:20px; + background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5MTRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0MzNBNEM0QzMxN0ExMUUxQjk0MUYyOEJCODA0OTM1OSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0MzNBNEM0QjMxN0ExMUUxQjk0MUYyOEJCODA0OTM1OSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MTRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MTRENzREMkRFMzBFMTExQkZCM0YxOUI1MEUyRUQ0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnO7dSIAAACtSURBVHjaYnxnrMIABEpA/B6K0YEgEBsD8VnBM7ffM0E5d6HYGIvi3UiYgQkqiCyJrAmZbwzTcBaKYZrOAHEaEM9E05wOIlig7nZFM20mmtM6gXgWzAYGJE1nsXgapLACxmFCkniPQwOKGLKGmVC3owMUcZiGDjTFs9BMhmuCxUM5muJ0qJ9Wo2lCcRII7IEFH9RPYbDQgaUCFqjVYdDkMQuLH9Khau6BOAABBgDmhyuetyQ3ywAAAABJRU5ErkJggg==') center left no-repeat; +} + +#qunit-tests li ol { + margin:0; + padding:10px 0 0 0; + background-color: #fff; +} + +#qunit-tests li ol li { + list-style-position: inside; + list-style-type:decimal; + *list-style-position: outside; +} + +#qunit-tests table { + border-collapse: collapse; + margin-top: .2em; +} + +#qunit-tests th { + text-align: right; + vertical-align: top; + padding: 0 .5em 0 0; +} + +#qunit-tests td { + vertical-align: top; +} + +#qunit-tests pre { + margin: 0; + white-space: pre-wrap; + word-wrap: break-word; +} + +#qunit-tests del { + background-color: #add566; + color: #555; + text-decoration: none; +} + +#qunit-tests ins { + background-color: #f5857c; + color: #555; + text-decoration: none; +} + +/*** Test Counts */ + +#qunit-tests b.counts { + color: #7B7979; + font-size:0.8em; + margin-left:10px; +} + +b.counts b.passed, b.counts b.failed { + display:inline-block; + padding:0px 1px; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + color:#FFF; +} + +b.counts b.passed { + background:#76b900; +} + +b.counts b.failed { + background:#ee3324; + } + + +#qunit-tests li li { + margin:0 0 5px; + padding: 0.4em 0.5em 0.4em 0.5em; + background-color: #fff; + border-bottom: none; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + overflow:auto; +} + +/*** Passing Styles */ + +#qunit-tests li li.pass { + color: #7B7979; + background-color: #fff; + border-left: 20px solid #76B900; +} + +#qunit-tests .pass { color: #76B900; background-color: #FFF; border: 1px solid #add566; } + +#qunit-tests .pass .test-actual, +#qunit-tests .pass .test-expected { color: #999999; } + + +/*** Failing Styles */ +#qunit-tests li.fail ol { + background:#f7f7f7; +} + +#qunit-tests li li.fail { + color: #7B7979; + background-color: #fff; + border-left: 20px solid #EE3324; + white-space: pre; +} + +#qunit-tests .fail { color: #EE3324; border: 1px solid #f5857c; background-color: #f7f7f7; } + + +#qunit-tests .fail .test-actual, +#qunit-tests .fail .test-expected { color: #999999; } + + + +/** Result */ + +p#qunit-testresult { + padding: 10px 0; + font-weight:bold; + line-height:1.6em; + color: #7B7979; +} + +p#qunit-testresult span.passed, p#qunit-testresult span.failed { + font-size:1.5em; + font-weight:bold; + display:inline-block; + padding:3px; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +p#qunit-testresult span.passed { + color:#FFF; + background:#76b900 +} + +p#qunit-testresult span.failed { + color:#FFF; + background:#ee3324; +} + + +/** Fixture */ + +#qunit-fixture { + position: absolute; + top: -10000px; + left: -10000px; + width: 1000px; + height: 1000px; +} diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/gabe.html b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/gabe.html new file mode 100644 index 00000000..ea532475 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/gabe.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html> +<head> + <title>QUnit Test Suite - Gabe Theme</title> + <link rel="stylesheet" href="gabe.css" type="text/css" media="screen"> + <script type="text/javascript" src="../../qunit/qunit.js"></script> + <script type="text/javascript" src="../../test/test.js"></script> + <script type="text/javascript" src="../../test/deepEqual.js"></script> +</head> +<body> + <div id="qunit"></div> + <div id="qunit-fixture">test markup</div> +</body> +</html> diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/nv.css b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/nv.css new file mode 100644 index 00000000..1453e4c0 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/nv.css @@ -0,0 +1,208 @@ +/** + * QUnit Theme by NV + * + * http://docs.jquery.com/QUnit + * + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +/** Font Family and Sizes */ + +#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { + font-family: "Helvetica Neue", Helvetica, sans-serif; +} + +#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } +#qunit-tests { font-size: smaller; } + + +/** Resets */ + +#qunit-wrapper, #qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult { + margin: 0; + padding: 0; +} + + +/** Header */ + +#qunit-header { + font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Helvetica, sans-serif; + padding: 0.5em 0 0.5em 1.3em; + + color: #8699a4; + background-color: #0d3349; + + font-size: 1.5em; + line-height: 1em; + font-weight: normal; +} + +#qunit-header a { + text-decoration: none; + color: #c2ccd1; +} + +#qunit-header a:hover, +#qunit-header a:focus { + color: #fff; +} + +#qunit-header label { + display: inline-block; +} + +#qunit-banner.qunit-pass { + height: 3px; +} +#qunit-banner.qunit-fail { + height: 5px; +} + +#qunit-testrunner-toolbar { + padding: 0 0 0.5em 2em; +} + +#qunit-testrunner-toolbar label { + margin-right: 1em; +} + +#qunit-userAgent { + padding: 0.5em 0 0.5em 2.5em; + font-weight: normal; + color: #666; +} + + +/** Tests: Pass/Fail */ + +#qunit-tests { + list-style-type: none; + background-color: #D2E0E6; +} + +#qunit-tests li { + padding: 0.4em 0.5em 0.4em 2.5em; +} + +#qunit-tests li strong { + font-weight: normal; + cursor: pointer; +} + +#qunit-tests ol { + margin: 0.5em 0 1em; + background-color: #fff; +} + +#qunit-tests table { + border-collapse: collapse; + margin-top: .2em; +} + +#qunit-tests th { + text-align: right; + vertical-align: top; + padding: 0 .5em 0 0; +} + +#qunit-tests td { + vertical-align: top; +} + +#qunit-tests pre { + margin: 0; + white-space: pre-wrap; + word-wrap: break-word; +} + +#qunit-tests del { + background-color: #e0f2be; + color: #374e0c; + text-decoration: none; +} + +#qunit-tests ins { + background-color: #ffcaca; + color: #500; + text-decoration: none; +} + +/*** Test Counts */ + +#qunit-tests b.passed { color: #5E740B; } +#qunit-tests b.failed { + color: #710909; +} +#qunit-tests li.fail .failed { + color: #E48989; +} +#qunit-tests li.fail .passed { + color: #E3C987; +} + +#qunit-tests li li { + margin-left: 2.5em; + padding: 0.7em 0.5em 0.7em 0; + background-color: #fff; + border-bottom: none; +} + +#qunit-tests b.counts { + font-weight: normal; +} + +/*** Passing Styles */ + +#qunit-tests li li.pass { + color: #5E740B; + background-color: #fff; +} + +#qunit-tests .pass { color: #2f3424; background-color: #d9dec3; } +#qunit-tests .pass .module-name { color: #636b51; } + +#qunit-tests .pass .test-actual, +#qunit-tests .pass .test-expected { color: #999999; } + +#qunit-banner.qunit-pass { background-color: #C6E746; } + +/*** Failing Styles */ + +#qunit-tests li li.fail { + color: #710909; + background-color: #fff; +} + +#qunit-tests .fail { color: #fff; background-color: #962323; } +#qunit-tests .fail .module-name, +#qunit-tests .fail .counts { color: #DEC1C1; } + +#qunit-tests .fail .test-actual { color: #B72F2F; } +#qunit-tests .fail .test-expected { color: green; } + +#qunit-banner.qunit-fail, +#qunit-testrunner-toolbar { color: #dec1c1; background-color: #962323; } + + +/** Footer */ + +#qunit-testresult { + padding: 0.5em 0.5em 0.5em 2.5em; + color: #333; +} +#qunit-testresult .module-name { + font-weight: bold; +} + +/** Fixture */ + +#qunit-fixture { + position: absolute; + top: -10000px; + left: -10000px; + width: 1000px; + height: 1000px; +} diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/nv.html b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/nv.html new file mode 100644 index 00000000..42084508 --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/bower_components/qunit/addons/themes/nv.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html> +<head> + <title>QUnit Test Suite - NV Theme</title> + <link rel="stylesheet" href="nv.css" type="text/css" media="screen"> + <script type="text/javascript" src="../../qunit/qunit.js"></script> + <script type="text/javascript" src="../../test/test.js"></script> + <script type="text/javascript" src="../../test/deepEqual.js"></script> +</head> +<body> + <div id="qunit"></div> + <div id="qunit-fixture">test markup</div> +</body> +</html> |