diff options
author | Brion Vibber <brion@users.mediawiki.org> | 2011-08-16 19:34:47 +0000 |
---|---|---|
committer | Brion Vibber <brion@users.mediawiki.org> | 2011-08-16 19:34:47 +0000 |
commit | ff1bb7f22182f42570e7716e05a3f8c8391ae404 (patch) | |
tree | baca35391fd6d28e624721791628384af2356dd3 | |
parent | 4948e5671996f2c12ce84d4613b50fa8a239182b (diff) | |
download | mediawikicore-ff1bb7f22182f42570e7716e05a3f8c8391ae404.tar.gz mediawikicore-ff1bb7f22182f42570e7716e05a3f8c8391ae404.zip |
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!
Notes
Notes:
http://mediawiki.org/wiki/Special:Code/MediaWiki/94681
-rw-r--r-- | tests/qunit/suites/resources/jquery/jquery.highlightText.test.js | 54 |
1 files changed, 28 insertions, 26 deletions
diff --git a/tests/qunit/suites/resources/jquery/jquery.highlightText.test.js b/tests/qunit/suites/resources/jquery/jquery.highlightText.test.js index ba8b763cdffe..6eacad0f148e 100644 --- a/tests/qunit/suites/resources/jquery/jquery.highlightText.test.js +++ b/tests/qunit/suites/resources/jquery/jquery.highlightText.test.js @@ -6,32 +6,34 @@ test( '-- Initial check', function() { } ); 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 + ); + } ); } ); |