aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrion Vibber <brion@users.mediawiki.org>2011-08-16 19:34:47 +0000
committerBrion Vibber <brion@users.mediawiki.org>2011-08-16 19:34:47 +0000
commitff1bb7f22182f42570e7716e05a3f8c8391ae404 (patch)
treebaca35391fd6d28e624721791628384af2356dd3
parent4948e5671996f2c12ce84d4613b50fa8a239182b (diff)
downloadmediawikicore-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.js54
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
+ );
+ } );
} );