Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions external/qunit/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
Copyright 2006, 2014 jQuery Foundation and other contributors,
https://jquery.org/
Copyright jQuery Foundation and other contributors, https://jquery.org/

This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
Expand Down
26 changes: 21 additions & 5 deletions external/qunit/qunit.css
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
/*!
* QUnit 1.16.0
* QUnit 1.17.1
* http://qunitjs.com/
*
* Copyright 2006, 2014 jQuery Foundation and other contributors
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2014-12-03T16:32Z
* Date: 2015-01-20T19:39Z
*/

/** Font Family and Sizes */
Expand Down Expand Up @@ -77,6 +77,18 @@

#qunit-modulefilter-container {
float: right;
padding: 0.2em;
}

.qunit-url-config {
display: inline-block;
padding: 0.1em;
}

.qunit-filter {
display: block;
float: right;
margin-left: 1em;
}

/** Tests: Pass/Fail */
Expand All @@ -95,11 +107,15 @@
display: none;
}

#qunit-tests li.pass, #qunit-tests li.running, #qunit-tests li.fail {
#qunit-tests li.running,
#qunit-tests li.pass,
#qunit-tests li.fail,
#qunit-tests li.skipped {
display: list-item;
}

#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
#qunit-tests.hidepass li.running,
#qunit-tests.hidepass li.pass {
display: none;
}

Expand Down
178 changes: 117 additions & 61 deletions external/qunit/qunit.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
/*!
* QUnit 1.16.0
* QUnit 1.17.1
* http://qunitjs.com/
*
* Copyright 2006, 2014 jQuery Foundation and other contributors
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2014-12-03T16:32Z
* Date: 2015-01-20T19:39Z
*/

