| 699 | }); |
| 700 | |
| 701 | function done() { |
| 702 | config.autorun = true; |
| 703 | |
| 704 | // Log the last module results |
| 705 | if ( config.currentModule ) { |
| 706 | QUnit.moduleDone( { |
| 707 | name: config.currentModule, |
| 708 | failed: config.moduleStats.bad, |
| 709 | passed: config.moduleStats.all - config.moduleStats.bad, |
| 710 | total: config.moduleStats.all |
| 711 | } ); |
| 712 | } |
| 713 | |
| 714 | var banner = id("qunit-banner"), |
| 715 | tests = id("qunit-tests"), |
| 716 | runtime = +new Date - config.started, |
| 717 | passed = config.stats.all - config.stats.bad, |
| 718 | html = [ |
| 719 | 'Tests completed in ', |
| 720 | runtime, |
| 721 | ' milliseconds.<br/>', |
| 722 | '<span class="passed">', |
| 723 | passed, |
| 724 | '</span> tests of <span class="total">', |
| 725 | config.stats.all, |
| 726 | '</span> passed, <span class="failed">', |
| 727 | config.stats.bad, |
| 728 | '</span> failed.' |
| 729 | ].join(''); |
| 730 | |
| 731 | if ( banner ) { |
| 732 | banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass"); |
| 733 | } |
| 734 | |
| 735 | if ( tests ) { |
| 736 | var result = id("qunit-testresult"); |
| 737 | |
| 738 | if ( !result ) { |
| 739 | result = document.createElement("p"); |
| 740 | result.id = "qunit-testresult"; |
| 741 | result.className = "result"; |
| 742 | tests.parentNode.insertBefore( result, tests.nextSibling ); |
| 743 | } |
| 744 | |
| 745 | result.innerHTML = html; |
| 746 | } |
| 747 | |
| 748 | QUnit.done( { |
| 749 | failed: config.stats.bad, |
| 750 | passed: passed, |
| 751 | total: config.stats.all, |
| 752 | runtime: runtime |
| 753 | } ); |
| 754 | } |
| 755 | |
| 756 | function validTest( name ) { |
| 757 | var i = config.filters.length, |