imported the whole jquery-ui package, refreshed with 1.10.2
[unfold.git] / third-party / jquery-ui-1.10.2 / tests / unit / qunit-composite.js
diff --git a/third-party/jquery-ui-1.10.2/tests/unit/qunit-composite.js b/third-party/jquery-ui-1.10.2/tests/unit/qunit-composite.js
new file mode 100644 (file)
index 0000000..2e54540
--- /dev/null
@@ -0,0 +1,112 @@
+(function( QUnit ) {
+
+QUnit.extend( QUnit, {
+       testSuites: function( suites ) {
+               QUnit.begin(function() {
+                       QUnit.initIframe();
+               });
+
+               for ( var i = 0; i < suites.length; i++ ) {
+                       QUnit.runSuite( suites[i] );
+               }
+
+               QUnit.done(function() {
+                       this.iframe.style.display = "none";
+               });
+       },
+
+       runSuite: function( suite ) {
+               var path = suite;
+
+               if ( QUnit.is( "object", suite ) ) {
+                       path = suite.path;
+                       suite = suite.name;
+               }
+
+               asyncTest( suite, function() {
+                       QUnit.iframe.setAttribute( "src", path );
+               });
+       },
+
+       initIframe: function() {
+               var body = document.body,
+                       iframe = this.iframe = document.createElement( "iframe" ),
+                       iframeWin;
+
+               iframe.className = "qunit-subsuite";
+               body.appendChild( iframe );
+
+               function onIframeLoad() {
+                       var module, test,
+                               count = 0;
+
+                       if (iframe.src === "") {
+                               return;
+                       }
+
+                       iframeWin.QUnit.moduleStart(function( data ) {
+                               // capture module name for messages
+                               module = data.name;
+                       });
+
+                       iframeWin.QUnit.testStart(function( data ) {
+                               // capture test name for messages
+                               test = data.name;
+                       });
+                       iframeWin.QUnit.testDone(function() {
+                               test = null;
+                       });
+
+                       iframeWin.QUnit.log(function( data ) {
+                               if (test === null) {
+                                       return;
+                               }
+                               // 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 );
+                       });
+
+                       iframeWin.QUnit.done(function() {
+                               // start the wrapper test from the main page
+                               start();
+                       });
+               }
+               QUnit.addEvent( iframe, "load", onIframeLoad );
+
+               iframeWin = iframe.contentWindow;
+       }
+});
+
+QUnit.testStart(function( data ) {
+       // update the test status to show which test suite is running
+       QUnit.id( "qunit-testresult" ).innerHTML = "Running " + data.name + "...<br>&nbsp;";
+});
+
+QUnit.testDone(function() {
+       var i,
+               current = QUnit.id( this.config.current.id ),
+               children = current.children,
+               src = this.iframe.src;
+
+       // undo the auto-expansion of failed tests
+       for ( i = 0; i < children.length; i++ ) {
+               if ( children[i].nodeName === "OL" ) {
+                       children[i].style.display = "none";
+               }
+       }
+
+       QUnit.addEvent(current, "dblclick", function( e ) {
+               var target = e && e.target ? e.target : window.event.srcElement;
+               if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
+                       target = target.parentNode;
+               }
+               if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
+                       window.location = src;
+               }
+       });
+
+       current.getElementsByTagName("a")[0].href = src;
+});
+
+}( QUnit ) );