First commit
This commit is contained in:
commit
c6e2478c40
13918 changed files with 2303184 additions and 0 deletions
16
sites/all/modules/civicrm/bower_components/qunit/addons/canvas/README.md
vendored
Normal file
16
sites/all/modules/civicrm/bower_components/qunit/addons/canvas/README.md
vendored
Normal file
|
@ -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
|
76
sites/all/modules/civicrm/bower_components/qunit/addons/canvas/canvas-test.js
vendored
Normal file
76
sites/all/modules/civicrm/bower_components/qunit/addons/canvas/canvas-test.js
vendored
Normal file
|
@ -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);
|
||||
});
|
15
sites/all/modules/civicrm/bower_components/qunit/addons/canvas/canvas.html
vendored
Normal file
15
sites/all/modules/civicrm/bower_components/qunit/addons/canvas/canvas.html
vendored
Normal file
|
@ -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>
|
6
sites/all/modules/civicrm/bower_components/qunit/addons/canvas/qunit-canvas.js
vendored
Normal file
6
sites/all/modules/civicrm/bower_components/qunit/addons/canvas/qunit-canvas.js
vendored
Normal file
|
@ -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);
|
||||
}
|
||||
});
|
17
sites/all/modules/civicrm/bower_components/qunit/addons/close-enough/README.md
vendored
Normal file
17
sites/all/modules/civicrm/bower_components/qunit/addons/close-enough/README.md
vendored
Normal file
|
@ -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
|
35
sites/all/modules/civicrm/bower_components/qunit/addons/close-enough/close-enough-test.js
vendored
Normal file
35
sites/all/modules/civicrm/bower_components/qunit/addons/close-enough/close-enough-test.js
vendored
Normal file
|
@ -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);
|
||||
});
|
14
sites/all/modules/civicrm/bower_components/qunit/addons/close-enough/close-enough.html
vendored
Normal file
14
sites/all/modules/civicrm/bower_components/qunit/addons/close-enough/close-enough.html
vendored
Normal file
|
@ -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>
|
32
sites/all/modules/civicrm/bower_components/qunit/addons/close-enough/qunit-close-enough.js
vendored
Normal file
32
sites/all/modules/civicrm/bower_components/qunit/addons/close-enough/qunit-close-enough.js
vendored
Normal file
|
@ -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);
|
||||
}
|
||||
});
|
12
sites/all/modules/civicrm/bower_components/qunit/addons/composite/README.md
vendored
Normal file
12
sites/all/modules/civicrm/bower_components/qunit/addons/composite/README.md
vendored
Normal file
|
@ -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.
|
26
sites/all/modules/civicrm/bower_components/qunit/addons/composite/composite-demo-test.html
vendored
Normal file
26
sites/all/modules/civicrm/bower_components/qunit/addons/composite/composite-demo-test.html
vendored
Normal file
|
@ -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>
|
33
sites/all/modules/civicrm/bower_components/qunit/addons/composite/index.html
vendored
Normal file
33
sites/all/modules/civicrm/bower_components/qunit/addons/composite/index.html
vendored
Normal file
|
@ -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>
|
13
sites/all/modules/civicrm/bower_components/qunit/addons/composite/qunit-composite.css
vendored
Normal file
13
sites/all/modules/civicrm/bower_components/qunit/addons/composite/qunit-composite.css
vendored
Normal file
|
@ -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;
|
||||
}
|
102
sites/all/modules/civicrm/bower_components/qunit/addons/composite/qunit-composite.js
vendored
Normal file
102
sites/all/modules/civicrm/bower_components/qunit/addons/composite/qunit-composite.js
vendored
Normal file
|
@ -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 ) );
|
44
sites/all/modules/civicrm/bower_components/qunit/addons/junitlogger/index.html
vendored
Normal file
44
sites/all/modules/civicrm/bower_components/qunit/addons/junitlogger/index.html
vendored
Normal file
|
@ -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>
|
268
sites/all/modules/civicrm/bower_components/qunit/addons/junitlogger/junitlogger.js
vendored
Normal file
268
sites/all/modules/civicrm/bower_components/qunit/addons/junitlogger/junitlogger.js
vendored
Normal file
|
@ -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"');
|
||||
}
|
||||
})();
|
14
sites/all/modules/civicrm/bower_components/qunit/addons/phantomjs/README.md
vendored
Normal file
14
sites/all/modules/civicrm/bower_components/qunit/addons/phantomjs/README.md
vendored
Normal file
|
@ -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).
|
97
sites/all/modules/civicrm/bower_components/qunit/addons/phantomjs/runner.js
vendored
Normal file
97
sites/all/modules/civicrm/bower_components/qunit/addons/phantomjs/runner.js
vendored
Normal file
|
@ -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 );
|
||||
}
|
18
sites/all/modules/civicrm/bower_components/qunit/addons/step/README.md
vendored
Normal file
18
sites/all/modules/civicrm/bower_components/qunit/addons/step/README.md
vendored
Normal file
|
@ -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();
|
||||
});
|
25
sites/all/modules/civicrm/bower_components/qunit/addons/step/qunit-step.js
vendored
Normal file
25
sites/all/modules/civicrm/bower_components/qunit/addons/step/qunit-step.js
vendored
Normal file
|
@ -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;
|
||||
});
|
13
sites/all/modules/civicrm/bower_components/qunit/addons/step/step-test.js
vendored
Normal file
13
sites/all/modules/civicrm/bower_components/qunit/addons/step/step-test.js
vendored
Normal file
|
@ -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");
|
||||
});
|
14
sites/all/modules/civicrm/bower_components/qunit/addons/step/step.html
vendored
Normal file
14
sites/all/modules/civicrm/bower_components/qunit/addons/step/step.html
vendored
Normal file
|
@ -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>
|
6
sites/all/modules/civicrm/bower_components/qunit/addons/themes/README.md
vendored
Normal file
6
sites/all/modules/civicrm/bower_components/qunit/addons/themes/README.md
vendored
Normal file
|
@ -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.
|
362
sites/all/modules/civicrm/bower_components/qunit/addons/themes/gabe.css
vendored
Normal file
362
sites/all/modules/civicrm/bower_components/qunit/addons/themes/gabe.css
vendored
Normal file
|
@ -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;
|
||||
}
|
14
sites/all/modules/civicrm/bower_components/qunit/addons/themes/gabe.html
vendored
Normal file
14
sites/all/modules/civicrm/bower_components/qunit/addons/themes/gabe.html
vendored
Normal file
|
@ -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>
|
208
sites/all/modules/civicrm/bower_components/qunit/addons/themes/nv.css
vendored
Normal file
208
sites/all/modules/civicrm/bower_components/qunit/addons/themes/nv.css
vendored
Normal file
|
@ -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;
|
||||
}
|
14
sites/all/modules/civicrm/bower_components/qunit/addons/themes/nv.html
vendored
Normal file
14
sites/all/modules/civicrm/bower_components/qunit/addons/themes/nv.html
vendored
Normal file
|
@ -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>
|
Loading…
Add table
Add a link
Reference in a new issue