http://www.mediawiki.org/wiki/Special:Code/MediaWiki/94681
Revision: 94681 Author: brion Date: 2011-08-16 19:34:47 +0000 (Tue, 16 Aug 2011) Log Message: ----------- Followup r94609: fix jquery.highlightText test cases on IE, simplify test case setup so new ones can be added more trivially, uncommented the failing test case. These tests were failing on IE 6, 7, and 8 because the innerHTML rendering of the highlighted text came out in caps and without quotes, such that the string didn't match the provided one. By re-normalizing the expected HTML form this check now works on those browsers. Switching common code to a loop and an array makes it easier to add new test cases: less duplication of code, and no need to manually update the number of test cases. Note that the third test case was previously commented out, but looks like a serious regression. No longer commented out, so this will fail! Modified Paths: -------------- trunk/phase3/tests/qunit/suites/resources/jquery/jquery.highlightText.test.js Modified: trunk/phase3/tests/qunit/suites/resources/jquery/jquery.highlightText.test.js =================================================================== --- trunk/phase3/tests/qunit/suites/resources/jquery/jquery.highlightText.test.js 2011-08-16 19:29:52 UTC (rev 94680) +++ trunk/phase3/tests/qunit/suites/resources/jquery/jquery.highlightText.test.js 2011-08-16 19:34:47 UTC (rev 94681) @@ -6,32 +6,34 @@ } ); test( 'Check', function() { - expect(2); + var cases = [ + { + text: 'Blue Öyster Cult', + highlight: 'Blue', + expected: '<span class="highlight">Blue</span> Öyster Cult' + }, + { + text: 'Österreich', + highlight: 'Österreich', + expected: '<span class="highlight">Österreich</span>' + }, + { + desc: 'Highlighter broken on punctuation mark', + text: 'So good. To be there', + highlight: 'good', + expected: 'So <span class="highlight">good</span>. To be there' + } + ]; + expect(cases.length); var $fixture; - $fixture = $( '<p>Blue Öyster Cult</p>' ); - $fixture.highlightText( 'Blue' ); - equal( - '<span class="highlight">Blue</span> Öyster Cult', - $fixture.html() - ); - - $fixture = $( '<p>Österreich</p>' ); - $fixture.highlightText( 'Österreich' ); - equal( - '<span class="highlight">Österreich</span>', - $fixture.html() - ); - - /** - * Highlighter broken on punctuation mark. - */ - /** dont forget to update the value in expect() at the top! - $fixture = $( '<p>So good. To be there</p>' ); - $fixture.highlightText( 'good' ); - equal( - 'So <span class="highlight">good</span>. To be there', - $fixture.html() - ); - */ + $.each(cases, function( i, item ) { + $fixture = $( '<p></p>' ).text( item.text ); + $fixture.highlightText( item.highlight ); + equals( + $fixture.html(), + $('<p>' + item.expected + '</p>').html(), // re-parse to normalize! + item.desc || undefined + ); + } ); } ); _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs