]> source.dussan.org Git - jquery-ui.git/commitdiff
Tests: Created a composite test suite.
authorScott González <scott.gonzalez@gmail.com>
Tue, 26 Jul 2011 16:15:02 +0000 (12:15 -0400)
committerScott González <scott.gonzalez@gmail.com>
Tue, 26 Jul 2011 16:15:02 +0000 (12:15 -0400)
tests/unit/all.html [new file with mode: 0644]
tests/unit/testsuites.js [new file with mode: 0644]

diff --git a/tests/unit/all.html b/tests/unit/all.html
new file mode 100644 (file)
index 0000000..a36c9e0
--- /dev/null
@@ -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 (file)
index 0000000..ffe2d3c
--- /dev/null
@@ -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 ) );