aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Worth <rdworth@gmail.com>2010-02-25 11:09:39 +0000
committerRichard Worth <rdworth@gmail.com>2010-02-25 11:09:39 +0000
commit9483dcdbe61f33e2cc5ea0c56297f254a82990b8 (patch)
tree66016c8591af13a8010f3517e7350c153f2887cd
parent1fd3e6bd0b2bbb06cb4135506e039aad84d15d62 (diff)
downloadjquery-ui-9483dcdbe61f33e2cc5ea0c56297f254a82990b8.tar.gz
jquery-ui-9483dcdbe61f33e2cc5ea0c56297f254a82990b8.zip
Externals: updated QUnit to http://github.com/jquery/qunit commit 67ba5a338d836014c24345dc218ab3c9bb63b06e
The various updates to the unit test suites introduced 0 regressions due to update of QUnit, however the addition of jquery.ui.dialog.css to the dialog test suite did introduce one regression, to the dialog option height tests. Also removed some old crufty woefully incomplete unused and rotted test harnesses.
-rw-r--r--external/jsdiff.js159
-rw-r--r--external/qunit.css119
-rw-r--r--external/qunit.js1043
-rw-r--r--external/testrunner-r6588.js925
-rw-r--r--external/testsuite-r6565.css120
-rw-r--r--tests/index.html45
-rw-r--r--tests/slider.html63
-rw-r--r--tests/static/all.html39
-rw-r--r--tests/static/index.html6
-rw-r--r--tests/tests.css8
-rw-r--r--tests/tests.js56
-rw-r--r--tests/unit/accordion/accordion.html16
-rw-r--r--tests/unit/accordion/accordion_options.js6
-rw-r--r--tests/unit/all.html301
-rw-r--r--tests/unit/all_2.html84
-rw-r--r--tests/unit/autocomplete/autocomplete.html16
-rw-r--r--tests/unit/button/button.html17
-rw-r--r--tests/unit/core/core.html16
-rw-r--r--tests/unit/datepicker/datepicker.html16
-rw-r--r--tests/unit/datepicker/datepicker_options.js4
-rw-r--r--tests/unit/defaults.html24
-rw-r--r--tests/unit/dialog/dialog.html17
-rw-r--r--tests/unit/dialog/dialog_core.js2
-rw-r--r--tests/unit/draggable/draggable.html12
-rw-r--r--tests/unit/droppable/droppable.html14
-rw-r--r--tests/unit/index.html18
-rw-r--r--tests/unit/position/position.html13
-rw-r--r--tests/unit/position/position_core.js2
-rw-r--r--tests/unit/progressbar/progressbar.html14
-rw-r--r--tests/unit/resizable/resizable.html14
-rw-r--r--tests/unit/selectable/selectable.html12
-rw-r--r--tests/unit/slider/slider.html14
-rw-r--r--tests/unit/sortable/sortable.html12
-rw-r--r--tests/unit/tabs/tabs.html18
-rw-r--r--tests/unit/testsuite.css4
-rw-r--r--tests/unit/widget/widget.html12
-rw-r--r--tests/visual/index.html5
37 files changed, 1392 insertions, 1874 deletions
diff --git a/external/jsdiff.js b/external/jsdiff.js
deleted file mode 100644
index 31c3a273e..000000000
--- a/external/jsdiff.js
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Javascript Diff Algorithm
- * By John Resig (http://ejohn.org/)
- * Modified by Chu Alan "sprite"
- *
- * More Info:
- * http://ejohn.org/projects/javascript-diff-algorithm/
- */
-
-function escape(s) {
- var n = s;
- n = n.replace(/&/g, "&amp;");
- n = n.replace(/</g, "&lt;");
- n = n.replace(/>/g, "&gt;");
- n = n.replace(/"/g, "&quot;");
-
- return n;
-}
-
-function diffString( o, n ) {
- o = o.replace(/\s+$/, '');
- n = n.replace(/\s+$/, '');
-
- var out = diff(o == "" ? [] : o.split(/\s+/), n == "" ? [] : n.split(/\s+/) );
- var str = "";
-
- var oSpace = o.match(/\s+/g);
- if (oSpace == null) {
- oSpace = ["\n"];
- } else {
- oSpace.push("\n");
- }
- var nSpace = n.match(/\s+/g);
- if (nSpace == null) {
- nSpace = ["\n"];
- } else {
- nSpace.push("\n");
- }
-
- if (out.n.length == 0) {
- for (var i = 0; i < out.o.length; i++) {
- str += '<del>' + escape(out.o[i]) + oSpace[i] + "</del>";
- }
- } else {
- if (out.n[0].text == null) {
- for (n = 0; n < out.o.length && out.o[n].text == null; n++) {
- str += '<del>' + escape(out.o[n]) + oSpace[n] + "</del>";
- }
- }
-
- for ( var i = 0; i < out.n.length; i++ ) {
- if (out.n[i].text == null) {
- str += '<ins>' + escape(out.n[i]) + nSpace[i] + "</ins>";
- } else {
- var pre = "";
-
- for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
- pre += '<del>' + escape(out.o[n]) + oSpace[n] + "</del>";
- }
- str += " " + out.n[i].text + nSpace[i] + pre;
- }
- }
- }
-
- return str;
-}
-
-function randomColor() {
- return "rgb(" + (Math.random() * 100) + "%, " +
- (Math.random() * 100) + "%, " +
- (Math.random() * 100) + "%)";
-}
-function diffString2( o, n ) {
- o = o.replace(/\s+$/, '');
- n = n.replace(/\s+$/, '');
-
- var out = diff(o == "" ? [] : o.split(/\s+/), n == "" ? [] : n.split(/\s+/) );
-
- var oSpace = o.match(/\s+/g);
- if (oSpace == null) {
- oSpace = ["\n"];
- } else {
- oSpace.push("\n");
- }
- var nSpace = n.match(/\s+/g);
- if (nSpace == null) {
- nSpace = ["\n"];
- } else {
- nSpace.push("\n");
- }
-
- var os = "";
- var colors = new Array();
- for (var i = 0; i < out.o.length; i++) {
- colors[i] = randomColor();
-
- if (out.o[i].text != null) {
- os += '<span style="background-color: ' +colors[i]+ '">' +
- escape(out.o[i].text) + oSpace[i] + "</span>";
- } else {
- os += "<del>" + escape(out.o[i]) + oSpace[i] + "</del>";
- }
- }
-
- var ns = "";
- for (var i = 0; i < out.n.length; i++) {
- if (out.n[i].text != null) {
- ns += '<span style="background-color: ' +colors[out.n[i].row]+ '">' +
- escape(out.n[i].text) + nSpace[i] + "</span>";
- } else {
- ns += "<ins>" + escape(out.n[i]) + nSpace[i] + "</ins>";
- }
- }
-
- return { o : os , n : ns };
-}
-
-function diff( o, n ) {
- var ns = new Object();
- var os = new Object();
-
- for ( var i = 0; i < n.length; i++ ) {
- if ( ns[ n[i] ] == null )
- ns[ n[i] ] = { rows: new Array(), o: null };
- ns[ n[i] ].rows.push( i );
- }
-
- for ( var i = 0; i < o.length; i++ ) {
- if ( os[ o[i] ] == null )
- os[ o[i] ] = { rows: new Array(), n: null };
- os[ o[i] ].rows.push( i );
- }
-
- for ( var i in ns ) {
- if ( ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1 ) {
- n[ ns[i].rows[0] ] = { text: n[ ns[i].rows[0] ], row: os[i].rows[0] };
- o[ os[i].rows[0] ] = { text: o[ os[i].rows[0] ], row: ns[i].rows[0] };
- }
- }
-
- for ( var i = 0; i < n.length - 1; i++ ) {
- if ( n[i].text != null && n[i+1].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
- n[i+1] == o[ n[i].row + 1 ] ) {
- n[i+1] = { text: n[i+1], row: n[i].row + 1 };
- o[n[i].row+1] = { text: o[n[i].row+1], row: i + 1 };
- }
- }
-
- for ( var i = n.length - 1; i > 0; i-- ) {
- if ( n[i].text != null && n[i-1].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
- n[i-1] == o[ n[i].row - 1 ] ) {
- n[i-1] = { text: n[i-1], row: n[i].row - 1 };
- o[n[i].row-1] = { text: o[n[i].row-1], row: i - 1 };
- }
- }
-
- return { o: o, n: n };
-}
-
diff --git a/external/qunit.css b/external/qunit.css
new file mode 100644
index 000000000..5714bf4a5
--- /dev/null
+++ b/external/qunit.css
@@ -0,0 +1,119 @@
+
+ol#qunit-tests {
+ font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+ margin:0;
+ padding:0;
+ list-style-position:inside;
+
+ font-size: smaller;
+}
+ol#qunit-tests li{
+ padding:0.4em 0.5em 0.4em 2.5em;
+ border-bottom:1px solid #fff;
+ font-size:small;
+ list-style-position:inside;
+}
+ol#qunit-tests li ol{
+ box-shadow: inset 0px 2px 13px #999;
+ -moz-box-shadow: inset 0px 2px 13px #999;
+ -webkit-box-shadow: inset 0px 2px 13px #999;
+ margin-top:0.5em;
+ margin-left:0;
+ padding:0.5em;
+ background-color:#fff;
+ border-radius:15px;
+ -moz-border-radius: 15px;
+ -webkit-border-radius: 15px;
+}
+ol#qunit-tests li li{
+ border-bottom:none;
+ margin:0.5em;
+ background-color:#fff;
+ list-style-position: inside;
+ padding:0.4em 0.5em 0.4em 0.5em;
+}
+
+ol#qunit-tests li li.pass{
+ border-left:26px solid #C6E746;
+ background-color:#fff;
+ color:#5E740B;
+ }
+ol#qunit-tests li li.fail{
+ border-left:26px solid #EE5757;
+ background-color:#fff;
+ color:#710909;
+}
+ol#qunit-tests li.pass{
+ background-color:#D2E0E6;
+ color:#528CE0;
+}
+ol#qunit-tests li.fail{
+ background-color:#EE5757;
+ color:#000;
+}
+ol#qunit-tests li strong {
+ cursor:pointer;
+}
+h1#qunit-header{
+ background-color:#0d3349;
+ margin:0;
+ padding:0.5em 0 0.5em 1em;
+ color:#fff;
+ font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+ border-top-right-radius:15px;
+ border-top-left-radius:15px;
+ -moz-border-radius-topright:15px;
+ -moz-border-radius-topleft:15px;
+ -webkit-border-top-right-radius:15px;
+ -webkit-border-top-left-radius:15px;
+ text-shadow: rgba(0, 0, 0, 0.5) 4px 4px 1px;
+}
+h2#qunit-banner{
+ font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+ height:5px;
+ margin:0;
+ padding:0;
+}
+h2#qunit-banner.qunit-pass{
+ background-color:#C6E746;
+}
+h2#qunit-banner.qunit-fail, #qunit-testrunner-toolbar {
+ background-color:#EE5757;
+}
+#qunit-testrunner-toolbar {
+ font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+ padding:0;
+ /*width:80%;*/
+ padding:0em 0 0.5em 2em;
+ font-size: small;
+}
+h2#qunit-userAgent {
+ font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+ background-color:#2b81af;
+ margin:0;
+ padding:0;
+ color:#fff;
+ font-size: small;
+ padding:0.5em 0 0.5em 2.5em;
+ text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
+}
+p#qunit-testresult{
+ font-family:"Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
+ margin:0;
+ font-size: small;
+ color:#2b81af;
+ border-bottom-right-radius:15px;
+ border-bottom-left-radius:15px;
+ -moz-border-radius-bottomright:15px;
+ -moz-border-radius-bottomleft:15px;
+ -webkit-border-bottom-right-radius:15px;
+ -webkit-border-bottom-left-radius:15px;
+ background-color:#D2E0E6;
+ padding:0.5em 0.5em 0.5em 2.5em;
+}
+strong b.fail{
+ color:#710909;
+ }
+strong b.pass{
+ color:#5E740B;
+ }
diff --git a/external/qunit.js b/external/qunit.js
new file mode 100644
index 000000000..f2704148e
--- /dev/null
+++ b/external/qunit.js
@@ -0,0 +1,1043 @@
+/*
+ * QUnit - A JavaScript Unit Testing Framework
+ *
+ * http://docs.jquery.com/QUnit
+ *
+ * Copyright (c) 2009 John Resig, Jörn Zaefferer
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ */
+
+(function(window) {
+
+var QUnit = {
+
+ // Initialize the configuration options
+ init: function() {
+ config = {
+ stats: { all: 0, bad: 0 },
+ moduleStats: { all: 0, bad: 0 },
+ started: +new Date,
+ blocking: false,
+ autorun: false,
+ assertions: [],
+ filters: [],
+ queue: []
+ };
+
+ var tests = id("qunit-tests"),
+ banner = id("qunit-banner"),
+ result = id("qunit-testresult");
+
+ if ( tests ) {
+ tests.innerHTML = "";
+ }
+
+ if ( banner ) {
+ banner.className = "";
+ }
+
+ if ( result ) {
+ result.parentNode.removeChild( result );
+ }
+ },
+
+ // call on start of module test to prepend name to all tests
+ module: function(name, testEnvironment) {
+ config.currentModule = name;
+
+ synchronize(function() {
+ if ( config.currentModule ) {
+ QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
+ }
+
+ config.currentModule = name;
+ config.moduleTestEnvironment = testEnvironment;
+ config.moduleStats = { all: 0, bad: 0 };
+
+ QUnit.moduleStart( name, testEnvironment );
+ });
+ },
+
+ asyncTest: function(testName, expected, callback) {
+ if ( arguments.length === 2 ) {
+ callback = expected;
+ expected = 0;
+ }
+
+ QUnit.test(testName, expected, callback, true);
+ },
+
+ test: function(testName, expected, callback, async) {
+ var name = testName, testEnvironment, testEnvironmentArg;
+
+ if ( arguments.length === 2 ) {
+ callback = expected;
+ expected = null;
+ }
+ // is 2nd argument a testEnvironment?
+ if ( expected && typeof expected === 'object') {
+ testEnvironmentArg = expected;
+ expected = null;
+ }
+
+ if ( config.currentModule ) {
+ name = config.currentModule + " module: " + name;
+ }
+
+ if ( !validTest(name) ) {
+ return;
+ }
+
+ synchronize(function() {
+ QUnit.testStart( testName );
+
+ testEnvironment = extend({
+ setup: function() {},
+ teardown: function() {}
+ }, config.moduleTestEnvironment);
+ if (testEnvironmentArg) {
+ extend(testEnvironment,testEnvironmentArg);
+ }
+
+ // allow utility functions to access the current test environment
+ QUnit.current_testEnvironment = testEnvironment;
+
+ config.assertions = [];
+ config.expected = expected;
+
+ try {
+ if ( !config.pollution ) {
+ saveGlobal();
+ }
+
+ testEnvironment.setup.call(testEnvironment);
+ } catch(e) {
+ QUnit.ok( false, "Setup failed on " + name + ": " + e.message );
+ }
+
+ if ( async ) {
+ QUnit.stop();
+ }
+
+ try {
+ callback.call(testEnvironment);
+ } catch(e) {
+ fail("Test " + name + " died, exception and test follows", e, callback);
+ QUnit.ok( false, "Died on test #" + (config.assertions.length + 1) + ": " + e.message );
+ // else next test will carry the responsibility
+ saveGlobal();
+
+ // Restart the tests if they're blocking
+ if ( config.blocking ) {
+ start();
+ }
+ }
+ });
+
+ synchronize(function() {
+ try {
+ checkPollution();
+ testEnvironment.teardown.call(testEnvironment);
+ } catch(e) {
+ QUnit.ok( false, "Teardown failed on " + name + ": " + e.message );
+ }
+
+ try {
+ QUnit.reset();
+ } catch(e) {
+ fail("reset() failed, following Test " + name + ", exception and reset fn follows", e, reset);
+ }
+
+ if ( config.expected && config.expected != config.assertions.length ) {
+ QUnit.ok( false, "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" );
+ }
+
+ var good = 0, bad = 0,
+ tests = id("qunit-tests");
+
+ config.stats.all += config.assertions.length;
+ config.moduleStats.all += config.assertions.length;
+
+ if ( tests ) {
+ var ol = document.createElement("ol");
+ ol.style.display = "none";
+
+ for ( var i = 0; i < config.assertions.length; i++ ) {
+ var assertion = config.assertions[i];
+
+ var li = document.createElement("li");
+ li.className = assertion.result ? "pass" : "fail";
+ li.appendChild(document.createTextNode(assertion.message || "(no message)"));
+ ol.appendChild( li );
+
+ if ( assertion.result ) {
+ good++;
+ } else {
+ bad++;
+ config.stats.bad++;
+ config.moduleStats.bad++;
+ }
+ }
+
+ var b = document.createElement("strong");
+ b.innerHTML = name + " <b style='color:black;'>(<b class='fail'>" + bad + "</b>, <b class='pass'>" + good + "</b>, " + config.assertions.length + ")</b>";
+
+ addEvent(b, "click", function() {
+ var next = b.nextSibling, display = next.style.display;
+ next.style.display = display === "none" ? "block" : "none";
+ });
+
+ addEvent(b, "dblclick", function(e) {
+ var target = e && e.target ? e.target : window.event.srcElement;
+ if ( target.nodeName.toLowerCase() === "strong" ) {
+ var text = "", node = target.firstChild;
+
+ while ( node.nodeType === 3 ) {
+ text += node.nodeValue;
+ node = node.nextSibling;
+ }
+
+ text = text.replace(/(^\s*|\s*$)/g, "");
+
+ if ( window.location ) {
+ window.location.href = window.location.href.match(/^(.+?)(\?.*)?$/)[1] + "?" + encodeURIComponent(text);
+ }
+ }
+ });
+
+ var li = document.createElement("li");
+ li.className = bad ? "fail" : "pass";
+ li.appendChild( b );
+ li.appendChild( ol );
+ tests.appendChild( li );
+
+ if ( bad ) {
+ var toolbar = id("qunit-testrunner-toolbar");
+ if ( toolbar ) {
+ toolbar.style.display = "block";
+ id("qunit-filter-pass").disabled = null;
+ id("qunit-filter-missing").disabled = null;
+ }
+ }
+
+ } else {
+ for ( var i = 0; i < config.assertions.length; i++ ) {
+ if ( !config.assertions[i].result ) {
+ bad++;
+ config.stats.bad++;
+ config.moduleStats.bad++;
+ }
+ }
+ }
+
+ QUnit.testDone( testName, bad, config.assertions.length );
+
+ if ( !window.setTimeout && !config.queue.length ) {
+ done();
+ }
+ });
+
+ if ( window.setTimeout && !config.doneTimer ) {
+ config.doneTimer = window.setTimeout(function(){
+ if ( !config.queue.length ) {
+ done();
+ } else {
+ synchronize( done );
+ }
+ }, 13);
+ }
+ },
+
+ /**
+ * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
+ */
+ expect: function(asserts) {
+ config.expected = asserts;
+ },
+
+ /**
+ * Asserts true.
+ * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
+ */
+ ok: function(a, msg) {
+ QUnit.log(a, msg);
+
+ config.assertions.push({
+ result: !!a,
+ message: msg
+ });
+ },
+
+ /**
+ * Checks that the first two arguments are equal, with an optional message.
+ * Prints out both actual and expected values.
+ *
+ * Prefered to ok( actual == expected, message )
+ *
+ * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." );
+ *
+ * @param Object actual
+ * @param Object expected
+ * @param String message (optional)
+ */
+ equal: function(actual, expected, message) {
+ push(expected == actual, actual, expected, message);
+ },
+
+ notEqual: function(actual, expected, message) {
+ push(expected != actual, actual, expected, message);
+ },
+
+ deepEqual: function(a, b, message) {
+ push(QUnit.equiv(a, b), a, b, message);
+ },
+
+ notDeepEqual: function(a, b, message) {
+ push(!QUnit.equiv(a, b), a, b, message);
+ },
+
+ strictEqual: function(actual, expected, message) {
+ push(expected === actual, actual, expected, message);
+ },
+
+ notStrictEqual: function(actual, expected, message) {
+ push(expected !== actual, actual, expected, message);
+ },
+
+ start: function() {
+ // A slight delay, to avoid any current callbacks
+ if ( window.setTimeout ) {
+ window.setTimeout(function() {
+ if ( config.timeout ) {
+ clearTimeout(config.timeout);
+ }
+
+ config.blocking = false;
+ process();
+ }, 13);
+ } else {
+ config.blocking = false;
+ process();
+ }
+ },
+
+ stop: function(timeout) {
+ config.blocking = true;
+
+ if ( timeout && window.setTimeout ) {
+ config.timeout = window.setTimeout(function() {
+ QUnit.ok( false, "Test timed out" );
+ QUnit.start();
+ }, timeout);
+ }
+ },
+
+ /**
+ * Resets the test setup. Useful for tests that modify the DOM.
+ */
+ reset: function() {
+ if ( window.jQuery ) {
+ jQuery("#main").html( config.fixture );
+ jQuery.event.global = {};
+ jQuery.ajaxSettings = extend({}, config.ajaxSettings);
+ }
+ },
+
+ /**
+ * Trigger an event on an element.
+ *
+ * @example triggerEvent( document.body, "click" );
+ *
+ * @param DOMElement elem
+ * @param String type
+ */
+ triggerEvent: function( elem, type, event ) {
+ if ( document.createEvent ) {
+ event = document.createEvent("MouseEvents");
+ event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
+ 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+ elem.dispatchEvent( event );
+
+ } else if ( elem.fireEvent ) {
+ elem.fireEvent("on"+type);
+ }
+ },
+
+ // Safe object type checking
+ is: function( type, obj ) {
+ return Object.prototype.toString.call( obj ) === "[object "+ type +"]";
+ },
+
+ // Logging callbacks
+ done: function(failures, total) {},
+ log: function(result, message) {},
+ testStart: function(name) {},
+ testDone: function(name, failures, total) {},
+ moduleStart: function(name, testEnvironment) {},
+ moduleDone: function(name, failures, total) {}
+};
+
+// Backwards compatibility, deprecated
+QUnit.equals = QUnit.equal;
+QUnit.same = QUnit.deepEqual;
+
+// Maintain internal state
+var config = {
+ // The queue of tests to run
+ queue: [],
+
+ // block until document ready
+ blocking: true
+};
+
+// Load paramaters
+(function() {
+ var location = window.location || { search: "", protocol: "file:" },
+ GETParams = location.search.slice(1).split('&');
+
+ for ( var i = 0; i < GETParams.length; i++ ) {
+ GETParams[i] = decodeURIComponent( GETParams[i] );
+ if ( GETParams[i] === "noglobals" ) {
+ GETParams.splice( i, 1 );
+ i--;
+ config.noglobals = true;
+ } else if ( GETParams[i].search('=') > -1 ) {
+ GETParams.splice( i, 1 );
+ i--;
+ }
+ }
+
+ // restrict modules/tests by get parameters
+ config.filters = GETParams;
+
+ // Figure out if we're running the tests from a server or not
+ QUnit.isLocal = !!(location.protocol === 'file:');
+})();
+
+// Expose the API as global variables, unless an 'exports'
+// object exists, in that case we assume we're in CommonJS
+if ( typeof exports === "undefined" || typeof require === "undefined" ) {
+ extend(window, QUnit);
+ window.QUnit = QUnit;
+} else {
+ extend(exports, QUnit);
+ exports.QUnit = QUnit;
+}
+
+if ( typeof document === "undefined" || document.readyState === "complete" ) {
+ config.autorun = true;
+}
+
+addEvent(window, "load", function() {
+ // Initialize the config, saving the execution queue
+ var oldconfig = extend({}, config);
+ QUnit.init();
+ extend(config, oldconfig);
+
+ config.blocking = false;
+
+ var userAgent = id("qunit-userAgent");
+ if ( userAgent ) {
+ userAgent.innerHTML = navigator.userAgent;
+ }
+
+ var toolbar = id("qunit-testrunner-toolbar");
+ if ( toolbar ) {
+ toolbar.style.display = "none";
+
+ var filter = document.createElement("input");
+ filter.type = "checkbox";
+ filter.id = "qunit-filter-pass";
+ filter.disabled = true;
+ addEvent( filter, "click", function() {
+ var li = document.getElementsByTagName("li");
+ for ( var i = 0; i < li.length; i++ ) {
+ if ( li[i].className.indexOf("pass") > -1 ) {
+ li[i].style.display = filter.checked ? "none" : "";
+ }
+ }
+ });
+ toolbar.appendChild( filter );
+
+ var label = document.createElement("label");
+ label.setAttribute("for", "qunit-filter-pass");
+ label.innerHTML = "Hide passed tests";
+ 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');
+ if ( main ) {
+ config.fixture = main.innerHTML;
+ }
+
+ if ( window.jQuery ) {
+ config.ajaxSettings = window.jQuery.ajaxSettings;
+ }
+
+ QUnit.start();
+});
+
+function done() {
+ if ( config.doneTimer && window.clearTimeout ) {
+ window.clearTimeout( config.doneTimer );
+ config.doneTimer = null;
+ }
+
+ if ( config.queue.length ) {
+ config.doneTimer = window.setTimeout(function(){
+ if ( !config.queue.length ) {
+ done();
+ } else {
+ synchronize( done );
+ }
+ }, 13);
+
+ return;
+ }
+
+ config.autorun = true;
+
+ // Log the last module results
+ if ( config.currentModule ) {
+ QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
+ }
+
+ var banner = id("qunit-banner"),
+ tests = id("qunit-tests"),
+ html = ['Tests completed in ',
+ +new Date - config.started, ' milliseconds.<br/>',
+ '<span class="passed">', config.stats.all - config.stats.bad, '</span> tests of <span class="total">', config.stats.all, '</span> passed, <span class="failed">', config.stats.bad,'</span> failed.'].join('');
+
+ if ( banner ) {
+ banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass");
+ }
+
+ if ( tests ) {
+ var result = id("qunit-testresult");
+
+ if ( !result ) {
+ result = document.createElement("p");
+ result.id = "qunit-testresult";
+ result.className = "result";
+ tests.parentNode.insertBefore( result, tests.nextSibling );
+ }
+
+ result.innerHTML = html;
+ }
+
+ QUnit.done( config.stats.bad, config.stats.all );
+}
+
+function validTest( name ) {
+ var i = config.filters.length,
+ run = false;
+
+ if ( !i ) {
+ return true;
+ }
+
+ while ( i-- ) {
+ var filter = config.filters[i],
+ not = filter.charAt(0) == '!';
+
+ if ( not ) {
+ filter = filter.slice(1);
+ }
+
+ if ( name.indexOf(filter) !== -1 ) {
+ return !not;
+ }
+
+ if ( not ) {
+ run = true;
+ }
+ }
+
+ return run;
+}
+
+function push(result, actual, expected, message) {
+ message = message || (result ? "okay" : "failed");
+ QUnit.ok( result, result ? message + ": " + expected : message + ", expected: " + QUnit.jsDump.parse(expected) + " result: " + QUnit.jsDump.parse(actual) );
+}
+
+function synchronize( callback ) {
+ config.queue.push( callback );
+
+ if ( config.autorun && !config.blocking ) {
+ process();
+ }
+}
+
+function process() {
+ while ( config.queue.length && !config.blocking ) {
+ config.queue.shift()();
+ }
+}
+
+function saveGlobal() {
+ config.pollution = [];
+
+ if ( config.noglobals ) {
+ for ( var key in window ) {
+ config.pollution.push( key );
+ }
+ }
+}
+
+function checkPollution( name ) {
+ var old = config.pollution;
+ saveGlobal();
+
+ var newGlobals = diff( old, config.pollution );
+ if ( newGlobals.length > 0 ) {
+ ok( false, "Introduced global variable(s): " + newGlobals.join(", ") );
+ config.expected++;
+ }
+
+ var deletedGlobals = diff( config.pollution, old );
+ if ( deletedGlobals.length > 0 ) {
+ ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") );
+ config.expected++;
+ }
+}
+
+// returns a new Array with the elements that are in a but not in b
+function diff( a, b ) {
+ var result = a.slice();
+ for ( var i = 0; i < result.length; i++ ) {
+ for ( var j = 0; j < b.length; j++ ) {
+ if ( result[i] === b[j] ) {
+ result.splice(i, 1);
+ i--;
+ break;
+ }
+ }
+ }
+ return result;
+}
+
+function fail(message, exception, callback) {
+ if ( typeof console !== "undefined" && console.error && console.warn ) {
+ console.error(message);
+ console.error(exception);
+ console.warn(callback.toString());
+
+ } else if ( window.opera && opera.postError ) {
+ opera.postError(message, exception, callback.toString);
+ }
+}
+
+function extend(a, b) {
+ for ( var prop in b ) {
+ a[prop] = b[prop];
+ }
+
+ return a;
+}
+
+function addEvent(elem, type, fn) {
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, fn, false );
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, fn );
+ } else {
+ fn();
+ }
+}
+
+function id(name) {
+ return !!(typeof document !== "undefined" && document && document.getElementById) &&
+ document.getElementById( name );
+}
+
+// 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>
+QUnit.equiv = function () {
+
+ var innerEquiv; // the real equiv function
+ var callers = []; // stack to decide between skip/abort functions
+
+
+ // Determine what is o.
+ function hoozit(o) {
+ if (QUnit.is("String", o)) {
+ return "string";
+
+ } else if (QUnit.is("Boolean", o)) {
+ return "boolean";
+
+ } else if (QUnit.is("Number", o)) {
+
+ if (isNaN(o)) {
+ return "nan";
+ } else {
+ return "number";
+ }
+
+ } else if (typeof o === "undefined") {
+ return "undefined";
+
+ // consider: typeof null === object
+ } else if (o === null) {
+ return "null";
+
+ // consider: typeof [] === object
+ } else if (QUnit.is( "Array", o)) {
+ return "array";
+
+ // consider: typeof new Date() === object
+ } else if (QUnit.is( "Date", o)) {
+ return "date";
+
+ // consider: /./ instanceof Object;
+ // /./ instanceof RegExp;
+ // typeof /./ === "function"; // => false in IE and Opera,
+ // true in FF and Safari
+ } else if (QUnit.is( "RegExp", o)) {
+ return "regexp";
+
+ } else if (typeof o === "object") {
+ return "object";
+
+ } else if (QUnit.is( "Function", o)) {
+ return "function";
+ } else {
+ return undefined;
+ }
+ }
+
+ // Call the o related callback with the given arguments.
+ function bindCallbacks(o, callbacks, args) {
+ var prop = hoozit(o);
+ if (prop) {
+ if (hoozit(callbacks[prop]) === "function") {
+ return callbacks[prop].apply(callbacks, args);
+ } else {
+ return callbacks[prop]; // or undefined
+ }
+ }
+ }
+
+ var callbacks = function () {
+
+ // for string, boolean, number and null
+ function useStrictEquality(b, a) {
+ if (b instanceof a.constructor || a instanceof b.constructor) {
+ // to catch short annotaion VS 'new' annotation of a declaration
+ // e.g. var i = 1;
+ // var j = new Number(1);
+ return a == b;
+ } else {
+ return a === b;
+ }
+ }
+
+ return {
+ "string": useStrictEquality,
+ "boolean": useStrictEquality,
+ "number": useStrictEquality,
+ "null": useStrictEquality,
+ "undefined": useStrictEquality,
+
+ "nan": function (b) {
+ return isNaN(b);
+ },
+
+ "date": function (b, a) {
+ return hoozit(b) === "date" && a.valueOf() === b.valueOf();
+ },
+
+ "regexp": function (b, a) {
+ return hoozit(b) === "regexp" &&
+ a.source === b.source && // the regex itself
+ a.global === b.global && // and its modifers (gmi) ...
+ a.ignoreCase === b.ignoreCase &&
+ a.multiline === b.multiline;
+ },
+
+ // - skip when the property is a method of an instance (OOP)
+ // - abort otherwise,
+ // initial === would have catch identical references anyway
+ "function": function () {
+ var caller = callers[callers.length - 1];
+ return caller !== Object &&
+ typeof caller !== "undefined";
+ },
+
+ "array": function (b, a) {
+ var i;
+ var len;
+
+ // b could be an object literal here
+ if ( ! (hoozit(b) === "array")) {
+ return false;
+ }
+
+ len = a.length;
+ if (len !== b.length) { // safe and faster
+ return false;
+ }
+ for (i = 0; i < len; i++) {
+ if ( ! innerEquiv(a[i], b[i])) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ "object": function (b, a) {
+ var i;
+ var eq = true; // unless we can proove it
+ var aProperties = [], bProperties = []; // collection of strings
+
+ // comparing constructors is more strict than using instanceof
+ if ( a.constructor !== b.constructor) {
+ return false;
+ }
+
+ // stack constructor before traversing properties
+ callers.push(a.constructor);
+
+ for (i in a) { // be strict: don't ensures hasOwnProperty and go deep
+
+ aProperties.push(i); // collect a's properties
+
+ if ( ! innerEquiv(a[i], b[i])) {
+ eq = false;
+ break;
+ }
+ }
+
+ callers.pop(); // unstack, we are done
+
+ for (i in b) {
+ bProperties.push(i); // collect b's properties
+ }
+
+ // Ensures identical properties name
+ return eq && innerEquiv(aProperties.sort(), bProperties.sort());
+ }
+ };
+ }();
+
+ innerEquiv = function () { // can take multiple arguments
+ var args = Array.prototype.slice.apply(arguments);
+ if (args.length < 2) {
+ return true; // end transition
+ }
+
+ return (function (a, b) {
+ if (a === b) {
+ return true; // catch the most you can
+ } else if (a === null || b === null || typeof a === "undefined" || typeof b === "undefined" || hoozit(a) !== hoozit(b)) {
+ return false; // don't lose time with error prone cases
+ } else {
+ return bindCallbacks(a, callbacks, [b, a]);
+ }
+
+ // apply transition with (1..n) arguments
+ })(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length -1));
+ };
+
+ return innerEquiv;
+
+}();
+
+/**
+ * jsDump
+ * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
+ * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php)
+ * Date: 5/15/2008
+ * @projectDescription Advanced and extensible data dumping for Javascript.
+ * @version 1.0.0
+ * @author Ariel Flesler
+ * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
+ */
+QUnit.jsDump = (function() {
+ function quote( str ) {
+ return '"' + str.toString().replace(/"/g, '\\"') + '"';
+ };
+ function literal( o ) {
+ return o + '';
+ };
+ function join( pre, arr, post ) {
+ var s = jsDump.separator(),
+ base = jsDump.indent(),
+ inner = jsDump.indent(1);
+ if ( arr.join )
+ arr = arr.join( ',' + s + inner );
+ if ( !arr )
+ return pre + post;
+ return [ pre, inner + arr, base + post ].join(s);
+ };
+ function array( arr ) {
+ var i = arr.length, ret = Array(i);
+ this.up();
+ while ( i-- )
+ ret[i] = this.parse( arr[i] );
+ this.down();
+ return join( '[', ret, ']' );
+ };
+
+ var reName = /^function (\w+)/;
+
+ var jsDump = {
+ parse:function( obj, type ) { //type is used mostly internally, you can fix a (custom)type in advance
+ var parser = this.parsers[ type || this.typeOf(obj) ];
+ type = typeof parser;
+
+ return type == 'function' ? parser.call( this, obj ) :
+ type == 'string' ? parser :
+ this.parsers.error;
+ },
+ typeOf:function( obj ) {
+ var type;
+ if ( obj === null ) {
+ type = "null";
+ } else if (typeof obj === "undefined") {
+ type = "undefined";
+ } else if (QUnit.is("RegExp", obj)) {
+ type = "regexp";
+ } else if (QUnit.is("Date", obj)) {
+ type = "date";
+ } else if (QUnit.is("Function", obj)) {
+ type = "function";
+ } else if (QUnit.is("Array", obj)) {
+ type = "array";
+ } else if (QUnit.is("Window", obj) || QUnit.is("global", obj)) {
+ type = "window";
+ } else if (QUnit.is("HTMLDocument", obj)) {
+ type = "document";
+ } else if (QUnit.is("HTMLCollection", obj) || QUnit.is("NodeList", obj)) {
+ type = "nodelist";
+ } else if (/^\[object HTML/.test(Object.prototype.toString.call( obj ))) {
+ type = "node";
+ } else {
+ type = typeof obj;
+ }
+ return type;
+ },
+ separator:function() {
+ return this.multiline ? this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' ';
+ },
+ indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
+ if ( !this.multiline )
+ return '';
+ var chr = this.indentChar;
+ if ( this.HTML )
+ chr = chr.replace(/\t/g,' ').replace(/ /g,'&nbsp;');
+ return Array( this._depth_ + (extra||0) ).join(chr);
+ },
+ up:function( a ) {
+ this._depth_ += a || 1;
+ },
+ down:function( a ) {
+ this._depth_ -= a || 1;
+ },
+ setParser:function( name, parser ) {
+ this.parsers[name] = parser;
+ },
+ // The next 3 are exposed so you can use them
+ quote:quote,
+ literal:literal,
+ join:join,
+ //
+ _depth_: 1,
+ // This is the list of parsers, to modify them, use jsDump.setParser
+ parsers:{
+ window: '[Window]',
+ document: '[Document]',
+ error:'[ERROR]', //when no parser is found, shouldn't happen
+ unknown: '[Unknown]',
+ 'null':'null',
+ undefined:'undefined',
+ 'function':function( fn ) {
+ var ret = 'function',
+ name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE
+ if ( name )
+ ret += ' ' + name;
+ ret += '(';
+
+ ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join('');
+ return join( ret, this.parse(fn,'functionCode'), '}' );
+ },
+ array: array,
+ nodelist: array,
+ arguments: array,
+ object:function( map ) {
+ var ret = [ ];
+ this.up();
+ for ( var key in map )
+ ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) );
+ this.down();
+ return join( '{', ret, '}' );
+ },
+ node:function( node ) {
+ var open = this.HTML ? '&lt;' : '<',
+ close = this.HTML ? '&gt;' : '>';
+
+ var tag = node.nodeName.toLowerCase(),
+ ret = open + tag;
+
+ for ( var a in this.DOMAttrs ) {
+ var val = node[this.DOMAttrs[a]];
+ if ( val )
+ ret += ' ' + a + '=' + this.parse( val, 'attribute' );
+ }
+ return ret + close + open + '/' + tag + close;
+ },
+ functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function
+ var l = fn.length;
+ if ( !l ) return '';
+
+ var args = Array(l);
+ while ( l-- )
+ args[l] = String.fromCharCode(97+l);//97 is 'a'
+ return ' ' + args.join(', ') + ' ';
+ },
+ key:quote, //object calls it internally, the key part of an item in a map
+ functionCode:'[code]', //function calls it internally, it's the content of the function
+ attribute:quote, //node calls it internally, it's an html attribute value
+ string:quote,
+ date:quote,
+ regexp:literal, //regex
+ number:literal,
+ 'boolean':literal
+ },
+ DOMAttrs:{//attributes to dump from nodes, name=>realName
+ id:'id',
+ name:'name',
+ 'class':'className'
+ },
+ HTML:true,//if true, entities are escaped ( <, >, \t, space and \n )
+ indentChar:' ',//indentation unit
+ multiline:true //if true, items in a collection, are separated by a \n, else just a space.
+ };
+
+ return jsDump;
+})();
+
+})(this);
diff --git a/external/testrunner-r6588.js b/external/testrunner-r6588.js
deleted file mode 100644
index 1a1b763b7..000000000
--- a/external/testrunner-r6588.js
+++ /dev/null
@@ -1,925 +0,0 @@
-/*
- * QUnit - jQuery unit testrunner
- *
- * http://docs.jquery.com/QUnit
- *
- * Copyright (c) 2009 John Resig, Jörn Zaefferer
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Id: testrunner.js 6588 2009-09-29 00:07:51Z jeresig $
- */
-
-(function() {
-
-// 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>
-var equiv = function () {
-
- var innerEquiv; // the real equiv function
- var callers = []; // stack to decide between skip/abort functions
-
-
- // Determine what is o.
- function hoozit(o) {
- if (o.constructor === String) {
- return "string";
-
- } else if (o.constructor === Boolean) {
- return "boolean";
-
- } else if (o.constructor === Number) {
-
- if (isNaN(o)) {
- return "nan";
- } else {
- return "number";
- }
-
- } else if (typeof o === "undefined") {
- return "undefined";
-
- // consider: typeof null === object
- } else if (o === null) {
- return "null";
-
- // consider: typeof [] === object
- } else if (o instanceof Array) {
- return "array";
-
- // consider: typeof new Date() === object
- } else if (o instanceof Date) {
- return "date";
-
- // consider: /./ instanceof Object;
- // /./ instanceof RegExp;
- // typeof /./ === "function"; // => false in IE and Opera,
- // true in FF and Safari
- } else if (o instanceof RegExp) {
- return "regexp";
-
- } else if (typeof o === "object") {
- return "object";
-
- } else if (o instanceof Function) {
- return "function";
- } else {
- return undefined;
- }
- }
-
- // Call the o related callback with the given arguments.
- function bindCallbacks(o, callbacks, args) {
- var prop = hoozit(o);
- if (prop) {
- if (hoozit(callbacks[prop]) === "function") {
- return callbacks[prop].apply(callbacks, args);
- } else {
- return callbacks[prop]; // or undefined
- }
- }
- }
-
- var callbacks = function () {
-
- // for string, boolean, number and null
- function useStrictEquality(b, a) {
- if (b instanceof a.constructor || a instanceof b.constructor) {
- // to catch short annotaion VS 'new' annotation of a declaration
- // e.g. var i = 1;
- // var j = new Number(1);
- return a == b;
- } else {
- return a === b;
- }
- }
-
- return {
- "string": useStrictEquality,
- "boolean": useStrictEquality,
- "number": useStrictEquality,
- "null": useStrictEquality,
- "undefined": useStrictEquality,
-
- "nan": function (b) {
- return isNaN(b);
- },
-
- "date": function (b, a) {
- return hoozit(b) === "date" && a.valueOf() === b.valueOf();
- },
-
- "regexp": function (b, a) {
- return hoozit(b) === "regexp" &&
- a.source === b.source && // the regex itself
- a.global === b.global && // and its modifers (gmi) ...
- a.ignoreCase === b.ignoreCase &&
- a.multiline === b.multiline;
- },
-
- // - skip when the property is a method of an instance (OOP)
- // - abort otherwise,
- // initial === would have catch identical references anyway
- "function": function () {
- var caller = callers[callers.length - 1];
- return caller !== Object &&
- typeof caller !== "undefined";
- },
-
- "array": function (b, a) {
- var i;
- var len;
-
- // b could be an object literal here
- if ( ! (hoozit(b) === "array")) {
- return false;
- }
-
- len = a.length;
- if (len !== b.length) { // safe and faster
- return false;
- }
- for (i = 0; i < len; i++) {
- if( ! innerEquiv(a[i], b[i])) {
- return false;
- }
- }
- return true;
- },
-
- "object": function (b, a) {
- var i;
- var eq = true; // unless we can proove it
- var aProperties = [], bProperties = []; // collection of strings
-
- // comparing constructors is more strict than using instanceof
- if ( a.constructor !== b.constructor) {
- return false;
- }
-
- // stack constructor before traversing properties
- callers.push(a.constructor);
-
- for (i in a) { // be strict: don't ensures hasOwnProperty and go deep
-
- aProperties.push(i); // collect a's properties
-
- if ( ! innerEquiv(a[i], b[i])) {
- eq = false;
- }
- }
-
- callers.pop(); // unstack, we are done
-
- for (i in b) {
- bProperties.push(i); // collect b's properties
- }
-
- // Ensures identical properties name
- return eq && innerEquiv(aProperties.sort(), bProperties.sort());
- }
- };
- }();
-
- innerEquiv = function () { // can take multiple arguments
- var args = Array.prototype.slice.apply(arguments);
- if (args.length < 2) {
- return true; // end transition
- }
-
- return (function (a, b) {
- if (a === b) {
- return true; // catch the most you can
- } else if (a === null || b === null || typeof a === "undefined" || typeof b === "undefined" || hoozit(a) !== hoozit(b)) {
- return false; // don't lose time with error prone cases
- } else {
- return bindCallbacks(a, callbacks, [b, a]);
- }
-
- // apply transition with (1..n) arguments
- })(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length -1));
- };
-
- return innerEquiv;
-
-}();
-
-var GETParams = location.search.slice(1).split('&'), ngindex = -1;
-
-for ( var i = 0; i < GETParams.length; i++ ) {
- GETParams[i] = decodeURIComponent( GETParams[i] );
- if ( GETParams[i] === "noglobals" ) {
- ngindex = i;
- }
-}
-
-var noglobals = ngindex !== -1;
-
-if ( noglobals ) {
- GETParams.splice( ngindex, 1 );
-}
-
-var config = {
- stats: {
- all: 0,
- bad: 0
- },
- queue: [],
- // block until document ready
- blocking: true,
- //restrict modules/tests by get parameters
- filters: GETParams,
- isLocal: !!(window.location.protocol == 'file:')
-};
-
-// public API as global methods
-extend(window, {
- test: test,
- module: module,
- expect: expect,
- ok: ok,
- equals: equals,
- start: start,
- stop: stop,
- reset: reset,
- isLocal: config.isLocal,
- same: function(a, b, message) {
- push(equiv(a, b), a, b, message);
- },
- QUnit: {
- equiv: equiv,
- ok: ok,
- done: function(failures, total){},
- log: function(result, message){}
- },
- // legacy methods below
- isSet: isSet,
- isObj: isObj,
- compare: function() {
- throw "compare is deprecated - use same() instead";
- },
- compare2: function() {
- throw "compare2 is deprecated - use same() instead";
- },
- serialArray: function() {
- throw "serialArray is deprecated - use jsDump.parse() instead";
- },
- q: q,
- t: t,
- url: url,
- triggerEvent: triggerEvent
-});
-
-addEvent(window, "load", function(){
-
- if ( !document.getElementById("header") ) {
- var header = document.createElement("h1");
- header.id = "header";
- header.innerHTML = document.title;
-
- var banner = document.createElement("h2");
- banner.id = "banner";
-
- var userAgent = document.createElement("h2");
- userAgent.id = "userAgent";
-
- var ol = document.createElement("ol");
- ol.id = "tests";
-
- document.body.insertBefore( ol, document.body.firstChild );
- document.body.insertBefore( userAgent, document.body.firstChild );
- document.body.insertBefore( banner, document.body.firstChild );
- document.body.insertBefore( header, document.body.firstChild );
- }
-
- var userAgent = document.getElementById("userAgent");
- if ( userAgent ) {
- userAgent.innerHTML = navigator.userAgent;
-
- var toolbar = document.createElement("div");
- toolbar.className = "testrunner-toolbar";
- userAgent.parentNode.insertBefore( toolbar, userAgent );
-
- var filter = document.createElement("input");
- filter.type = "checkbox";
- filter.id = "filter-pass";
- filter.disabled = true;
- addEvent( filter, "click", function(){
- var li = document.getElementsByTagName("li");
- for ( var i = 0; i < li.length; i++ ) {
- if ( li[i].className.indexOf("pass") > -1 ) {
- li[i].style.display = filter.checked ? "none" : "block";
- }
- }
- });
- toolbar.appendChild( filter );
-
- var label = document.createElement("label");
- label.setAttribute("for", "filter-pass");
- label.innerHTML = "Hide passed tests";
- toolbar.appendChild( label );
-
- var missing = document.createElement("input");
- missing.type = "checkbox";
- missing.id = "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", "filter-missing");
- label.innerHTML = "Hide missing tests (untested code is broken code)";
- toolbar.appendChild( label );
- }
-
- runTest();
-});
-
-function synchronize(callback) {
- config.queue.push(callback);
- if(!config.blocking) {
- process();
- }
-}
-
-function process() {
- while(config.queue.length && !config.blocking) {
- config.queue.shift()();
- }
-}
-
-function stop(timeout) {
- config.blocking = true;
- if (timeout)
- config.timeout = setTimeout(function() {
- QUnit.ok( false, "Test timed out" );
- start();
- }, timeout);
-}
-function start() {
- // A slight delay, to avoid any current callbacks
- setTimeout(function() {
- if(config.timeout)
- clearTimeout(config.timeout);
- config.blocking = false;
- process();
- }, 13);
-}
-
-function validTest( name ) {
- var i = config.filters.length,
- run = false;
-
- if( !i )
- return true;
-
- while( i-- ){
- var filter = config.filters[i],
- not = filter.charAt(0) == '!';
- if( not )
- filter = filter.slice(1);
- if( name.indexOf(filter) != -1 )
- return !not;
- if( not )
- run = true;
- }
- return run;
-}
-
-function runTest() {
- config.blocking = false;
- var started = +new Date;
- config.fixture = document.getElementById('main').innerHTML;
-
- if ( window.jQuery ) {
- config.ajaxSettings = window.jQuery.ajaxSettings;
- }
-
- synchronize(function() {
- var html = ['Tests completed in ',
- +new Date - started, ' milliseconds.<br/>',
- '<span class="bad">', config.stats.all - config.stats.bad, '</span> tests of <span class="all">', config.stats.all, '</span> passed, ', config.stats.bad,' failed.'].join('');
-
- var result = document.createElement("p");
- result.id = "testresult";
- result.className = "result";
- result.innerHTML = html;
- document.body.appendChild( result );
-
- document.getElementById("banner").className +=
- " " + (config.stats.bad ? "fail" : "pass");
-
- QUnit.done( config.stats.bad, config.stats.all );
- });
-}
-
-var pollution;
-
-function saveGlobal(){
- pollution = [ ];
-
- if ( noglobals ) {
- for ( var key in window ) {
- pollution.push(key);
- }
- }
-}
-
-function checkPollution( name ){
- var old = pollution;
- saveGlobal();
-
- if ( pollution.length > old.length ){
- ok( false, "Introduced global variable(s): " + diff(old, pollution).join(", ") );
- config.expected++;
- }
-}
-
-function diff( clean, dirty ){
- var results = [];
-
- for ( var i = 0; i < dirty.length; i++ ) {
- for ( var c = 0; c < clean.length; c++ ) {
- if ( clean[c] === dirty[i] ) {
- results.push( clean[c] );
- }
- }
- }
-
- return results;
-}
-
-function test(name, callback) {
- if ( config.currentModule ) {
- name = config.currentModule + " module: " + name;
- }
-
- var lifecycle = extend({
- setup: function() {},
- teardown: function() {}
- }, config.moduleLifecycle);
-
- if ( !validTest(name) ) {
- return;
- }
-
- var testEnvironment = {};
-
- synchronize(function() {
- config.assertions = [];
- config.expected = null;
- try {
- if ( !pollution ) {
- saveGlobal();
- }
-
- lifecycle.setup.call(testEnvironment);
- } catch(e) {
- QUnit.ok( false, "Setup failed on " + name + ": " + e.message );
- }
- });
- synchronize(function() {
- try {
- callback.call(testEnvironment);
- } catch(e) {
- fail("Test " + name + " died, exception and test follows", e, callback);
- QUnit.ok( false, "Died on test #" + (config.assertions.length + 1) + ": " + e.message );
- // else next test will carry the responsibility
- saveGlobal();
- }
- });
- synchronize(function() {
- try {
- checkPollution();
- lifecycle.teardown.call(testEnvironment);
- } catch(e) {
- QUnit.ok( false, "Teardown failed on " + name + ": " + e.message );
- }
- });
- synchronize(function() {
- try {
- reset();
- } catch(e) {
- fail("reset() failed, following Test " + name + ", exception and reset fn follows", e, reset);
- }
-
- if ( config.expected && config.expected != config.assertions.length ) {
- QUnit.ok( false, "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" );
- }
-
- var good = 0, bad = 0;
- var ol = document.createElement("ol");
- ol.style.display = "none";
- config.stats.all += config.assertions.length;
- for ( var i = 0; i < config.assertions.length; i++ ) {
- var assertion = config.assertions[i];
- var li = document.createElement("li");
- li.className = assertion.result ? "pass" : "fail";
- li.innerHTML = assertion.message || "(no message)";
- ol.appendChild( li );
- assertion.result ? good++ : bad++;
- }
- config.stats.bad += bad;
-
- var b = document.createElement("strong");
- b.innerHTML = name + " <b style='color:black;'>(<b class='fail'>" + bad + "</b>, <b class='pass'>" + good + "</b>, " + config.assertions.length + ")</b>";
- addEvent(b, "click", function(){
- var next = b.nextSibling, display = next.style.display;
- next.style.display = display === "none" ? "block" : "none";
- });
- addEvent(b, "dblclick", function(e){
- var target = (e || window.event).target;
- if ( target.nodeName.toLowerCase() === "strong" ) {
- var text = "", node = target.firstChild;
-
- while ( node.nodeType === 3 ) {
- text += node.nodeValue;
- node = node.nextSibling;
- }
-
- text = text.replace(/(^\s*|\s*$)/g, "");
-
- location.href = location.href.match(/^(.+?)(\?.*)?$/)[1] + "?" + encodeURIComponent(text);
- }
- });
-
- var li = document.createElement("li");
- li.className = bad ? "fail" : "pass";
- li.appendChild( b );
- li.appendChild( ol );
- document.getElementById("tests").appendChild( li );
-
- if(bad) {
- document.getElementById("filter-pass").disabled = null;
- document.getElementById("filter-missing").disabled = null;
- }
- });
-}
-
-function fail(message, exception, callback) {
- if( typeof console != "undefined" && console.error && console.warn ) {
- console.error(message);
- console.error(exception);
- console.warn(callback.toString());
- } else if (window.opera && opera.postError) {
- opera.postError(message, exception, callback.toString);
- }
-}
-
-// call on start of module test to prepend name to all tests
-function module(name, lifecycle) {
- config.currentModule = name;
- config.moduleLifecycle = lifecycle;
-}
-
-/**
- * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
- */
-function expect(asserts) {
- config.expected = asserts;
-}
-
-/**
- * Resets the test setup. Useful for tests that modify the DOM.
- */
-function reset() {
- if ( window.jQuery ) {
- jQuery("#main").html( config.fixture );
- jQuery.event.global = {};
- jQuery.ajaxSettings = extend({}, config.ajaxSettings);
- } else {
- document.getElementById("main").innerHTML = config.fixture;
- }
-}
-
-/**
- * Asserts true.
- * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
- */
-function ok(a, msg) {
- QUnit.log(a, msg);
-
- config.assertions.push({
- result: !!a,
- message: msg
- });
-}
-
-/**
- * Asserts that two arrays are the same
- */
-function isSet(a, b, msg) {
- function serialArray( a ) {
- var r = [];
-
- if ( a && a.length )
- for ( var i = 0; i < a.length; i++ ) {
- var str = a[i].nodeName;
- if ( str ) {
- str = str.toLowerCase();
- if ( a[i].id )
- str += "#" + a[i].id;
- } else
- str = a[i];
- r.push( str );
- }
-
- return "[ " + r.join(", ") + " ]";
- }
- var ret = true;
- if ( a && b && a.length != undefined && a.length == b.length ) {
- for ( var i = 0; i < a.length; i++ )
- if ( a[i] != b[i] )
- ret = false;
- } else
- ret = false;
- QUnit.ok( ret, !ret ? (msg + " expected: " + serialArray(b) + " result: " + serialArray(a)) : msg );
-}
-
-/**
- * Asserts that two objects are equivalent
- */
-function isObj(a, b, msg) {
- var ret = true;
-
- if ( a && b ) {
- for ( var i in a )
- if ( a[i] != b[i] )
- ret = false;
-
- for ( i in b )
- if ( a[i] != b[i] )
- ret = false;
- } else
- ret = false;
-
- QUnit.ok( ret, msg );
-}
-
-/**
- * Returns an array of elements with the given IDs, eg.
- * @example q("main", "foo", "bar")
- * @result [<div id="main">, <span id="foo">, <input id="bar">]
- */
-function q() {
- var r = [];
- for ( var i = 0; i < arguments.length; i++ )
- r.push( document.getElementById( arguments[i] ) );
- return r;
-}
-
-/**
- * Asserts that a select matches the given IDs
- * @example t("Check for something", "//[a]", ["foo", "baar"]);
- * @result returns true if "//[a]" return two elements with the IDs 'foo' and 'baar'
- */
-function t(a,b,c) {
- var f = jQuery(b);
- var s = "";
- for ( var i = 0; i < f.length; i++ )
- s += (s && ",") + '"' + f[i].id + '"';
- isSet(f, q.apply(q,c), a + " (" + b + ")");
-}
-
-/**
- * Add random number to url to stop IE from caching
- *
- * @example url("data/test.html")
- * @result "data/test.html?10538358428943"
- *
- * @example url("data/test.php?foo=bar")
- * @result "data/test.php?foo=bar&10538358345554"
- */
-function url(value) {
- return value + (/\?/.test(value) ? "&" : "?") + new Date().getTime() + "" + parseInt(Math.random()*100000);
-}
-
-/**
- * Checks that the first two arguments are equal, with an optional message.
- * Prints out both actual and expected values.
- *
- * Prefered to ok( actual == expected, message )
- *
- * @example equals( format("Received {0} bytes.", 2), "Received 2 bytes." );
- *
- * @param Object actual
- * @param Object expected
- * @param String message (optional)
- */
-function equals(actual, expected, message) {
- push(expected == actual, actual, expected, message);
-}
-
-function push(result, actual, expected, message) {
- message = message || (result ? "okay" : "failed");
- QUnit.ok( result, result ? message + ": " + expected : message + ", expected: " + jsDump.parse(expected) + " result: " + jsDump.parse(actual) );
-}
-
-/**
- * Trigger an event on an element.
- *
- * @example triggerEvent( document.body, "click" );
- *
- * @param DOMElement elem
- * @param String type
- */
-function triggerEvent( elem, type, event ) {
- if ( document.createEvent ) {
- event = document.createEvent("MouseEvents");
- event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
- 0, 0, 0, 0, 0, false, false, false, false, 0, null);
- elem.dispatchEvent( event );
- } else if ( elem.fireEvent ) {
- elem.fireEvent("on"+type);
- }
-}
-
-function extend(a, b){
- for ( var prop in b ) {
- a[prop] = b[prop];
- }
-
- return a;
-}
-
-function addEvent(elem, type, fn){
- if ( elem.addEventListener ) {
- elem.addEventListener( type, fn, false );
- } else if ( elem.attachEvent ) {
- elem.attachEvent( "on" + type, fn );
- }
-}
-
-})();
-
-/**
- * jsDump
- * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
- * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php)
- * Date: 5/15/2008
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-(function(){
- function quote( str ){
- return '"' + str.toString().replace(/"/g, '\\"') + '"';
- };
- function literal( o ){
- return o + '';
- };
- function join( pre, arr, post ){
- var s = jsDump.separator(),
- base = jsDump.indent(),
- inner = jsDump.indent(1);
- if( arr.join )
- arr = arr.join( ',' + s + inner );
- if( !arr )
- return pre + post;
- return [ pre, inner + arr, base + post ].join(s);
- };
- function array( arr ){
- var i = arr.length, ret = Array(i);
- this.up();
- while( i-- )
- ret[i] = this.parse( arr[i] );
- this.down();
- return join( '[', ret, ']' );
- };
-
- var reName = /^function (\w+)/;
-
- var jsDump = window.jsDump = {
- parse:function( obj, type ){//type is used mostly internally, you can fix a (custom)type in advance
- var parser = this.parsers[ type || this.typeOf(obj) ];
- type = typeof parser;
-
- return type == 'function' ? parser.call( this, obj ) :
- type == 'string' ? parser :
- this.parsers.error;
- },
- typeOf:function( obj ){
- var type = typeof obj,
- f = 'function';//we'll use it 3 times, save it
- return type != 'object' && type != f ? type :
- !obj ? 'null' :
- obj.exec ? 'regexp' :// some browsers (FF) consider regexps functions
- obj.getHours ? 'date' :
- obj.scrollBy ? 'window' :
- obj.nodeName == '#document' ? 'document' :
- obj.nodeName ? 'node' :
- obj.item ? 'nodelist' : // Safari reports nodelists as functions
- obj.callee ? 'arguments' :
- obj.call || obj.constructor != Array && //an array would also fall on this hack
- (obj+'').indexOf(f) != -1 ? f : //IE reports functions like alert, as objects
- 'length' in obj ? 'array' :
- type;
- },
- separator:function(){
- return this.multiline ? this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' ';
- },
- indent:function( extra ){// extra can be a number, shortcut for increasing-calling-decreasing
- if( !this.multiline )
- return '';
- var chr = this.indentChar;
- if( this.HTML )
- chr = chr.replace(/\t/g,' ').replace(/ /g,'&nbsp;');
- return Array( this._depth_ + (extra||0) ).join(chr);
- },
- up:function( a ){
- this._depth_ += a || 1;
- },
- down:function( a ){
- this._depth_ -= a || 1;
- },
- setParser:function( name, parser ){
- this.parsers[name] = parser;
- },
- // The next 3 are exposed so you can use them
- quote:quote,
- literal:literal,
- join:join,
- //
- _depth_: 1,
- // This is the list of parsers, to modify them, use jsDump.setParser
- parsers:{
- window: '[Window]',
- document: '[Document]',
- error:'[ERROR]', //when no parser is found, shouldn't happen
- unknown: '[Unknown]',
- 'null':'null',
- undefined:'undefined',
- 'function':function( fn ){
- var ret = 'function',
- name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE
- if( name )
- ret += ' ' + name;
- ret += '(';
-
- ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join('');
- return join( ret, this.parse(fn,'functionCode'), '}' );
- },
- array: array,
- nodelist: array,
- arguments: array,
- object:function( map ){
- var ret = [ ];
- this.up();
- for( var key in map )
- ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) );
- this.down();
- return join( '{', ret, '}' );
- },
- node:function( node ){
- var open = this.HTML ? '&lt;' : '<',
- close = this.HTML ? '&gt;' : '>';
-
- var tag = node.nodeName.toLowerCase(),
- ret = open + tag;
-
- for( var a in this.DOMAttrs ){
- var val = node[this.DOMAttrs[a]];
- if( val )
- ret += ' ' + a + '=' + this.parse( val, 'attribute' );
- }
- return ret + close + open + '/' + tag + close;
- },
- functionArgs:function( fn ){//function calls it internally, it's the arguments part of the function
- var l = fn.length;
- if( !l ) return '';
-
- var args = Array(l);
- while( l-- )
- args[l] = String.fromCharCode(97+l);//97 is 'a'
- return ' ' + args.join(', ') + ' ';
- },
- key:quote, //object calls it internally, the key part of an item in a map
- functionCode:'[code]', //function calls it internally, it's the content of the function
- attribute:quote, //node calls it internally, it's an html attribute value
- string:quote,
- date:quote,
- regexp:literal, //regex
- number:literal,
- 'boolean':literal
- },
- DOMAttrs:{//attributes to dump from nodes, name=>realName
- id:'id',
- name:'name',
- 'class':'className'
- },
- HTML:false,//if true, entities are escaped ( <, >, \t, space and \n )
- indentChar:' ',//indentation unit
- multiline:true //if true, items in a collection, are separated by a \n, else just a space.
- };
-
-})();
diff --git a/external/testsuite-r6565.css b/external/testsuite-r6565.css
deleted file mode 100644
index 520d8e6af..000000000
--- a/external/testsuite-r6565.css
+++ /dev/null
@@ -1,120 +0,0 @@
-body, div, h1 { font-family: 'trebuchet ms', verdana, arial; margin: 0; padding: 0 }
-body {font-size: 10pt; }
-h1 { padding: 15px; font-size: large; background-color: #06b; color: white; }
-h1 a { color: white; }
-h2 { padding: 10px; background-color: #eee; color: black; margin: 0; font-size: small; font-weight: normal }
-
-.pass { color: green; }
-.fail { color: red; }
-p.result { margin-left: 1em; }
-
-#banner { height: 2em; border-bottom: 1px solid white; }
-h2.pass { background-color: green; }
-h2.fail { background-color: red; }
-
-div.testrunner-toolbar { background: #eee; border-top: 1px solid black; padding: 10px; }
-
-ol#tests li strong { cursor:pointer; }
-
-div#fx-tests h4 {
- background: red;
-}
-
-div#fx-tests h4.pass {
- background: green;
-}
-
-div#fx-tests div.box {
- background: red url(data/cow.jpg) no-repeat;
- overflow: hidden;
- border: 2px solid #000;
-}
-
-div#fx-tests div.overflow {
- overflow: visible;
-}
-
-div.inline {
- display: inline;
-}
-
-div.autoheight {
- height: auto;
-}
-
-div.autowidth {
- width: auto;
-}
-
-div.autoopacity {
- opacity: auto;
-}
-
-div.largewidth {
- width: 100px;
-}
-
-div.largeheight {
- height: 100px;
-}
-
-div.largeopacity {
- filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
-}
-
-div.medwidth {
- width: 50px;
-}
-
-div.medheight {
- height: 50px;
-}
-
-div.medopacity {
- opacity: 0.5;
- filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);
-}
-
-div.nowidth {
- width: 0px;
-}
-
-div.noheight {
- height: 0px;
-}
-
-div.noopacity {
- opacity: 0;
- filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
-}
-
-div.hidden {
- display: none;
-}
-
-div#fx-tests div.widewidth {
- background-repeat: repeat-x;
-}
-
-div#fx-tests div.wideheight {
- background-repeat: repeat-y;
-}
-
-div#fx-tests div.widewidth.wideheight {
- background-repeat: repeat;
-}
-
-div#fx-tests div.noback {
- background-image: none;
-}
-
-div.chain, div.chain div { width: 100px; height: 20px; position: relative; float: left; }
-div.chain div { position: absolute; top: 0px; left: 0px; }
-
-div.chain.test { background: red; }
-div.chain.test div { background: green; }
-
-div.chain.out { background: green; }
-div.chain.out div { background: red; display: none; }
-
-div#show-tests * { display: none; }
diff --git a/tests/index.html b/tests/index.html
index 25c4b425c..4a50c2015 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -4,49 +4,18 @@
<title>jQuery UI Tests</title>
<link rel="stylesheet" href="../themes/base/jquery.ui.all.css" type="text/css" />
<script type="text/javascript" src="../jquery-1.4.2.js"></script>
- <script type="text/javascript" src="../external/jsdiff.js"></script>
<link rel="stylesheet" href="tests.css" type="text/css" />
<script type="text/javascript" src="tests.js"></script>
</head>
<body>
-<table id="matrix">
-<thead>
- <tr>
- <th>Interaction</th>
- <th style="width:220px;">Static</th>
- <th style="width:220px;">Visual</th>
- <th>Static</th>
- <th>Visual</th>
- <th>Diff</th>
- </tr>
-</thead>
-<tbody>
- <tr class="test-draggable-default"><th>Draggable</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-droppable-default"><th>Droppable</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-resizable-default"><th>Resizable</th><td></td><td></td><td></td><td></td><td></td></tr>
- <!--tr class="test-selectable-default"><th>Selectable</th><td></td><td></td><td></td><td></td><td></td></tr-->
- <tr class="test-sortable-default"><th>Sortable</th><td></td><td></td><td></td><td></td><td></td></tr>
-</tbody>
-<thead>
- <tr>
- <th>Widget</th>
- <th style="width:220px;">Static</th>
- <th style="width:220px;">Visual</th>
- <th>Static</th>
- <th>Visual</th>
- <th>Diff</th>
- </tr>
-</thead>
-<tbody>
- <tr class="test-accordion-default"><th>Accordion</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-datepicker-default"><th>Datepicker</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-dialog-default"><th>Dialog</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-progressbar-default"><th>Progressbar</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-slider-default"><th>slider</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-tabs-default"><th>Tabs</th><td></td><td></td><td></td><td></td><td></td></tr>
-</tbody>
-</table>
+<h1>jQuery UI Tests</h1>
+
+<h2><a href="static/index.html">Static Tests</a></h2>
+
+<h2><a href="unit/index.html">Unit Tests</a></h2>
+
+<h2><a href="visual/index.html">Visual Tests</a></h2>
</body>
</html>
diff --git a/tests/slider.html b/tests/slider.html
deleted file mode 100644
index 94eac2550..000000000
--- a/tests/slider.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>jQuery UI Tests</title>
- <link rel="stylesheet" href="../themes/base/jquery.ui.all.css" type="text/css" />
- <script type="text/javascript" src="../jquery-1.4.2.js"></script>
- <script type="text/javascript" src="../external/jsdiff.js"></script>
- <link rel="stylesheet" href="tests.css" type="text/css" />
- <script type="text/javascript" src="tests.js"></script>
-</head>
-<body>
-
-<table id="matrix">
-<thead>
- <tr>
- <th>Default Slider Tests</th>
- <th style="width:220px;">Static</th>
- <th style="width:220px;">Visual</th>
- <th>Static</th>
- <th>Visual</th>
- <th>Diff</th>
- </tr>
-</thead>
-<tbody>
- <tr class="test-slider-default"><th>Default</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-slider-default-vertical"><th>Vertical</th><td></td><td></td><td></td><td></td><td></td></tr>
-</tbody>
-<thead>
- <tr>
- <th>Horizontal Slider Tests</th>
- <th style="width:220px;">Static</th>
- <th style="width:220px;">Visual</th>
- <th>Static</th>
- <th>Visual</th>
- <th>Diff</th>
- </tr>
-</thead>
-<tbody>
- <tr class="test-slider-slider-horizontal"><th>Horizontal</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-slider-slider-horizontal-range"><th>Horizontal range</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-slider-slider-horizontal-range-max"><th>Horizontal range max</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-slider-slider-horizontal-range-min"><th>Horizontal range min</th><td></td><td></td><td></td><td></td><td></td></tr>
-</tbody>
-<thead>
- <tr>
- <th>Vertical Slider Tests</th>
- <th style="width:220px;">Static</th>
- <th style="width:220px;">Visual</th>
- <th>Static</th>
- <th>Visual</th>
- <th>Diff</th>
- </tr>
-</thead>
-<tbody>
- <tr class="test-slider-slider-vertical"><th>Vertical</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-slider-slider-vertical-range"><th>Vertical range</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-slider-slider-vertical-range-max"><th>Vertical range max</th><td></td><td></td><td></td><td></td><td></td></tr>
- <tr class="test-slider-slider-vertical-range-min"><th>Vertical range min</th><td></td><td></td><td></td><td></td><td></td></tr>
-</tbody>
-</table>
-
-</body>
-</html>
diff --git a/tests/static/all.html b/tests/static/all.html
deleted file mode 100644
index cca97f64b..000000000
--- a/tests/static/all.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!doctype html>
-<html>
-<head>
- <title>jQuery UI Static Markup Test Page</title>
- <link rel="stylesheet" href="../../themes/base/jquery.ui.base.css" type="text/css" />
- <link rel="stylesheet" href="../../themes/base/jquery.ui.theme.css" type="text/css" title="ui-theme" />
- <script type="text/javascript" src="../../jquery-1.4.2.js"></script>
- <script type="text/javascript" src="static.js"></script>
- <style type="text/css">
- dd.plugin { margin-top: 0.3em; margin-bottom: 1em; }
- </style>
-</head>
-<body style="font-size: 62.5%;">
-
-<dl id="plugins">
-
-</dl>
-
-<script type="text/javascript">
-
-var plugins = $("#plugins");
-
-$("accordion datepicker dialog progressbar slider tabs".split(" ")).each(function() {
-
- var pluginName = this;
- var url = pluginName + '/' + pluginName + ".html";
-
- $('<dt><a href="' + url + '">' + url + '</a></dt>').appendTo(plugins);
- $('<dd class="plugin"></dd>').load(url, function() {
- var plugin = $(this).find(".ui-" + pluginName).remove();
- $(this).empty().append(plugin);
- }).appendTo(plugins);
-
-});
-
-</script>
-
-</body>
-</html>
diff --git a/tests/static/index.html b/tests/static/index.html
index e33645d1b..5baf14368 100644
--- a/tests/static/index.html
+++ b/tests/static/index.html
@@ -1,7 +1,7 @@
<!doctype html>
<html lang="en">
<head>
- <title>Static Tests</title>
+ <title>jQuery UI Static Tests</title>
<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css" type="text/css" />
<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
<script type="text/javascript">
@@ -12,6 +12,8 @@
</head>
<body>
+
+<h1>jQuery UI Static Tests</h1>
<h2>Interactions</h2>
<ul>
@@ -25,6 +27,8 @@
<h2>Widgets</h2>
<ul>
<li><a href="accordion/default.html">Accordion</a></li>
+ <li><a href="autocomplete/default.html">Autocomplete</a></li>
+ <li><a href="button/default.html">Button</a></li>
<li><a href="datepicker/default.html">Datepicker</a></li>
<li><a href="dialog/default.html">Dialog</a></li>
<li><a href="progressbar/default.html">Progressbar</a></li>
diff --git a/tests/tests.css b/tests/tests.css
deleted file mode 100644
index 353a503f9..000000000
--- a/tests/tests.css
+++ /dev/null
@@ -1,8 +0,0 @@
-/* tests.css */
-
-body { font-size: 62.5%; }
-iframe { border: 0; width: 200px; height: 150px; }
-td { border: 1px solid silver; padding: 10px; }
-td textarea { font-size: 10px; }
-del { background: #FFE6E6; }
-ins { background: #E6FFE6; }
diff --git a/tests/tests.js b/tests/tests.js
deleted file mode 100644
index 7f5f4fc17..000000000
--- a/tests/tests.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/* tests.js */
-
-$(function() {
-
-var matrix = $("#matrix");
-
-matrix.children("tbody").children("tr").each(function() {
-
- var tr = $(this), th = tr.find("th"), pluginName = th.text().toLowerCase(),
- staticTd = th.next(), visualTd = staticTd.next(),
- staticHtmlTd = visualTd.next(), visualHtmlTd = staticHtmlTd.next(),
- diffTd = visualHtmlTd.next();
-
- var className = tr.attr("className");
- var classNames = className.split('-');
-
- classNames.shift(); // remove 'test'
- var folder = classNames.shift();
- var filename = classNames.join('_') + '.html';
-
- var staticUrl = 'static/' + folder + '/' + filename;
- var visualUrl = 'visual/' + folder + '/' + filename;
-
- $.get(staticUrl, function(data) {
- data = data.replace(/<script.*>.*<\/script>/ig,""); // Remove script tags
- data = data.replace(/<\/?link.*>/ig,""); //Remove link tags
- data = data.replace(/<\/?html.*>/ig,""); //Remove html tag
- data = data.replace(/<\/?body.*>/ig,""); //Remove body tag
- data = data.replace(/<\/?head.*>/ig,""); //Remove head tag
- data = data.replace(/<title.*>.*<\/title>/ig,""); // Remove title tags
- data = data.replace(/\s*<\/?!doctype.*>\s*/ig,""); //Remove doctype
- var staticHtml = $("<div></div>").html(data).html();
- staticTd.html(staticHtml);
- staticHtmlTd.append("<textarea>" + staticHtml + "</textarea>");
- });
-
- visualTd.append('<iframe src="' + visualUrl + '"></iframe>');
-
- var iframe = visualTd.find("iframe");
-
- iframe.load(function() {
- var visualHtml = $("body", this.contentDocument).html()
- $(this).after(visualHtml).remove();
- (pluginName == 'dialog') && $("#dialog").parents(".ui-dialog").css({
- position: "relative",
- top: null, left: null
- });
- visualHtmlTd.append("<textarea>" + $.trim(visualHtml) + "</textarea>");
- var diffHtml = diffString(escape(staticHtmlTd.find("textarea").val()), escape(visualHtmlTd.find("textarea").val()));
- console.log(diffHtml);
- diffTd.html(diffHtml);
- });
-
-});
-
-});
diff --git a/tests/unit/accordion/accordion.html b/tests/unit/accordion/accordion.html
index 0575df68e..ac49fdcad 100644
--- a/tests/unit/accordion/accordion.html
+++ b/tests/unit/accordion/accordion.html
@@ -3,13 +3,15 @@
<head>
<title>jQuery UI Accordion Test Suite</title>
+ <link type="text/css" href="../../../themes/base/jquery.ui.accordion.css" rel="stylesheet" />
+
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.accordion.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -21,12 +23,18 @@
<script type="text/javascript" src="accordion_tickets.js"></script>
<style>
- .ui-accordion-li-fix { margin: 0em; padding: 0 }
+ #main { font-size: 10pt; font-family: 'trebuchet ms', verdana, arial; }
</style>
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Accordion Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<div id="list1">
<a>There is one obvious advantage:</a>
diff --git a/tests/unit/accordion/accordion_options.js b/tests/unit/accordion/accordion_options.js
index ddb2c38cb..237ff40d3 100644
--- a/tests/unit/accordion/accordion_options.js
+++ b/tests/unit/accordion/accordion_options.js
@@ -116,9 +116,9 @@ test("{ fillSpace: false }, default", function() {
test("{ fillSpace: true }", function() {
$("#navigationWrapper").height(500);
$('#navigation').accordion({ fillSpace: true });
- equals( $('#navigation > li:eq(0) > ul').height(), 386 );
- equals( $('#navigation > li:eq(1) > ul').height(), 386 );
- equals( $('#navigation > li:eq(2) > ul').height(), 386 );
+ equals( $('#navigation > li:eq(0) > ul').height(), 281 );
+ equals( $('#navigation > li:eq(1) > ul').height(), 281 );
+ equals( $('#navigation > li:eq(2) > ul').height(), 281 );
});
test("{ header: '> li > :first-child,> :not(li):even' }, default", function() {
diff --git a/tests/unit/all.html b/tests/unit/all.html
deleted file mode 100644
index 533276a78..000000000
--- a/tests/unit/all.html
+++ /dev/null
@@ -1,301 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>jQuery UI All Tests</title>
- <link rel="stylesheet" href="testsuite.css" type="text/css">
-
- <script type="text/javascript" src="../../jquery-1.4.2.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.progressbar.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.selectable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-
- <script type="text/javascript" src="../../external/testrunner-r6588.js"></script>
- <script type="text/javascript" src="../../external/jquery.cookie.js"></script>
- <script type="text/javascript" src="../jquery.simulate.js"></script>
- <script type="text/javascript" src="testsuite.js"></script>
-
- <script type="text/javascript" src="core/core.js"></script>
- <script type="text/javascript" src="core/selector.js"></script>
-
- <script type="text/javascript" src="draggable/draggable_core.js"></script>
- <script type="text/javascript" src="draggable/draggable_defaults.js"></script>
- <script type="text/javascript" src="draggable/draggable_events.js"></script>
- <script type="text/javascript" src="draggable/draggable_methods.js"></script>
- <script type="text/javascript" src="draggable/draggable_options.js"></script>
- <script type="text/javascript" src="draggable/draggable_tickets.js"></script>
- <script type="text/javascript" src="droppable/droppable_core.js"></script>
- <script type="text/javascript" src="droppable/droppable_defaults.js"></script>
- <script type="text/javascript" src="droppable/droppable_events.js"></script>
- <script type="text/javascript" src="droppable/droppable_methods.js"></script>
- <script type="text/javascript" src="droppable/droppable_options.js"></script>
- <script type="text/javascript" src="droppable/droppable_tickets.js"></script>
- <script type="text/javascript" src="resizable/resizable_core.js"></script>
- <script type="text/javascript" src="resizable/resizable_defaults.js"></script>
- <script type="text/javascript" src="resizable/resizable_events.js"></script>
- <script type="text/javascript" src="resizable/resizable_methods.js"></script>
- <script type="text/javascript" src="resizable/resizable_options.js"></script>
- <script type="text/javascript" src="resizable/resizable_tickets.js"></script>
- <script type="text/javascript" src="selectable/selectable_core.js"></script>
- <script type="text/javascript" src="selectable/selectable_defaults.js"></script>
- <script type="text/javascript" src="selectable/selectable_events.js"></script>
- <script type="text/javascript" src="selectable/selectable_methods.js"></script>
- <script type="text/javascript" src="selectable/selectable_options.js"></script>
- <script type="text/javascript" src="selectable/selectable_tickets.js"></script>
- <script type="text/javascript" src="sortable/sortable_core.js"></script>
- <script type="text/javascript" src="sortable/sortable_defaults.js"></script>
- <script type="text/javascript" src="sortable/sortable_events.js"></script>
- <script type="text/javascript" src="sortable/sortable_methods.js"></script>
- <script type="text/javascript" src="sortable/sortable_options.js"></script>
- <script type="text/javascript" src="sortable/sortable_tickets.js"></script>
-
- <script type="text/javascript" src="accordion/accordion_core.js"></script>
- <script type="text/javascript" src="accordion/accordion_defaults.js"></script>
- <script type="text/javascript" src="accordion/accordion_events.js"></script>
- <script type="text/javascript" src="accordion/accordion_methods.js"></script>
- <script type="text/javascript" src="accordion/accordion_options.js"></script>
- <script type="text/javascript" src="accordion/accordion_tickets.js"></script>
- <script type="text/javascript" src="datepicker/datepicker_core.js"></script>
- <script type="text/javascript" src="datepicker/datepicker_defaults.js"></script>
- <script type="text/javascript" src="datepicker/datepicker_events.js"></script>
- <script type="text/javascript" src="datepicker/datepicker_methods.js"></script>
- <script type="text/javascript" src="datepicker/datepicker_options.js"></script>
- <script type="text/javascript" src="datepicker/datepicker_tickets.js"></script>
- <script type="text/javascript" src="dialog/dialog_core.js"></script>
- <script type="text/javascript" src="dialog/dialog_defaults.js"></script>
- <script type="text/javascript" src="dialog/dialog_events.js"></script>
- <script type="text/javascript" src="dialog/dialog_methods.js"></script>
- <script type="text/javascript" src="dialog/dialog_options.js"></script>
- <script type="text/javascript" src="dialog/dialog_tickets.js"></script>
- <script type="text/javascript" src="progressbar/progressbar_core.js"></script>
- <script type="text/javascript" src="progressbar/progressbar_defaults.js"></script>
- <script type="text/javascript" src="progressbar/progressbar_events.js"></script>
- <script type="text/javascript" src="progressbar/progressbar_methods.js"></script>
- <script type="text/javascript" src="progressbar/progressbar_options.js"></script>
- <script type="text/javascript" src="progressbar/progressbar_tickets.js"></script>
- <script type="text/javascript" src="slider/slider_core.js"></script>
- <script type="text/javascript" src="slider/slider_defaults.js"></script>
- <script type="text/javascript" src="slider/slider_events.js"></script>
- <script type="text/javascript" src="slider/slider_methods.js"></script>
- <script type="text/javascript" src="slider/slider_options.js"></script>
- <script type="text/javascript" src="slider/slider_tickets.js"></script>
- <script type="text/javascript" src="tabs/tabs_core.js"></script>
- <script type="text/javascript" src="tabs/tabs_defaults.js"></script>
- <script type="text/javascript" src="tabs/tabs_events.js"></script>
- <script type="text/javascript" src="tabs/tabs_methods.js"></script>
- <script type="text/javascript" src="tabs/tabs_options.js"></script>
- <script type="text/javascript" src="tabs/tabs_tickets.js"></script>
-
- <style type="text/css">
- @import "../../../themes/base/jquery.ui.datepicker.css";
- .xerror, .error, .ui-tabs-hide {
- display: none;
- }
- </style>
-
-</head>
-<body>
- <h1>jQuery UI All Tests</h1>
- <h2 id="banner"></h2>
- <h2 id="userAgent"></h2>
-
- <h3>Run individual testsuites or doubleclick a test below</h3>
-
- <h4>Core</h4>
- <ul>
- <li><a href="core/core.html">Core</a></li>
- </ul>
-
- <h4>Interactions</h4>
- <ul>
- <li><a href="draggable/draggable.html">Draggable</a></li>
- <li><a href="droppable/droppable.html">Droppable</a></li>
- <li><a href="resizable/resizable.html">Resizable</a></li>
- <li><a href="selectable/selectable.html">Selectable</a></li>
- <li><a href="sortable/sortable.html">Sortable</a></li>
- </ul>
-
- <h4>Widgets</h4>
- <ul>
- <li><a href="accordion/accordion.html">Accordion</a></li>
- <li><a href="datepicker/datepicker.html">Datepicker</a></li>
- <li><a href="dialog/dialog.html">Dialog</a></li>
- <li><a href="progressbar/progressbar.html">Progressbar</a></li>
- <li><a href="slider/slider.html">Slider</a></li>
- <li><a href="tabs/tabs.html">Tabs</a></li>
- </ul>
-
- <ol id="tests"></ol>
-
- <div id="main" style="position:absolute;top:-2000000px;">
-
- <p><input type="text" id="dp1"/><input type="text" id="rem"/></p>
-
- <div id="draggable1" style="background: green; width: 200px; height: 100px;">Relative</div>
- <div id="draggable2" style="background: green; width: 200px; height: 100px; position: absolute; top: 10px; left: 10px;"><span>Absolute</span></div>
-
- <div id="slider1"></div>
- <div id="slider3" style="position: relative; margin: 40px; width: 217px; height: 28px;">
- <div class="ui-slider-handle" style="position: absolute; height: 21px; left: 0px; bottom: 0px; width: 17px;"></div>
- </div>
-
- <div id="list1">
- <a>There is one obvious advantage:</a>
- <div>
- <p>
- You've seen it coming!<br/>
- Buy now and get nothing for free!<br/>
- Well, at least no free beer. Perhaps a bear, if you can afford it.
- </p>
- </div>
- <a>Now that you've got...</a>
- <div>
- <p>
- your bear, you have to admit it!<br/>
- No, we aren't selling bears.
- </p>
- <p>
- We could talk about renting one.
- </p>
- </div>
- <a>Rent one bear, ...</a>
- <div>
- <p>
- get two for three beer.
- </p>
- <p>
- And now, for something completely different.
- </p>
- </div>
- </div>
-
- <ul id="navigation">
- <li>
- <a class="head" href="?p=1.1.1">Guitar</a>
- <ul>
- <li><a href="?p=1.1.1.1">Electric</a></li>
- <li><a href="?p=1.1.1.2">Acoustic</a></li>
- <li><a href="?p=1.1.1.3">Amps</a></li>
- <li><a href="?p=1.1.1.4">Effects</a></li>
- <li><a href="?p=1.1.1.5">Accessories</a></li>
- </ul>
- </li>
- <li>
- <a class="head" href="?p=1.1.2"><span>Bass</span></a>
- <ul>
- <li><a href="?p=1.1.2.1">Electric</a></li>
- <li><a href="?p=1.1.2.2">Acoustic</a></li>
- <li><a href="?p=1.1.2.3">Amps</a></li>
- <li><a href="?p=1.1.2.4">Effects</a></li>
- <li><a href="?p=1.1.2.5">Accessories</a></li>
- <li><a href="?p=1.1.2.5">Accessories</a></li>
- <li><a href="?p=1.1.2.5">Accessories</a></li>
- </ul>
- </li>
- <li>
- <a class="head" href="?p=1.1.3">Drums</a>
- <ul>
- <li><a href="?p=1.1.3.2">Acoustic Drums</a></li>
- <li><a href="?p=1.1.3.3">Electronic Drums</a></li>
- <li><a href="?p=1.1.3.6">Accessories</a></li>
- </ul>
- </li>
- </ul>
- <dl id="list2">
- <dt class="red">Red</dt>
- <dd>
- Fancy stuff about red thingies.
- </dd>
- <dt class="green selected">Green</dt>
- <dd>
- Green! Green! Green!
- </dd>
- <dt class="blue">Blue</dt>
- <dd>
- Cool kids are blue.
- </dd>
- </dl>
-
- <div id="list3">
- <div>
- <div class="title">Tennis</div>
- <div>
- One ball, two players. Lots of fun.
- </div>
- </div>
- <div>
- <div class="title">Soccer</div>
- <div>
- One ball, 22 players. Lots of fun.
- </div>
- </div>
- <div>
- <div class="title">Baseball</div>
- <div>
- Well, one ball, some guys running around, some guys hitting others with a stick.<br/>
- Sounds like fun, doesn't it?
- </div>
- <div>
- Well, apart from the running part.
- </div>
- </div>
- </div>
-
- <div id="resizable1" style="background: green; width: 100px; height: 100px;">I'm a resizable.</div>
- <img src="images/test.jpg" id="resizable2" style="width: 100px; height: 100px;"/>
-
-
- <ul id="selectable1">
- <li>Item 1</li>
- <li>Item 2</li>
- <li class="special">Item 3</li>
- <li>Item 4</li>
- <li>Item 5</li>
- </ul>
-
- <ul id="sortable">
- <li>Item 1</li>
- <li>Item 2</li>
- <li>Item 3</li>
- <li>Item 4</li>
- <li>Item 5</li>
- </ul>
-
- <p><input type="text" id="inp"/><input type="text" id="alt"/><div id="inl"></div></p>
-
- <input type="text" id="spin" />
-
- <div id="progressbar"></div>
-
- <div id="tabs1">
- <ul>
- <li><a href="#fragment-1">1</a></li>
- <li><a href="#fragment-2">2</a></li>
- <li><a href="#fragment-3">3</a></li>
- </ul>
- <div id="fragment-1"></div>
- <div id="fragment-2"></div>
- <div id="fragment-3"></div>
- </div>
- <div id="tabs2">
- <ul>
- <li><a href="#colon:test">1</a></li>
- <li><a href="#inline-style">2</a></li>
- </ul>
- <div id="colon:test"></div>
- <div style="height: 300px;" id="inline-style"></div>
- </div>
-
-</div>
- </body>
-</html> \ No newline at end of file
diff --git a/tests/unit/all_2.html b/tests/unit/all_2.html
deleted file mode 100644
index 9ae43029e..000000000
--- a/tests/unit/all_2.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>jQuery UI All Tests</title>
- <link rel="stylesheet" href="testsuite.css" type="text/css">
-
- <script type="text/javascript" src="../../jquery-1.4.2.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-
- <script type="text/javascript">
- var components = ["accordion","datepicker","dialog","draggable","progressbar","resizable","selectable","slider","sortable","tabs"];
-
- $(function() {
-
- var $list = $("#individual_list"),
- $main = $("#main");
-
- $.each(components, function(i, val){
- $list.append('<li><a href="' + val + '/' + val + '.html">' + val + '</a></li>');
- $('<div class="component_panel" id="' + val + '">').appendTo($main);
- $('#' + val).load(val + '.html #main *');
- });
-
- loadScripts();
-
- function loadScripts() {
- if ( $("div.component_panel").length == components.length ) {
- $.each(components, function(i, val){
- $('head').append('<script type="text/javascript" src="' + val + '.js"></scr'+'ipt>');
- });
- } else {
- setTimeout(loadScripts, 10);
- }
- }
-
-
- });
-
-
- </script>
-
- <script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.progressbar.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.selectable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
- <script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-
- <script type="text/javascript" src="../../external/testrunner-r6588.js"></script>
- <script type="text/javascript" src="../../external/jquery.cookie.js"></script>
- <script type="text/javascript" src="../jquery.simulate.js"></script>
-
- <style type="text/css">
- @import "../../../themes/base/jquery.ui.datepicker.css";
- .xerror, .error, .ui-tabs-hide {
- display: none;
- }
- </style>
-
-</head>
-<body>
- <h1>jQuery UI All Tests</h1>
- <h2 id="banner"></h2>
- <h2 id="userAgent"></h2>
-
- <h4>Run individual testsuites or doubleclick a test below</h4>
- <ul id="individual_list">
- </ul>
-
- <ol id="tests"></ol>
-
- <div id="main" style="position:absolute; top:-2000000px;">
-
- </div>
-
- </body>
-</html> \ No newline at end of file
diff --git a/tests/unit/autocomplete/autocomplete.html b/tests/unit/autocomplete/autocomplete.html
index 1d4637c5b..38ed54b7e 100644
--- a/tests/unit/autocomplete/autocomplete.html
+++ b/tests/unit/autocomplete/autocomplete.html
@@ -3,6 +3,8 @@
<head>
<title>jQuery UI Autocomplete Test Suite</title>
+ <link type="text/css" href="../../../themes/base/jquery.ui.autocomplete.css" rel="stylesheet" />
+
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
@@ -10,8 +12,8 @@
<script type="text/javascript" src="../../../ui/jquery.ui.menu.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.autocomplete.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -23,9 +25,15 @@
<script type="text/javascript" src="autocomplete_tickets.js"></script>
</head>
-<body>
+<body id="body">
+
+<h1 id="qunit-header">jQuery UI Autocomplete Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
-<div id="main">
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<div><input id="autocomplete" class="foo" /></div>
diff --git a/tests/unit/button/button.html b/tests/unit/button/button.html
index 255c9c71b..593916ef1 100644
--- a/tests/unit/button/button.html
+++ b/tests/unit/button/button.html
@@ -3,16 +3,18 @@
<head>
<title>jQuery UI Button Test Suite</title>
+ <link type="text/css" href="../../../themes/base/jquery.ui.button.css" rel="stylesheet" />
+
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.button.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
-
+
<script type="text/javascript" src="button_core.js"></script>
<script type="text/javascript" src="button_defaults.js"></script>
<script type="text/javascript" src="button_events.js"></script>
@@ -23,7 +25,14 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Button Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
+
<div><button id="button" class="foo">Label</button></div>
diff --git a/tests/unit/core/core.html b/tests/unit/core/core.html
index b7b91aaf9..456684e6e 100644
--- a/tests/unit/core/core.html
+++ b/tests/unit/core/core.html
@@ -7,11 +7,10 @@
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
- <script type="text/javascript" src="../testsuite.js"></script>
-
+
<script type="text/javascript" src="core.js"></script>
<script type="text/javascript" src="selector.js"></script>
@@ -22,7 +21,14 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Core Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
+
<div>
<input id="visibleAncestor-inputTypeNone" />
<input type="text" id="visibleAncestor-inputTypeText" />
diff --git a/tests/unit/datepicker/datepicker.html b/tests/unit/datepicker/datepicker.html
index 4f6dadc8b..f26db7782 100644
--- a/tests/unit/datepicker/datepicker.html
+++ b/tests/unit/datepicker/datepicker.html
@@ -3,7 +3,7 @@
<head>
<title>jQuery UI Datepicker Test Suite</title>
- <link type="text/css" href="../../../themes/base/jquery.ui.base.css" rel="stylesheet" />
+ <link type="text/css" href="../../../themes/base/jquery.ui.datepicker.css" rel="stylesheet" />
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
@@ -12,11 +12,11 @@
<script type="text/javascript" src="../../../ui/i18n/jquery.ui.datepicker-fr.js"></script>
<script type="text/javascript" src="../../../ui/i18n/jquery.ui.datepicker-he.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
-
+
<script type="text/javascript" src="datepicker_core.js"></script>
<script type="text/javascript" src="datepicker_defaults.js"></script>
<script type="text/javascript" src="datepicker_events.js"></script>
@@ -26,7 +26,13 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Datepicker Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<p><input type="text" id="inp"/><input type="text" id="alt"/><div id="inl"></div></p>
</div>
diff --git a/tests/unit/datepicker/datepicker_options.js b/tests/unit/datepicker/datepicker_options.js
index 9656b69d7..7011fd5a1 100644
--- a/tests/unit/datepicker/datepicker_options.js
+++ b/tests/unit/datepicker/datepicker_options.js
@@ -684,7 +684,7 @@ test('callbacks', function() {
equals($.datepicker._get(inst, 'currentText'), 'Current', 'Before show - changed');
ok(beforeShowThis.id == inp[0].id, 'Before show - this OK');
ok(beforeShowInput.id == inp[0].id, 'Before show - input OK');
- isObj(beforeShowInst, inst, 'Before show - inst OK');
+ deepEqual(beforeShowInst, inst, 'Before show - inst OK');
inp.datepicker('hide').datepicker('destroy');
// Before show day
inp = init('#inp', {beforeShowDay: beforeDay});
@@ -734,7 +734,7 @@ test('localisation', function() {
test('noWeekends', function() {
for (var i = 1; i <= 31; i++) {
var date = new Date(2001, 1 - 1, i);
- isSet($.datepicker.noWeekends(date), [(i + 1) % 7 >= 2, ''],
+ deepEqual($.datepicker.noWeekends(date), [(i + 1) % 7 >= 2, ''],
'No weekends ' + date);
}
});
diff --git a/tests/unit/defaults.html b/tests/unit/defaults.html
index 99b2aa797..06b44dcff 100644
--- a/tests/unit/defaults.html
+++ b/tests/unit/defaults.html
@@ -4,8 +4,10 @@
<title>jQuery UI Defaults</title>
<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
+ <script type="text/javascript" src="../../external/jquery.cookie.js"></script>
<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
+ <script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
<script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
@@ -18,18 +20,19 @@
<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
- <link type="text/css" href="testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="testsuite.js"></script>
- <script type="text/javascript" src="../../external/testrunner-r6588.js"></script>
- <script type="text/javascript" src="../../external/jquery.cookie.js"></script>
+ <link rel="stylesheet" href="../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../external/qunit.js"></script>
<script type="text/javascript" src="../jquery.simulate.js"></script>
+ <script type="text/javascript" src="testsuite.js"></script>
<script type="text/javascript" src="draggable/draggable_defaults.js"></script>
<script type="text/javascript" src="droppable/droppable_defaults.js"></script>
<script type="text/javascript" src="resizable/resizable_defaults.js"></script>
<script type="text/javascript" src="selectable/selectable_defaults.js"></script>
<script type="text/javascript" src="sortable/sortable_defaults.js"></script>
+ <script type="text/javascript" src="autocomplete/autocomplete_defaults.js"></script>
<script type="text/javascript" src="accordion/accordion_defaults.js"></script>
+ <script type="text/javascript" src="button/button_defaults.js"></script>
<script type="text/javascript" src="datepicker/datepicker_defaults.js"></script>
<script type="text/javascript" src="dialog/dialog_defaults.js"></script>
<script type="text/javascript" src="progressbar/progressbar_defaults.js"></script>
@@ -37,7 +40,16 @@
<script type="text/javascript" src="tabs/tabs_defaults.js"></script>
</head>
<body>
- <div id="main">
- </div>
+
+<h1 id="qunit-header"></h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
+
+</div>
+
</body>
</html>
diff --git a/tests/unit/dialog/dialog.html b/tests/unit/dialog/dialog.html
index fd538442a..6485ac01a 100644
--- a/tests/unit/dialog/dialog.html
+++ b/tests/unit/dialog/dialog.html
@@ -3,6 +3,8 @@
<head>
<title>jQuery UI Dialog Test Suite</title>
+ <link type="text/css" href="../../../themes/base/jquery.ui.dialog.css" rel="stylesheet" />
+
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../external/jquery.bgiframe-2.1.1.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
@@ -13,11 +15,11 @@
<script type="text/javascript" src="../../../ui/jquery.ui.resizable.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.dialog.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
-
+
<script type="text/javascript" src="dialog_core.js"></script>
<script type="text/javascript" src="dialog_defaults.js"></script>
<script type="text/javascript" src="dialog_events.js"></script>
@@ -27,8 +29,13 @@
</head>
<body>
-<div id="main">
- <div id="dialog1">Dialog Content</div>
+<h1 id="qunit-header">jQuery UI Dialog Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
</div>
</body>
diff --git a/tests/unit/dialog/dialog_core.js b/tests/unit/dialog/dialog_core.js
index cf76045b4..4618417f0 100644
--- a/tests/unit/dialog/dialog_core.js
+++ b/tests/unit/dialog/dialog_core.js
@@ -9,7 +9,7 @@ var el,
dragged;
function dlg() {
- return el.data("dialog").element.parents(".ui-dialog:first");
+ return el.dialog('widget');
}
function isOpen(why) {
diff --git a/tests/unit/draggable/draggable.html b/tests/unit/draggable/draggable.html
index 1cd533cee..0bd56a280 100644
--- a/tests/unit/draggable/draggable.html
+++ b/tests/unit/draggable/draggable.html
@@ -9,8 +9,8 @@
<script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.draggable.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -23,7 +23,13 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Draggable Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<div id="draggable1" style="background: green; width: 200px; height: 100px;">Relative</div>
<div id="draggable2" style="background: green; width: 200px; height: 100px; position: absolute; top: 10px; left: 10px;"><span>Absolute</span></div>
<div style='width: 1px; height: 1000px;'></div>
diff --git a/tests/unit/droppable/droppable.html b/tests/unit/droppable/droppable.html
index 42bfa4899..d47229650 100644
--- a/tests/unit/droppable/droppable.html
+++ b/tests/unit/droppable/droppable.html
@@ -10,11 +10,11 @@
<script type="text/javascript" src="../../../ui/jquery.ui.draggable.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.droppable.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
-
+
<script type="text/javascript" src="droppable_core.js"></script>
<script type="text/javascript" src="droppable_defaults.js"></script>
<script type="text/javascript" src="droppable_events.js"></script>
@@ -24,7 +24,13 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Droppable Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<div id="draggable1" style="width: 25px; height: 25px;">Draggable</div>
<div id="droppable1" style="width: 100px; height: 100px;">Droppable</div>
<div style='width:1000px;height:1000px;'>&nbsp;</div>
diff --git a/tests/unit/index.html b/tests/unit/index.html
index 11f478bf7..325d5127f 100644
--- a/tests/unit/index.html
+++ b/tests/unit/index.html
@@ -1,10 +1,22 @@
<!doctype html>
<html lang="en">
<head>
- <title>jQuery UI Unit Test Suite</title>
+ <title>jQuery UI Unit Tests</title>
<link type="text/css" href="../../themes/base/jquery.ui.base.css" rel="stylesheet" />
- <link type="text/css" href="testsuite.css" rel="stylesheet" />
+ <link rel="stylesheet" href="../../external/qunit.css" type="text/css"/>
+ <style type="text/css">
+ ul { font-family: 'trebuchet ms', verdana, arial; }
+ h2, ul {font-size: 10pt; }
+ h2 {
+ background-color:#EEEEEE;
+ color:black;
+ font-size:small;
+ font-weight:normal;
+ margin:0;
+ padding:10px;
+ }
+ </style>
<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
@@ -30,7 +42,7 @@
</head>
<body>
-<h1>jQuery UI Unit Tests</h1>
+<h1 id="qunit-header">jQuery UI Unit Tests</h1>
<h2>Core</h2>
<ul>
diff --git a/tests/unit/position/position.html b/tests/unit/position/position.html
index 421cd5fa0..0dc6c671c 100644
--- a/tests/unit/position/position.html
+++ b/tests/unit/position/position.html
@@ -6,15 +6,22 @@
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
+ <script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
<script type="text/javascript" src="position_core.js"></script>
</head>
<body>
-<div id="main" style="top: 0; left: 0;">
+<h1 id="qunit-header">jQuery UI Position Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: 0; left: 0;">
<div id="el1" style="position: absolute; width: 6px; height: 6px;"></div>
<div id="el2" style="position: absolute; width: 6px; height: 6px;"></div>
<div id="parent" style="position: absolute; width: 6px; height: 6px; top: 4px; left: 4px;"></div>
diff --git a/tests/unit/position/position_core.js b/tests/unit/position/position_core.js
index 705a7ec34..4d2716ced 100644
--- a/tests/unit/position/position_core.js
+++ b/tests/unit/position/position_core.js
@@ -86,7 +86,7 @@ test('positions', function() {
of: '#parent',
collision: 'none'
});
- same(el.offset(), definition.result, "Position via " + jsDump.parse({my:definition.my, at:definition.at}));
+ same(el.offset(), definition.result, "Position via " + QUnit.jsDump.parse({my:definition.my, at:definition.at}));
});
});
diff --git a/tests/unit/progressbar/progressbar.html b/tests/unit/progressbar/progressbar.html
index 87443073b..b30f047a7 100644
--- a/tests/unit/progressbar/progressbar.html
+++ b/tests/unit/progressbar/progressbar.html
@@ -3,13 +3,15 @@
<head>
<title>jQuery UI Progressbar Test Suite</title>
+ <link type="text/css" href="../../../themes/base/jquery.ui.progressbar.css" rel="stylesheet" />
+
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.progressbar.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -22,7 +24,13 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Progressbar Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<div id="progressbar"></div>
</div>
diff --git a/tests/unit/resizable/resizable.html b/tests/unit/resizable/resizable.html
index 9850acc86..727594ac3 100644
--- a/tests/unit/resizable/resizable.html
+++ b/tests/unit/resizable/resizable.html
@@ -3,14 +3,16 @@
<head>
<title>jQuery UI Resizable Test Suite</title>
+ <link type="text/css" href="../../../themes/base/jquery.ui.resizable.css" rel="stylesheet" />
+
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.resizable.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -23,7 +25,13 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Resizable Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<div id="resizable1" style="background: green; width: 100px; height: 100px;">I'm a resizable.</div>
<img src="images/test.jpg" id="resizable2" style="width: 100px; height: 100px;"/>
</div>
diff --git a/tests/unit/selectable/selectable.html b/tests/unit/selectable/selectable.html
index 8ee88f719..a11ae7552 100644
--- a/tests/unit/selectable/selectable.html
+++ b/tests/unit/selectable/selectable.html
@@ -9,8 +9,8 @@
<script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.selectable.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -23,7 +23,13 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Selectable Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<ul id="selectable1">
<li>Item 1</li>
<li>Item 2</li>
diff --git a/tests/unit/slider/slider.html b/tests/unit/slider/slider.html
index 5cbc9185f..665834a0c 100644
--- a/tests/unit/slider/slider.html
+++ b/tests/unit/slider/slider.html
@@ -3,14 +3,16 @@
<head>
<title>jQuery UI Slider Test Suite</title>
+ <link type="text/css" href="../../../themes/base/jquery.ui.slider.css" rel="stylesheet" />
+
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.slider.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -23,7 +25,13 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Slider Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<div id="slider1"></div>
<div id="slider3" style="position: relative; margin: 40px; width: 217px; height: 28px;">
<div class="ui-slider-handle" style="position: absolute; height: 21px; left: 0px; bottom: 0px; width: 17px;"></div>
diff --git a/tests/unit/sortable/sortable.html b/tests/unit/sortable/sortable.html
index 0076a1e75..5f4cb3d9c 100644
--- a/tests/unit/sortable/sortable.html
+++ b/tests/unit/sortable/sortable.html
@@ -9,8 +9,8 @@
<script type="text/javascript" src="../../../ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.sortable.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -23,7 +23,13 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Sortable Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
<ul id="sortable">
<li>Item 1</li>
<li>Item 2</li>
diff --git a/tests/unit/tabs/tabs.html b/tests/unit/tabs/tabs.html
index adb22cf72..2497f0b24 100644
--- a/tests/unit/tabs/tabs.html
+++ b/tests/unit/tabs/tabs.html
@@ -3,14 +3,16 @@
<head>
<title>jQuery UI Tabs Test Suite</title>
+ <link type="text/css" href="../../../themes/base/jquery.ui.tabs.css" rel="stylesheet" />
+
<script type="text/javascript" src="../../../jquery-1.4.2.js"></script>
+ <script type="text/javascript" src="../../../external/jquery.cookie.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.tabs.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
- <script type="text/javascript" src="../../../external/jquery.cookie.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -22,7 +24,15 @@
<script type="text/javascript" src="tabs_tickets.js"></script>
</head>
<body>
- <div id="main">
+
+<h1 id="qunit-header">jQuery UI Tabs Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
+
<div id="tabs1">
<ul>
<li><a href="#fragment-1"><span>1</span></a></li>
diff --git a/tests/unit/testsuite.css b/tests/unit/testsuite.css
deleted file mode 100644
index 524a03087..000000000
--- a/tests/unit/testsuite.css
+++ /dev/null
@@ -1,4 +0,0 @@
-@import "../../external/testsuite-r6565.css";
-html { border: 0; }
-.xerror, .error, .ui-tabs-hide { display: none }
-#main { position: absolute; top: -10000px; left: -10000px; }
diff --git a/tests/unit/widget/widget.html b/tests/unit/widget/widget.html
index 674d30486..a2861494b 100644
--- a/tests/unit/widget/widget.html
+++ b/tests/unit/widget/widget.html
@@ -7,8 +7,8 @@
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
- <link type="text/css" href="../testsuite.css" rel="stylesheet" />
- <script type="text/javascript" src="../../../external/testrunner-r6588.js"></script>
+ <link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
+ <script type="text/javascript" src="../../../external/qunit.js"></script>
<script type="text/javascript" src="../../jquery.simulate.js"></script>
<script type="text/javascript" src="../testsuite.js"></script>
@@ -16,7 +16,13 @@
</head>
<body>
-<div id="main">
+<h1 id="qunit-header">jQuery UI Widget Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
</div>
diff --git a/tests/visual/index.html b/tests/visual/index.html
index 304a7ee2f..ec19b53f0 100644
--- a/tests/visual/index.html
+++ b/tests/visual/index.html
@@ -1,7 +1,7 @@
<!doctype html>
<html lang="en">
<head>
- <title>Visual Tests</title>
+ <title>jQuery UI Visual Tests</title>
<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css" type="text/css" />
<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
<script type="text/javascript">
@@ -12,6 +12,8 @@
</head>
<body>
+
+<h1>jQuery UI Visual Tests</h1>
<h2>Interactions</h2>
<ul>
@@ -25,6 +27,7 @@
<h2>Widgets</h2>
<ul>
<li><a href="accordion/default.html">Accordion</a></li>
+ <li><a href="autocomplete/default.html">Autocomplete</a></li>
<li><a href="button/default.html">Button</a></li>
<li><a href="datepicker/default.html">Datepicker</a></li>
<li><a href="dialog/default.html">Dialog</a></li>