mirror of https://github.com/twbs/bootstrap.git
				
				
				
			upgrade to QUnit v1.0.0
This commit is contained in:
		
							parent
							
								
									bfe74f7b2f
								
							
						
					
					
						commit
						dde38280f7
					
				| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * QUnit - A JavaScript Unit Testing Framework
 | 
					 * QUnit 1.0.0 - A JavaScript Unit Testing Framework
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * http://docs.jquery.com/QUnit
 | 
					 * http://docs.jquery.com/QUnit
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					@ -224,9 +224,3 @@
 | 
				
			||||||
	top: -10000px;
 | 
						top: -10000px;
 | 
				
			||||||
	left: -10000px;
 | 
						left: -10000px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
/** Runoff */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#qunit-fixture {
 | 
					 | 
				
			||||||
  display:none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * QUnit - A JavaScript Unit Testing Framework
 | 
					 * QUnit 1.0.0 - A JavaScript Unit Testing Framework
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * http://docs.jquery.com/QUnit
 | 
					 * http://docs.jquery.com/QUnit
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					@ -48,7 +48,7 @@ Test.prototype = {
 | 
				
			||||||
	setup: function() {
 | 
						setup: function() {
 | 
				
			||||||
		if (this.module != config.previousModule) {
 | 
							if (this.module != config.previousModule) {
 | 
				
			||||||
			if ( config.previousModule ) {
 | 
								if ( config.previousModule ) {
 | 
				
			||||||
				QUnit.moduleDone( {
 | 
									runLoggingCallbacks('moduleDone', QUnit, {
 | 
				
			||||||
					name: config.previousModule,
 | 
										name: config.previousModule,
 | 
				
			||||||
					failed: config.moduleStats.bad,
 | 
										failed: config.moduleStats.bad,
 | 
				
			||||||
					passed: config.moduleStats.all - config.moduleStats.bad,
 | 
										passed: config.moduleStats.all - config.moduleStats.bad,
 | 
				
			||||||
| 
						 | 
					@ -57,7 +57,7 @@ Test.prototype = {
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			config.previousModule = this.module;
 | 
								config.previousModule = this.module;
 | 
				
			||||||
			config.moduleStats = { all: 0, bad: 0 };
 | 
								config.moduleStats = { all: 0, bad: 0 };
 | 
				
			||||||
			QUnit.moduleStart( {
 | 
								runLoggingCallbacks( 'moduleStart', QUnit, {
 | 
				
			||||||
				name: this.module
 | 
									name: this.module
 | 
				
			||||||
			} );
 | 
								} );
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -71,8 +71,9 @@ Test.prototype = {
 | 
				
			||||||
			extend(this.testEnvironment, this.testEnvironmentArg);
 | 
								extend(this.testEnvironment, this.testEnvironmentArg);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		QUnit.testStart( {
 | 
							runLoggingCallbacks( 'testStart', QUnit, {
 | 
				
			||||||
			name: this.testName
 | 
								name: this.testName,
 | 
				
			||||||
 | 
								module: this.module
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// allow utility functions to access the current test environment
 | 
							// allow utility functions to access the current test environment
 | 
				
			||||||
| 
						 | 
					@ -210,8 +211,9 @@ Test.prototype = {
 | 
				
			||||||
			fail("reset() failed, following Test " + this.testName + ", exception and reset fn follows", e, QUnit.reset);
 | 
								fail("reset() failed, following Test " + this.testName + ", exception and reset fn follows", e, QUnit.reset);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		QUnit.testDone( {
 | 
							runLoggingCallbacks( 'testDone', QUnit, {
 | 
				
			||||||
			name: this.testName,
 | 
								name: this.testName,
 | 
				
			||||||
 | 
								module: this.module,
 | 
				
			||||||
			failed: bad,
 | 
								failed: bad,
 | 
				
			||||||
			passed: this.assertions.length - bad,
 | 
								passed: this.assertions.length - bad,
 | 
				
			||||||
			total: this.assertions.length
 | 
								total: this.assertions.length
 | 
				
			||||||
| 
						 | 
					@ -310,8 +312,8 @@ var QUnit = {
 | 
				
			||||||
			result: a,
 | 
								result: a,
 | 
				
			||||||
			message: msg
 | 
								message: msg
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		msg = escapeHtml(msg);
 | 
							msg = escapeInnerText(msg);
 | 
				
			||||||
		QUnit.log(details);
 | 
							runLoggingCallbacks( 'log', QUnit, details );
 | 
				
			||||||
		config.current.assertions.push({
 | 
							config.current.assertions.push({
 | 
				
			||||||
			result: a,
 | 
								result: a,
 | 
				
			||||||
			message: msg
 | 
								message: msg
 | 
				
			||||||
| 
						 | 
					@ -387,8 +389,8 @@ var QUnit = {
 | 
				
			||||||
		QUnit.ok(ok, message);
 | 
							QUnit.ok(ok, message);
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	start: function() {
 | 
						start: function(count) {
 | 
				
			||||||
		config.semaphore--;
 | 
							config.semaphore -= count || 1;
 | 
				
			||||||
		if (config.semaphore > 0) {
 | 
							if (config.semaphore > 0) {
 | 
				
			||||||
			// don't start until equal number of stop-calls
 | 
								// don't start until equal number of stop-calls
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
| 
						 | 
					@ -416,20 +418,30 @@ var QUnit = {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stop: function(timeout) {
 | 
						stop: function(count) {
 | 
				
			||||||
		config.semaphore++;
 | 
							config.semaphore += count || 1;
 | 
				
			||||||
		config.blocking = true;
 | 
							config.blocking = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if ( timeout && defined.setTimeout ) {
 | 
							if ( config.testTimeout && defined.setTimeout ) {
 | 
				
			||||||
			clearTimeout(config.timeout);
 | 
								clearTimeout(config.timeout);
 | 
				
			||||||
			config.timeout = window.setTimeout(function() {
 | 
								config.timeout = window.setTimeout(function() {
 | 
				
			||||||
				QUnit.ok( false, "Test timed out" );
 | 
									QUnit.ok( false, "Test timed out" );
 | 
				
			||||||
 | 
									config.semaphore = 1;
 | 
				
			||||||
				QUnit.start();
 | 
									QUnit.start();
 | 
				
			||||||
			}, timeout);
 | 
								}, config.testTimeout);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//We want access to the constructor's prototype
 | 
				
			||||||
 | 
					(function() {
 | 
				
			||||||
 | 
						function F(){};
 | 
				
			||||||
 | 
						F.prototype = QUnit;
 | 
				
			||||||
 | 
						QUnit = new F();
 | 
				
			||||||
 | 
						//Make F QUnit's constructor so that we can add to the prototype later
 | 
				
			||||||
 | 
						QUnit.constructor = F;
 | 
				
			||||||
 | 
					})();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Backwards compatibility, deprecated
 | 
					// Backwards compatibility, deprecated
 | 
				
			||||||
QUnit.equals = QUnit.equal;
 | 
					QUnit.equals = QUnit.equal;
 | 
				
			||||||
QUnit.same = QUnit.deepEqual;
 | 
					QUnit.same = QUnit.deepEqual;
 | 
				
			||||||
| 
						 | 
					@ -453,7 +465,16 @@ var config = {
 | 
				
			||||||
	// by default, modify document.title when suite is done
 | 
						// by default, modify document.title when suite is done
 | 
				
			||||||
	altertitle: true,
 | 
						altertitle: true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	urlConfig: ['noglobals', 'notrycatch']
 | 
						urlConfig: ['noglobals', 'notrycatch'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//logging callback queues
 | 
				
			||||||
 | 
						begin: [],
 | 
				
			||||||
 | 
						done: [],
 | 
				
			||||||
 | 
						log: [],
 | 
				
			||||||
 | 
						testStart: [],
 | 
				
			||||||
 | 
						testDone: [],
 | 
				
			||||||
 | 
						moduleStart: [],
 | 
				
			||||||
 | 
						moduleDone: []
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Load paramaters
 | 
					// Load paramaters
 | 
				
			||||||
| 
						 | 
					@ -618,10 +639,10 @@ extend(QUnit, {
 | 
				
			||||||
			expected: expected
 | 
								expected: expected
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		message = escapeHtml(message) || (result ? "okay" : "failed");
 | 
							message = escapeInnerText(message) || (result ? "okay" : "failed");
 | 
				
			||||||
		message = '<span class="test-message">' + message + "</span>";
 | 
							message = '<span class="test-message">' + message + "</span>";
 | 
				
			||||||
		expected = escapeHtml(QUnit.jsDump.parse(expected));
 | 
							expected = escapeInnerText(QUnit.jsDump.parse(expected));
 | 
				
			||||||
		actual = escapeHtml(QUnit.jsDump.parse(actual));
 | 
							actual = escapeInnerText(QUnit.jsDump.parse(actual));
 | 
				
			||||||
		var output = message + '<table><tr class="test-expected"><th>Expected: </th><td><pre>' + expected + '</pre></td></tr>';
 | 
							var output = message + '<table><tr class="test-expected"><th>Expected: </th><td><pre>' + expected + '</pre></td></tr>';
 | 
				
			||||||
		if (actual != expected) {
 | 
							if (actual != expected) {
 | 
				
			||||||
			output += '<tr class="test-actual"><th>Result: </th><td><pre>' + actual + '</pre></td></tr>';
 | 
								output += '<tr class="test-actual"><th>Result: </th><td><pre>' + actual + '</pre></td></tr>';
 | 
				
			||||||
| 
						 | 
					@ -631,12 +652,12 @@ extend(QUnit, {
 | 
				
			||||||
			var source = sourceFromStacktrace();
 | 
								var source = sourceFromStacktrace();
 | 
				
			||||||
			if (source) {
 | 
								if (source) {
 | 
				
			||||||
				details.source = source;
 | 
									details.source = source;
 | 
				
			||||||
				output += '<tr class="test-source"><th>Source: </th><td><pre>' + escapeHtml(source) + '</pre></td></tr>';
 | 
									output += '<tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr>';
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		output += "</table>";
 | 
							output += "</table>";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		QUnit.log(details);
 | 
							runLoggingCallbacks( 'log', QUnit, details );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		config.current.assertions.push({
 | 
							config.current.assertions.push({
 | 
				
			||||||
			result: !!result,
 | 
								result: !!result,
 | 
				
			||||||
| 
						 | 
					@ -657,23 +678,28 @@ extend(QUnit, {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	extend: extend,
 | 
						extend: extend,
 | 
				
			||||||
	id: id,
 | 
						id: id,
 | 
				
			||||||
	addEvent: addEvent,
 | 
						addEvent: addEvent
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//QUnit.constructor is set to the empty F() above so that we can add to it's prototype later
 | 
				
			||||||
 | 
					//Doing this allows us to tell if the following methods have been overwritten on the actual
 | 
				
			||||||
 | 
					//QUnit object, which is a deprecated way of using the callbacks.
 | 
				
			||||||
 | 
					extend(QUnit.constructor.prototype, {
 | 
				
			||||||
	// Logging callbacks; all receive a single argument with the listed properties
 | 
						// Logging callbacks; all receive a single argument with the listed properties
 | 
				
			||||||
	// run test/logs.html for any related changes
 | 
						// run test/logs.html for any related changes
 | 
				
			||||||
	begin: function() {},
 | 
						begin: registerLoggingCallback('begin'),
 | 
				
			||||||
	// done: { failed, passed, total, runtime }
 | 
						// done: { failed, passed, total, runtime }
 | 
				
			||||||
	done: function() {},
 | 
						done: registerLoggingCallback('done'),
 | 
				
			||||||
	// log: { result, actual, expected, message }
 | 
						// log: { result, actual, expected, message }
 | 
				
			||||||
	log: function() {},
 | 
						log: registerLoggingCallback('log'),
 | 
				
			||||||
	// testStart: { name }
 | 
						// testStart: { name }
 | 
				
			||||||
	testStart: function() {},
 | 
						testStart: registerLoggingCallback('testStart'),
 | 
				
			||||||
	// testDone: { name, failed, passed, total }
 | 
						// testDone: { name, failed, passed, total }
 | 
				
			||||||
	testDone: function() {},
 | 
						testDone: registerLoggingCallback('testDone'),
 | 
				
			||||||
	// moduleStart: { name }
 | 
						// moduleStart: { name }
 | 
				
			||||||
	moduleStart: function() {},
 | 
						moduleStart: registerLoggingCallback('moduleStart'),
 | 
				
			||||||
	// moduleDone: { name, failed, passed, total }
 | 
						// moduleDone: { name, failed, passed, total }
 | 
				
			||||||
	moduleDone: function() {}
 | 
						moduleDone: registerLoggingCallback('moduleDone')
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ( typeof document === "undefined" || document.readyState === "complete" ) {
 | 
					if ( typeof document === "undefined" || document.readyState === "complete" ) {
 | 
				
			||||||
| 
						 | 
					@ -681,7 +707,7 @@ if ( typeof document === "undefined" || document.readyState === "complete" ) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QUnit.load = function() {
 | 
					QUnit.load = function() {
 | 
				
			||||||
	QUnit.begin({});
 | 
						runLoggingCallbacks( 'begin', QUnit, {} );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Initialize the config, saving the execution queue
 | 
						// Initialize the config, saving the execution queue
 | 
				
			||||||
	var oldconfig = extend({}, config);
 | 
						var oldconfig = extend({}, config);
 | 
				
			||||||
| 
						 | 
					@ -761,7 +787,7 @@ function done() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Log the last module results
 | 
						// Log the last module results
 | 
				
			||||||
	if ( config.currentModule ) {
 | 
						if ( config.currentModule ) {
 | 
				
			||||||
		QUnit.moduleDone( {
 | 
							runLoggingCallbacks( 'moduleDone', QUnit, {
 | 
				
			||||||
			name: config.currentModule,
 | 
								name: config.currentModule,
 | 
				
			||||||
			failed: config.moduleStats.bad,
 | 
								failed: config.moduleStats.bad,
 | 
				
			||||||
			passed: config.moduleStats.all - config.moduleStats.bad,
 | 
								passed: config.moduleStats.all - config.moduleStats.bad,
 | 
				
			||||||
| 
						 | 
					@ -803,7 +829,7 @@ function done() {
 | 
				
			||||||
		].join(" ");
 | 
							].join(" ");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	QUnit.done( {
 | 
						runLoggingCallbacks( 'done', QUnit, {
 | 
				
			||||||
		failed: config.stats.bad,
 | 
							failed: config.stats.bad,
 | 
				
			||||||
		passed: passed,
 | 
							passed: passed,
 | 
				
			||||||
		total: config.stats.all,
 | 
							total: config.stats.all,
 | 
				
			||||||
| 
						 | 
					@ -855,16 +881,14 @@ function sourceFromStacktrace() {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function escapeHtml(s) {
 | 
					function escapeInnerText(s) {
 | 
				
			||||||
	if (!s) {
 | 
						if (!s) {
 | 
				
			||||||
		return "";
 | 
							return "";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	s = s + "";
 | 
						s = s + "";
 | 
				
			||||||
	return s.replace(/[\&"<>\\]/g, function(s) {
 | 
						return s.replace(/[\&<>]/g, function(s) {
 | 
				
			||||||
		switch(s) {
 | 
							switch(s) {
 | 
				
			||||||
			case "&": return "&";
 | 
								case "&": return "&";
 | 
				
			||||||
			case "\\": return "\\\\";
 | 
					 | 
				
			||||||
			case '"': return '\"';
 | 
					 | 
				
			||||||
			case "<": return "<";
 | 
								case "<": return "<";
 | 
				
			||||||
			case ">": return ">";
 | 
								case ">": return ">";
 | 
				
			||||||
			default: return s;
 | 
								default: return s;
 | 
				
			||||||
| 
						 | 
					@ -974,9 +998,27 @@ function id(name) {
 | 
				
			||||||
		document.getElementById( name );
 | 
							document.getElementById( name );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function registerLoggingCallback(key){
 | 
				
			||||||
 | 
						return function(callback){
 | 
				
			||||||
 | 
							config[key].push( callback );
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Supports deprecated method of completely overwriting logging callbacks
 | 
				
			||||||
 | 
					function runLoggingCallbacks(key, scope, args) {
 | 
				
			||||||
 | 
						//debugger;
 | 
				
			||||||
 | 
						var callbacks;
 | 
				
			||||||
 | 
						if ( QUnit.hasOwnProperty(key) ) {
 | 
				
			||||||
 | 
							QUnit[key].call(scope, args);
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							callbacks = config[key];
 | 
				
			||||||
 | 
							for( var i = 0; i < callbacks.length; i++ ) {
 | 
				
			||||||
 | 
								callbacks[i].call( scope, args );
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Test for equality any JavaScript type.
 | 
					// Test for equality any JavaScript type.
 | 
				
			||||||
// Discussions and reference: http://philrathe.com/articles/equiv
 | 
					 | 
				
			||||||
// Test suites: http://philrathe.com/tests/equiv
 | 
					 | 
				
			||||||
// Author: Philippe Rathé <prathe@gmail.com>
 | 
					// Author: Philippe Rathé <prathe@gmail.com>
 | 
				
			||||||
QUnit.equiv = function () {
 | 
					QUnit.equiv = function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue