aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2011-07-26 12:15:02 -0400
committerScott González <scott.gonzalez@gmail.com>2011-07-26 12:15:02 -0400
commit02903259e1f6afee1b13d6431900610c70fb03b1 (patch)
treec93d113775d9742ff442440fa79a904257e25541 /tests
parentf89091105facf5760644565925a7578bd2232ded (diff)
downloadjquery-ui-02903259e1f6afee1b13d6431900610c70fb03b1.tar.gz
jquery-ui-02903259e1f6afee1b13d6431900610c70fb03b1.zip
Tests: Created a composite test suite.
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/all.html51
-rw-r--r--tests/unit/testsuites.js76
2 files changed, 127 insertions, 0 deletions
diff --git a/tests/unit/all.html b/tests/unit/all.html
new file mode 100644
index 000000000..a36c9e004
--- /dev/null
+++ b/tests/unit/all.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Test Suite</title>
+
+ <script src="../../jquery-1.6.2.js"></script>
+
+ <link rel="stylesheet" href="../../external/qunit.css">
+ <script src="../../external/qunit.js"></script>
+ <script src="testsuites.js"></script>
+
+ <script>
+ QUnit.testSuites([
+ "accordion/accordion.html",
+ "accordion/accordion_deprecated.html",
+ "autocomplete/autocomplete.html",
+ "button/button.html",
+ "core/core.html",
+ "datepicker/datepicker.html",
+ "dialog/dialog.html",
+ //"draggable/draggable.html",
+ //"droppable/droppable.html",
+ "effects/effects.html",
+ "menu/menu.html",
+ "position/position.html",
+ "progressbar/progressbar.html",
+ //"resizable/resizable.html",
+ //"selectable/selectable.html",
+ "slider/slider.html",
+ //"sortable/sortable.html",
+ "spinner/spinner.html",
+ "tabs/tabs.html",
+ "tabs/tabs_deprecated.html",
+ "tooltip/tooltip.html",
+ "widget/widget.html"
+ ]);
+ </script>
+</head>
+<body>
+
+<h1 id="qunit-header">jQuery UI Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<div id="qunit-testrunner-toolbar"></div>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests"></ol>
+<div id="qunit-fixture">
+
+</div>
+</body>
+</html>
diff --git a/tests/unit/testsuites.js b/tests/unit/testsuites.js
new file mode 100644
index 000000000..ffe2d3cc0
--- /dev/null
+++ b/tests/unit/testsuites.js
@@ -0,0 +1,76 @@
+(function( $, QUnit ) {
+
+$.extend( QUnit, {
+ testSuites: function( suites ) {
+ $.each( suites, function( i, suite ) {
+ asyncTest( suite, function() {
+ runSuite( suite );
+ });
+ });
+ },
+
+ testStart: function( data ) {
+ // update the test status to show which test suite is running
+ $( "#qunit-testresult" ).html( "Running " + data.name + "...<br>&nbsp;" );
+ },
+
+ testDone: function() {
+ // undo the auto-expansion of failed tests
+ $( "#qunit-tests > li.fail" ).each(function() {
+ var test = $( this );
+ // avoid collapsing test results that the user manually opened
+ if ( test.data( "auto-collapsed" ) ) {
+ return;
+ }
+ test.data( "auto-collapsed", true )
+ .children( "ol" ).hide();
+ });
+ }
+});
+
+// generate an iframe to run the test suite and proxy the iframe's QUnit
+// to pass all test info to the main page
+function runSuite( suite ) {
+ var body = $( "body" ),
+ iframe = $( "<iframe>", { src: suite } )
+ .css({
+ width: 1000,
+ height: 1000
+ })
+ .appendTo( body )
+ [0],
+ iframeWin = iframe.contentWindow;
+
+ $( iframeWin ).bind( "load", function() {
+ var module, test,
+ count = 0;
+
+ $.extend( iframeWin.QUnit, {
+ moduleStart: function( data ) {
+ // capture module name for messages
+ module = data.name;
+ },
+
+ testStart: function( data ) {
+ // capture test name for messages
+ test = data.name;
+ },
+
+ log: function( data ) {
+ // pass all test details through to the main page
+ var message = module + ": " + test + ": " + data.message;
+ expect( ++count );
+ QUnit.push( data.result, data.actual, data.expected, message );
+ },
+
+ done: function() {
+ // hide the iframe from the main page once the tests are done
+ // and start the wrapper test from the main page
+ $( iframe ).hide();
+ start();
+ }
+ });
+ });
+}
+
+}( jQuery, QUnit ) );