()
| 556 | }); |
| 557 | |
| 558 | function done() { |
| 559 | if ( config.doneTimer && window.clearTimeout ) { |
| 560 | window.clearTimeout( config.doneTimer ); |
| 561 | config.doneTimer = null; |
| 562 | } |
| 563 | |
| 564 | if ( config.queue.length ) { |
| 565 | config.doneTimer = window.setTimeout(function(){ |
| 566 | if ( !config.queue.length ) { |
| 567 | done(); |
| 568 | } else { |
| 569 | synchronize( done ); |
| 570 | } |
| 571 | }, 13); |
| 572 | |
| 573 | return; |
| 574 | } |
| 575 | |
| 576 | config.autorun = true; |
| 577 | |
| 578 | // Log the last module results |
| 579 | if ( config.currentModule ) { |
| 580 | QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all ); |
| 581 | } |
| 582 | |
| 583 | var banner = id("qunit-banner"), |
| 584 | tests = id("qunit-tests"), |
| 585 | html = ['Tests completed in ', |
| 586 | +new Date - config.started, ' milliseconds.<br/>', |
| 587 | '<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(''); |
| 588 | |
| 589 | if ( banner ) { |
| 590 | banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass"); |
| 591 | } |
| 592 | |
| 593 | if ( tests ) { |
| 594 | var result = id("qunit-testresult"); |
| 595 | |
| 596 | if ( !result ) { |
| 597 | result = document.createElement("p"); |
| 598 | result.id = "qunit-testresult"; |
| 599 | result.className = "result"; |
| 600 | tests.parentNode.insertBefore( result, tests.nextSibling ); |
| 601 | } |
| 602 | |
| 603 | result.innerHTML = html; |
| 604 | } |
| 605 | |
| 606 | QUnit.done( config.stats.bad, config.stats.all ); |
| 607 | } |
| 608 | |
| 609 | function validTest( name ) { |
| 610 | var i = config.filters.length, |
no test coverage detected