(function( window ) {
Expand Down Expand Up @@ -103,10 +103,6 @@ config = {
// block until document ready
blocking: true,

// when enabled, show only failing tests
// gets persisted through sessionStorage and can be changed in UI via checkbox
hidepassed: false,

// by default, run previously failed tests first
// very useful in combination with "Hide passed tests" checked
reorder: true,
Expand Down Expand Up @@ -180,6 +176,10 @@ config.modules.push( config.currentModule );
}
}

if ( urlParams.filter === true ) {
delete urlParams.filter;
}

QUnit.urlParams = urlParams;

// String search anywhere in moduleName+testName
Expand Down Expand Up @@ -363,24 +363,6 @@ extend( QUnit, {
return undefined;
},

url: function( params ) {
params = extend( extend( {}, QUnit.urlParams ), params );
var key,
querystring = "?";

for ( key in params ) {
if ( hasOwn.call( params, key ) ) {
querystring += encodeURIComponent( key );
if ( params[ key ] !== true ) {
querystring += "=" + encodeURIComponent( params[ key ] );
}
querystring += "&";
}
}
return location.protocol + "//" + location.host +
location.pathname + querystring.slice( 0, -1 );
},

extend: extend,

load: function() {
Expand Down Expand Up @@ -578,7 +560,7 @@ function process( last ) {
process( last );
}
var start = now();
config.depth = config.depth ? config.depth + 1 : 1;
config.depth = ( config.depth || 0 ) + 1;

while ( config.queue.length && !config.blocking ) {
if ( !defined.setTimeout || config.updateRate <= 0 ||
Expand Down Expand Up @@ -1141,7 +1123,7 @@ Test.prototype = {

valid: function() {
var include,
filter = config.filter && config.filter.toLowerCase(),
filter = config.filter,
module = QUnit.urlParams.module && QUnit.urlParams.module.toLowerCase(),
fullName = ( this.module.name + ": " + this.testName ).toLowerCase();

Expand All @@ -1164,7 +1146,7 @@ Test.prototype = {

include = filter.charAt( 0 ) !== "!";
if ( !include ) {
filter = filter.slice( 1 );
filter = filter.toLowerCase().slice( 1 );
}

// If the filter matches, we need to honour include
Expand Down Expand Up @@ -1987,12 +1969,15 @@ if ( typeof window !== "undefined" ) {
}

// For nodejs
if ( typeof module !== "undefined" && module.exports ) {
if ( typeof module !== "undefined" && module && module.exports ) {
module.exports = QUnit;

// For consistency with CommonJS environments' exports
module.exports.QUnit = QUnit;
}

// For CommonJS with exports, but without module.exports, like Rhino
if ( typeof exports !== "undefined" ) {
if ( typeof exports !== "undefined" && exports ) {
exports.QUnit = QUnit;
}

Expand Down Expand Up @@ -2340,7 +2325,10 @@ function getUrlConfigHtml() {
escaped = escapeText( val.id );
escapedTooltip = escapeText( val.tooltip );

config[ val.id ] = QUnit.urlParams[ val.id ];
if ( config[ val.id ] === undefined ) {
config[ val.id ] = QUnit.urlParams[ val.id ];
}

if ( !val.value || typeof val.value === "string" ) {
urlConfigHtml += "<input id='qunit-urlconfig-" + escaped +
"' name='" + escaped + "' type='checkbox'" +
Expand Down Expand Up @@ -2399,7 +2387,7 @@ function toolbarChanged() {
}

params[ field.name ] = value;
updatedUrl = QUnit.url( params );
updatedUrl = setUrl( params );

if ( "hidepassed" === field.name && "replaceState" in window.history ) {
config[ field.name ] = value || false;
Expand All @@ -2416,10 +2404,47 @@ function toolbarChanged() {
}
}

function setUrl( params ) {
var key,
querystring = "?";

params = QUnit.extend( QUnit.extend( {}, QUnit.urlParams ), params );

for ( key in params ) {
if ( hasOwn.call( params, key ) ) {
if ( params[ key ] === undefined ) {
continue;
}
querystring += encodeURIComponent( key );
if ( params[ key ] !== true ) {
querystring += "=" + encodeURIComponent( params[ key ] );
}
querystring += "&";
}
}
return location.protocol + "//" + location.host +
location.pathname + querystring.slice( 0, -1 );
}

function applyUrlParams() {
var selectBox = id( "qunit-modulefilter" ),
selection = decodeURIComponent( selectBox.options[ selectBox.selectedIndex ].value ),
filter = id( "qunit-filter-input" ).value;

window.location = setUrl({
module: ( selection === "" ) ? undefined : selection,
filter: ( filter === "" ) ? undefined : filter,

// Remove testId filter
testId: undefined
});
}

function toolbarUrlConfigContainer() {
var urlConfigContainer = document.createElement( "span" );

urlConfigContainer.innerHTML = getUrlConfigHtml();
addClass( urlConfigContainer, "qunit-url-config" );

// For oldIE support:
// * Add handlers to the individual elements instead of the container
Expand All @@ -2430,6 +2455,40 @@ function toolbarUrlConfigContainer() {
return urlConfigContainer;
}

function toolbarLooseFilter() {
var filter = document.createElement( "form" ),
label = document.createElement( "label" ),
input = document.createElement( "input" ),
button = document.createElement( "button" );

addClass( filter, "qunit-filter" );

label.innerHTML = "Filter: ";

input.type = "text";
input.value = config.filter || "";
input.name = "filter";
input.id = "qunit-filter-input";

button.innerHTML = "Go";

label.appendChild( input );

filter.appendChild( label );
filter.appendChild( button );
addEvent( filter, "submit", function( ev ) {
applyUrlParams();

if ( ev && ev.preventDefault ) {
ev.preventDefault();
}

return false;
});

return filter;
}

function toolbarModuleFilterHtml() {
var i,
moduleFilterHtml = "";
Expand Down Expand Up @@ -2463,25 +2522,14 @@ function toolbarModuleFilter() {
moduleFilter = document.createElement( "span" ),
moduleFilterHtml = toolbarModuleFilterHtml();

if ( !moduleFilterHtml ) {
if ( !toolbar || !moduleFilterHtml ) {
return false;
}

moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
moduleFilter.innerHTML = moduleFilterHtml;

addEvent( moduleFilter.lastChild, "change", function() {
var selectBox = moduleFilter.getElementsByTagName( "select" )[ 0 ],
selection = decodeURIComponent( selectBox.options[ selectBox.selectedIndex ].value );

window.location = QUnit.url({
module: ( selection === "" ) ? undefined : selection,

// Remove any existing filters
filter: undefined,
testId: undefined
});
});
addEvent( moduleFilter.lastChild, "change", applyUrlParams );

toolbar.appendChild( moduleFilter );
}
Expand All @@ -2491,6 +2539,17 @@ function appendToolbar() {

if ( toolbar ) {
toolbar.appendChild( toolbarUrlConfigContainer() );
toolbar.appendChild( toolbarLooseFilter() );
}
}

function appendHeader() {
var header = id( "qunit-header" );

if ( header ) {
header.innerHTML = "<a href='" +
setUrl({ filter: undefined, module: undefined, testId: undefined }) +
"'>" + header.innerHTML + "</a> ";
}
}

Expand All @@ -2499,9 +2558,6 @@ function appendBanner() {

if ( banner ) {
banner.className = "";
banner.innerHTML = "<a href='" +
QUnit.url({ filter: undefined, module: undefined, testId: undefined }) +
"'>" + banner.innerHTML + "</a> ";
}
}

Expand Down Expand Up @@ -2533,7 +2589,8 @@ function storeFixture() {
function appendUserAgent() {
var userAgent = id( "qunit-userAgent" );
if ( userAgent ) {
userAgent.innerHTML = navigator.userAgent;
userAgent.innerHTML = "";
userAgent.appendChild( document.createTextNode( navigator.userAgent ) );
}
}

Expand Down Expand Up @@ -2568,7 +2625,7 @@ function appendTest( name, testId, moduleName ) {

rerunTrigger = document.createElement( "a" );
rerunTrigger.innerHTML = "Rerun";
rerunTrigger.href = QUnit.url({ testId: testId });
rerunTrigger.href = setUrl({ testId: testId });

testBlock = document.createElement( "li" );
testBlock.appendChild( title );
Expand All @@ -2590,25 +2647,24 @@ QUnit.begin(function( details ) {
// Fixture is the only one necessary to run without the #qunit element
storeFixture();

if ( !qunit ) {
return;
if ( qunit ) {
qunit.innerHTML =
"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
"<h2 id='qunit-banner'></h2>" +
"<div id='qunit-testrunner-toolbar'></div>" +
"<h2 id='qunit-userAgent'></h2>" +
"<ol id='qunit-tests'></ol>";
}

qunit.innerHTML =
"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
"<h2 id='qunit-banner'></h2>" +
"<div id='qunit-testrunner-toolbar'></div>" +
"<h2 id='qunit-userAgent'></h2>" +
"<ol id='qunit-tests'></ol>";

appendHeader();
appendBanner();
appendTestResults();
appendUserAgent();
appendToolbar();
appendTestsList( details.modules );
toolbarModuleFilter();

if ( config.hidepassed ) {
if ( qunit && config.hidepassed ) {
addClass( qunit.lastChild, "hidepass" );
}
});
Expand Down Expand Up @@ -2788,7 +2844,7 @@ QUnit.testDone(function( details ) {
details.assertions.length + ")</b>";

if ( details.skipped ) {
addClass( testItem, "skipped" );
testItem.className = "skipped";
skipped = document.createElement( "em" );
skipped.className = "qunit-skipped-label";
skipped.innerHTML = "skipped";
Expand Down
Loading