Skip to content

Commit

Permalink
update testing environment to use latest version of QUnit 1.17.1
Browse files Browse the repository at this point in the history
  • Loading branch information
crissdev committed Feb 12, 2015
1 parent bd1f943 commit 39ba30f
Show file tree
Hide file tree
Showing 9 changed files with 152 additions and 80 deletions.
26 changes: 21 additions & 5 deletions spec/lib/qunit-1.16.0.css → spec/lib/qunit-1.17.1.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 spec/lib/qunit-1.16.0.js → spec/lib/qunit-1.17.1.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

0 comments on commit 39ba30f

Please sign in to comment.