Upped qunit
This commit is contained in:
parent
fe019ebac1
commit
f6e569306f
2 changed files with 154 additions and 94 deletions
|
@ -21,10 +21,13 @@
|
||||||
#qunit-header {
|
#qunit-header {
|
||||||
padding: 0.5em 0 0.5em 1em;
|
padding: 0.5em 0 0.5em 1em;
|
||||||
|
|
||||||
color: #fff;
|
color: #8699a4;
|
||||||
text-shadow: rgba(0, 0, 0, 0.5) 4px 4px 1px;
|
|
||||||
background-color: #0d3349;
|
background-color: #0d3349;
|
||||||
|
|
||||||
|
font-size: 1.5em;
|
||||||
|
line-height: 1em;
|
||||||
|
font-weight: normal;
|
||||||
|
|
||||||
border-radius: 15px 15px 0 0;
|
border-radius: 15px 15px 0 0;
|
||||||
-moz-border-radius: 15px 15px 0 0;
|
-moz-border-radius: 15px 15px 0 0;
|
||||||
-webkit-border-top-right-radius: 15px;
|
-webkit-border-top-right-radius: 15px;
|
||||||
|
@ -33,7 +36,12 @@
|
||||||
|
|
||||||
#qunit-header a {
|
#qunit-header a {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: white;
|
color: #c2ccd1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#qunit-header a:hover,
|
||||||
|
#qunit-header a:focus {
|
||||||
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-banner {
|
#qunit-banner {
|
||||||
|
@ -83,6 +91,39 @@
|
||||||
-webkit-box-shadow: inset 0px 2px 13px #999;
|
-webkit-box-shadow: inset 0px 2px 13px #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#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 */
|
/*** Test Counts */
|
||||||
|
|
||||||
#qunit-tests b.counts { color: black; }
|
#qunit-tests b.counts { color: black; }
|
||||||
|
|
197
test/qunit.js
197
test/qunit.js
|
@ -10,6 +10,10 @@
|
||||||
|
|
||||||
(function(window) {
|
(function(window) {
|
||||||
|
|
||||||
|
var defined = {
|
||||||
|
setTimeout: typeof window.setTimeout !== "undefined"
|
||||||
|
}
|
||||||
|
|
||||||
var QUnit = {
|
var QUnit = {
|
||||||
|
|
||||||
// call on start of module test to prepend name to all tests
|
// call on start of module test to prepend name to all tests
|
||||||
|
@ -17,10 +21,11 @@ var QUnit = {
|
||||||
config.currentModule = name;
|
config.currentModule = name;
|
||||||
|
|
||||||
synchronize(function() {
|
synchronize(function() {
|
||||||
if ( config.currentModule ) {
|
if ( config.previousModule ) {
|
||||||
QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
|
QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.previousModule = config.currentModule;
|
||||||
config.currentModule = name;
|
config.currentModule = name;
|
||||||
config.moduleTestEnvironment = testEnvironment;
|
config.moduleTestEnvironment = testEnvironment;
|
||||||
config.moduleStats = { all: 0, bad: 0 };
|
config.moduleStats = { all: 0, bad: 0 };
|
||||||
|
@ -84,7 +89,7 @@ var QUnit = {
|
||||||
var li = document.createElement("li");
|
var li = document.createElement("li");
|
||||||
li.appendChild( b );
|
li.appendChild( b );
|
||||||
li.id = "current-test-output";
|
li.id = "current-test-output";
|
||||||
tests.appendChild( li )
|
tests.appendChild( li );
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -107,7 +112,7 @@ var QUnit = {
|
||||||
callback.call(testEnvironment);
|
callback.call(testEnvironment);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
fail("Test " + name + " died, exception and test follows", e, callback);
|
fail("Test " + name + " died, exception and test follows", e, callback);
|
||||||
QUnit.ok( false, "Died on test #" + (config.assertions.length + 1) + ": " + e.message );
|
QUnit.ok( false, "Died on test #" + (config.assertions.length + 1) + ": " + e.message + " - " + QUnit.jsDump.parse(e) );
|
||||||
// else next test will carry the responsibility
|
// else next test will carry the responsibility
|
||||||
saveGlobal();
|
saveGlobal();
|
||||||
|
|
||||||
|
@ -128,12 +133,6 @@ var QUnit = {
|
||||||
});
|
});
|
||||||
|
|
||||||
synchronize(function() {
|
synchronize(function() {
|
||||||
try {
|
|
||||||
QUnit.reset();
|
|
||||||
} catch(e) {
|
|
||||||
fail("reset() failed, following Test " + name + ", exception and reset fn follows", e, QUnit.reset);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( config.expected && config.expected != config.assertions.length ) {
|
if ( config.expected && config.expected != config.assertions.length ) {
|
||||||
QUnit.ok( false, "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" );
|
QUnit.ok( false, "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" );
|
||||||
}
|
}
|
||||||
|
@ -152,7 +151,7 @@ var QUnit = {
|
||||||
|
|
||||||
var li = document.createElement("li");
|
var li = document.createElement("li");
|
||||||
li.className = assertion.result ? "pass" : "fail";
|
li.className = assertion.result ? "pass" : "fail";
|
||||||
li.innerHTML = assertion.message || "(no message)";
|
li.innerHTML = assertion.message || (assertion.result ? "okay" : "failed");
|
||||||
ol.appendChild( li );
|
ol.appendChild( li );
|
||||||
|
|
||||||
if ( assertion.result ) {
|
if ( assertion.result ) {
|
||||||
|
@ -188,6 +187,7 @@ var QUnit = {
|
||||||
var li = id("current-test-output");
|
var li = id("current-test-output");
|
||||||
li.id = "";
|
li.id = "";
|
||||||
li.className = bad ? "fail" : "pass";
|
li.className = bad ? "fail" : "pass";
|
||||||
|
li.style.display = resultDisplayStyle(!bad);
|
||||||
li.removeChild( li.firstChild );
|
li.removeChild( li.firstChild );
|
||||||
li.appendChild( b );
|
li.appendChild( b );
|
||||||
li.appendChild( ol );
|
li.appendChild( ol );
|
||||||
|
@ -197,7 +197,6 @@ var QUnit = {
|
||||||
if ( toolbar ) {
|
if ( toolbar ) {
|
||||||
toolbar.style.display = "block";
|
toolbar.style.display = "block";
|
||||||
id("qunit-filter-pass").disabled = null;
|
id("qunit-filter-pass").disabled = null;
|
||||||
id("qunit-filter-missing").disabled = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -211,11 +210,13 @@ var QUnit = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QUnit.testDone( testName, bad, config.assertions.length );
|
try {
|
||||||
|
QUnit.reset();
|
||||||
if ( !window.setTimeout && !config.queue.length ) {
|
} catch(e) {
|
||||||
done();
|
fail("reset() failed, following Test " + name + ", exception and reset fn follows", e, QUnit.reset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QUnit.testDone( testName, bad, config.assertions.length );
|
||||||
});
|
});
|
||||||
|
|
||||||
synchronize( done );
|
synchronize( done );
|
||||||
|
@ -233,11 +234,15 @@ var QUnit = {
|
||||||
* @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
|
* @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
|
||||||
*/
|
*/
|
||||||
ok: function(a, msg) {
|
ok: function(a, msg) {
|
||||||
|
a = !!a;
|
||||||
|
var details = {
|
||||||
|
result: a,
|
||||||
|
message: msg
|
||||||
|
};
|
||||||
msg = escapeHtml(msg);
|
msg = escapeHtml(msg);
|
||||||
QUnit.log(a, msg);
|
QUnit.log(a, msg, details);
|
||||||
|
|
||||||
config.assertions.push({
|
config.assertions.push({
|
||||||
result: !!a,
|
result: a,
|
||||||
message: msg
|
message: msg
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -255,27 +260,27 @@ var QUnit = {
|
||||||
* @param String message (optional)
|
* @param String message (optional)
|
||||||
*/
|
*/
|
||||||
equal: function(actual, expected, message) {
|
equal: function(actual, expected, message) {
|
||||||
push(expected == actual, actual, expected, message);
|
QUnit.push(expected == actual, actual, expected, message);
|
||||||
},
|
},
|
||||||
|
|
||||||
notEqual: function(actual, expected, message) {
|
notEqual: function(actual, expected, message) {
|
||||||
push(expected != actual, actual, expected, message);
|
QUnit.push(expected != actual, actual, expected, message);
|
||||||
},
|
},
|
||||||
|
|
||||||
deepEqual: function(actual, expected, message) {
|
deepEqual: function(actual, expected, message) {
|
||||||
push(QUnit.equiv(actual, expected), actual, expected, message);
|
QUnit.push(QUnit.equiv(actual, expected), actual, expected, message);
|
||||||
},
|
},
|
||||||
|
|
||||||
notDeepEqual: function(actual, expected, message) {
|
notDeepEqual: function(actual, expected, message) {
|
||||||
push(!QUnit.equiv(actual, expected), actual, expected, message);
|
QUnit.push(!QUnit.equiv(actual, expected), actual, expected, message);
|
||||||
},
|
},
|
||||||
|
|
||||||
strictEqual: function(actual, expected, message) {
|
strictEqual: function(actual, expected, message) {
|
||||||
push(expected === actual, actual, expected, message);
|
QUnit.push(expected === actual, actual, expected, message);
|
||||||
},
|
},
|
||||||
|
|
||||||
notStrictEqual: function(actual, expected, message) {
|
notStrictEqual: function(actual, expected, message) {
|
||||||
push(expected !== actual, actual, expected, message);
|
QUnit.push(expected !== actual, actual, expected, message);
|
||||||
},
|
},
|
||||||
|
|
||||||
raises: function(fn, message) {
|
raises: function(fn, message) {
|
||||||
|
@ -290,7 +295,7 @@ var QUnit = {
|
||||||
|
|
||||||
start: function() {
|
start: function() {
|
||||||
// A slight delay, to avoid any current callbacks
|
// A slight delay, to avoid any current callbacks
|
||||||
if ( window.setTimeout ) {
|
if ( defined.setTimeout ) {
|
||||||
window.setTimeout(function() {
|
window.setTimeout(function() {
|
||||||
if ( config.timeout ) {
|
if ( config.timeout ) {
|
||||||
clearTimeout(config.timeout);
|
clearTimeout(config.timeout);
|
||||||
|
@ -308,7 +313,7 @@ var QUnit = {
|
||||||
stop: function(timeout) {
|
stop: function(timeout) {
|
||||||
config.blocking = true;
|
config.blocking = true;
|
||||||
|
|
||||||
if ( timeout && window.setTimeout ) {
|
if ( timeout && defined.setTimeout ) {
|
||||||
config.timeout = window.setTimeout(function() {
|
config.timeout = window.setTimeout(function() {
|
||||||
QUnit.ok( false, "Test timed out" );
|
QUnit.ok( false, "Test timed out" );
|
||||||
QUnit.start();
|
QUnit.start();
|
||||||
|
@ -403,10 +408,17 @@ extend(QUnit, {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resets the test setup. Useful for tests that modify the DOM.
|
* Resets the test setup. Useful for tests that modify the DOM.
|
||||||
|
*
|
||||||
|
* If jQuery is available, uses jQuery's html(), otherwise just innerHTML.
|
||||||
*/
|
*/
|
||||||
reset: function() {
|
reset: function() {
|
||||||
if ( window.jQuery ) {
|
if ( window.jQuery ) {
|
||||||
jQuery("#main, #qunit-fixture").html( config.fixture );
|
jQuery( "#main, #qunit-fixture" ).html( config.fixture );
|
||||||
|
} else {
|
||||||
|
var main = id( 'main' ) || id( 'qunit-fixture' );
|
||||||
|
if ( main ) {
|
||||||
|
main.innerHTML = config.fixture;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -469,6 +481,33 @@ extend(QUnit, {
|
||||||
return undefined;
|
return undefined;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
push: function(result, actual, expected, message) {
|
||||||
|
var details = {
|
||||||
|
result: result,
|
||||||
|
message: message,
|
||||||
|
actual: actual,
|
||||||
|
expected: expected
|
||||||
|
};
|
||||||
|
|
||||||
|
message = escapeHtml(message) || (result ? "okay" : "failed");
|
||||||
|
message = '<span class="test-message">' + message + "</span>";
|
||||||
|
expected = escapeHtml(QUnit.jsDump.parse(expected));
|
||||||
|
actual = escapeHtml(QUnit.jsDump.parse(actual));
|
||||||
|
var output = message + '<table><tr class="test-expected"><th>Expected: </th><td><pre>' + expected + '</pre></td></tr>';
|
||||||
|
if (actual != expected) {
|
||||||
|
output += '<tr class="test-actual"><th>Result: </th><td><pre>' + actual + '</pre></td></tr>';
|
||||||
|
output += '<tr class="test-diff"><th>Diff: </th><td><pre>' + QUnit.diff(expected, actual) +'</pre></td></tr>';
|
||||||
|
}
|
||||||
|
output += "</table>";
|
||||||
|
|
||||||
|
QUnit.log(result, message, details);
|
||||||
|
|
||||||
|
config.assertions.push({
|
||||||
|
result: !!result,
|
||||||
|
message: output
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
// Logging callbacks
|
// Logging callbacks
|
||||||
begin: function() {},
|
begin: function() {},
|
||||||
done: function(failures, total) {},
|
done: function(failures, total) {},
|
||||||
|
@ -499,7 +538,16 @@ addEvent(window, "load", function() {
|
||||||
}
|
}
|
||||||
var banner = id("qunit-header");
|
var banner = id("qunit-header");
|
||||||
if ( banner ) {
|
if ( banner ) {
|
||||||
banner.innerHTML = '<a href="' + location.href + '">' + banner.innerHTML + '</a>';
|
var paramsIndex = location.href.lastIndexOf(location.search);
|
||||||
|
if ( paramsIndex > -1 ) {
|
||||||
|
var mainPageLocation = location.href.slice(0, paramsIndex);
|
||||||
|
if ( mainPageLocation == location.href ) {
|
||||||
|
banner.innerHTML = '<a href=""> ' + banner.innerHTML + '</a> ';
|
||||||
|
} else {
|
||||||
|
var testName = decodeURIComponent(location.search.slice(1));
|
||||||
|
banner.innerHTML = '<a href="' + mainPageLocation + '">' + banner.innerHTML + '</a> › <a href="">' + testName + '</a>';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var toolbar = id("qunit-testrunner-toolbar");
|
var toolbar = id("qunit-testrunner-toolbar");
|
||||||
|
@ -524,25 +572,6 @@ addEvent(window, "load", function() {
|
||||||
label.setAttribute("for", "qunit-filter-pass");
|
label.setAttribute("for", "qunit-filter-pass");
|
||||||
label.innerHTML = "Hide passed tests";
|
label.innerHTML = "Hide passed tests";
|
||||||
toolbar.appendChild( label );
|
toolbar.appendChild( label );
|
||||||
|
|
||||||
var missing = document.createElement("input");
|
|
||||||
missing.type = "checkbox";
|
|
||||||
missing.id = "qunit-filter-missing";
|
|
||||||
missing.disabled = true;
|
|
||||||
addEvent( missing, "click", function() {
|
|
||||||
var li = document.getElementsByTagName("li");
|
|
||||||
for ( var i = 0; i < li.length; i++ ) {
|
|
||||||
if ( li[i].className.indexOf("fail") > -1 && li[i].innerHTML.indexOf('missing test - untested code is broken code') > - 1 ) {
|
|
||||||
li[i].parentNode.parentNode.style.display = missing.checked ? "none" : "block";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
toolbar.appendChild( missing );
|
|
||||||
|
|
||||||
label = document.createElement("label");
|
|
||||||
label.setAttribute("for", "qunit-filter-missing");
|
|
||||||
label.innerHTML = "Hide missing tests (untested code is broken code)";
|
|
||||||
toolbar.appendChild( label );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var main = id('main') || id('qunit-fixture');
|
var main = id('main') || id('qunit-fixture');
|
||||||
|
@ -562,13 +591,15 @@ function done() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( config.queue.length ) {
|
if ( config.queue.length ) {
|
||||||
config.doneTimer = window.setTimeout(function(){
|
if ( defined.setTimeout ) {
|
||||||
if ( !config.queue.length ) {
|
config.doneTimer = window.setTimeout(function(){
|
||||||
done();
|
if ( !config.queue.length ) {
|
||||||
} else {
|
done();
|
||||||
synchronize( done );
|
} else {
|
||||||
}
|
synchronize( done );
|
||||||
}, 13);
|
}
|
||||||
|
}, 13);
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -634,8 +665,15 @@ function validTest( name ) {
|
||||||
return run;
|
return run;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function resultDisplayStyle(passed) {
|
||||||
|
return passed && id("qunit-filter-pass") && id("qunit-filter-pass").checked ? 'none' : '';
|
||||||
|
}
|
||||||
|
|
||||||
function escapeHtml(s) {
|
function escapeHtml(s) {
|
||||||
s = s === null ? "" : s + "";
|
if (!s) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
s = s + "";
|
||||||
return s.replace(/[\&"<>\\]/g, function(s) {
|
return s.replace(/[\&"<>\\]/g, function(s) {
|
||||||
switch(s) {
|
switch(s) {
|
||||||
case "&": return "&";
|
case "&": return "&";
|
||||||
|
@ -648,24 +686,6 @@ function escapeHtml(s) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function push(result, actual, expected, message) {
|
|
||||||
message = escapeHtml(message) || (result ? "okay" : "failed");
|
|
||||||
message = '<span class="test-message">' + message + "</span>";
|
|
||||||
expected = escapeHtml(QUnit.jsDump.parse(expected));
|
|
||||||
actual = escapeHtml(QUnit.jsDump.parse(actual));
|
|
||||||
var output = message + ', expected: <span class="test-expected">' + expected + '</span>';
|
|
||||||
if (actual != expected) {
|
|
||||||
output += ' result: <span class="test-actual">' + actual + '</span>, diff: ' + QUnit.diff(expected, actual);
|
|
||||||
}
|
|
||||||
|
|
||||||
// can't use ok, as that would double-escape messages
|
|
||||||
QUnit.log(result, output);
|
|
||||||
config.assertions.push({
|
|
||||||
result: !!result,
|
|
||||||
message: output
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function synchronize( callback ) {
|
function synchronize( callback ) {
|
||||||
config.queue.push( callback );
|
config.queue.push( callback );
|
||||||
|
|
||||||
|
@ -680,9 +700,8 @@ function process() {
|
||||||
while ( config.queue.length && !config.blocking ) {
|
while ( config.queue.length && !config.blocking ) {
|
||||||
if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) {
|
if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) {
|
||||||
config.queue.shift()();
|
config.queue.shift()();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
setTimeout( process, 13 );
|
window.setTimeout( process, 13 );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -988,7 +1007,7 @@ QUnit.jsDump = (function() {
|
||||||
type = "date";
|
type = "date";
|
||||||
} else if (QUnit.is("Function", obj)) {
|
} else if (QUnit.is("Function", obj)) {
|
||||||
type = "function";
|
type = "function";
|
||||||
} else if (obj.setInterval && obj.document && !obj.nodeType) {
|
} else if (typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined") {
|
||||||
type = "window";
|
type = "window";
|
||||||
} else if (obj.nodeType === 9) {
|
} else if (obj.nodeType === 9) {
|
||||||
type = "document";
|
type = "document";
|
||||||
|
@ -1042,31 +1061,31 @@ QUnit.jsDump = (function() {
|
||||||
ret += ' ' + name;
|
ret += ' ' + name;
|
||||||
ret += '(';
|
ret += '(';
|
||||||
|
|
||||||
ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join('');
|
ret = [ ret, QUnit.jsDump.parse( fn, 'functionArgs' ), '){'].join('');
|
||||||
return join( ret, this.parse(fn,'functionCode'), '}' );
|
return join( ret, QUnit.jsDump.parse(fn,'functionCode'), '}' );
|
||||||
},
|
},
|
||||||
array: array,
|
array: array,
|
||||||
nodelist: array,
|
nodelist: array,
|
||||||
arguments: array,
|
arguments: array,
|
||||||
object:function( map ) {
|
object:function( map ) {
|
||||||
var ret = [ ];
|
var ret = [ ];
|
||||||
this.up();
|
QUnit.jsDump.up();
|
||||||
for ( var key in map )
|
for ( var key in map )
|
||||||
ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) );
|
ret.push( QUnit.jsDump.parse(key,'key') + ': ' + QUnit.jsDump.parse(map[key]) );
|
||||||
this.down();
|
QUnit.jsDump.down();
|
||||||
return join( '{', ret, '}' );
|
return join( '{', ret, '}' );
|
||||||
},
|
},
|
||||||
node:function( node ) {
|
node:function( node ) {
|
||||||
var open = this.HTML ? '<' : '<',
|
var open = QUnit.jsDump.HTML ? '<' : '<',
|
||||||
close = this.HTML ? '>' : '>';
|
close = QUnit.jsDump.HTML ? '>' : '>';
|
||||||
|
|
||||||
var tag = node.nodeName.toLowerCase(),
|
var tag = node.nodeName.toLowerCase(),
|
||||||
ret = open + tag;
|
ret = open + tag;
|
||||||
|
|
||||||
for ( var a in this.DOMAttrs ) {
|
for ( var a in QUnit.jsDump.DOMAttrs ) {
|
||||||
var val = node[this.DOMAttrs[a]];
|
var val = node[QUnit.jsDump.DOMAttrs[a]];
|
||||||
if ( val )
|
if ( val )
|
||||||
ret += ' ' + a + '=' + this.parse( val, 'attribute' );
|
ret += ' ' + a + '=' + QUnit.jsDump.parse( val, 'attribute' );
|
||||||
}
|
}
|
||||||
return ret + close + open + '/' + tag + close;
|
return ret + close + open + '/' + tag + close;
|
||||||
},
|
},
|
||||||
|
@ -1094,8 +1113,8 @@ QUnit.jsDump = (function() {
|
||||||
'class':'className'
|
'class':'className'
|
||||||
},
|
},
|
||||||
HTML:false,//if true, entities are escaped ( <, >, \t, space and \n )
|
HTML:false,//if true, entities are escaped ( <, >, \t, space and \n )
|
||||||
indentChar:' ',//indentation unit
|
indentChar:' ',//indentation unit
|
||||||
multiline:false //if true, items in a collection, are separated by a \n, else just a space.
|
multiline:true //if true, items in a collection, are separated by a \n, else just a space.
|
||||||
};
|
};
|
||||||
|
|
||||||
return jsDump;
|
return jsDump;
|
||||||
|
@ -1255,7 +1274,7 @@ QUnit.diff = (function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
})(this);
|
})(this);
|
||||||
|
|
Reference in a new issue