mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-08-16 23:00:21 +00:00
Add Unit Tests for i18n and wptexturize(). Don't confuse closing single quotes and apostrophes.
See #27426. git-svn-id: https://develop.svn.wordpress.org/trunk@28762 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -189,7 +189,7 @@ class Tests_Formatting_WPTexturize extends WP_UnitTestCase {
|
||||
function test_spaces_around_hyphens() {
|
||||
$nbsp = "\xC2\xA0";
|
||||
|
||||
$this->assertEquals( ' – ', wptexturize( ' - ' ) );
|
||||
$this->assertEquals( ' – ', wptexturize( ' - ' ) );
|
||||
$this->assertEquals( ' – ', wptexturize( ' - ' ) );
|
||||
$this->assertEquals( ' – ', wptexturize( ' - ' ) );
|
||||
$this->assertEquals( ' – ', wptexturize( ' - ') );
|
||||
@@ -197,7 +197,7 @@ class Tests_Formatting_WPTexturize extends WP_UnitTestCase {
|
||||
$this->assertEquals( " –$nbsp", wptexturize( " -$nbsp" ) );
|
||||
$this->assertEquals( "$nbsp– ", wptexturize( "$nbsp- ") );
|
||||
|
||||
$this->assertEquals( ' — ', wptexturize( ' -- ' ) );
|
||||
$this->assertEquals( ' — ', wptexturize( ' -- ' ) );
|
||||
$this->assertEquals( ' — ', wptexturize( ' -- ' ) );
|
||||
$this->assertEquals( ' — ', wptexturize( ' -- ' ) );
|
||||
$this->assertEquals( ' — ', wptexturize( ' -- ') );
|
||||
@@ -723,6 +723,10 @@ class Tests_Formatting_WPTexturize extends WP_UnitTestCase {
|
||||
"word word'.word",
|
||||
"word word’.word",
|
||||
),
|
||||
array(
|
||||
"word word', she said",
|
||||
"word word’, she said",
|
||||
),
|
||||
array(
|
||||
"word word'",
|
||||
"word word’",
|
||||
@@ -1362,4 +1366,223 @@ class Tests_Formatting_WPTexturize extends WP_UnitTestCase {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Make sure translation actually works.
|
||||
*
|
||||
* Also make sure apostrophes and closing quotes aren't being confused by default.
|
||||
*
|
||||
* @ticket 27426
|
||||
* @dataProvider data_tag_avoidance
|
||||
*/
|
||||
function test_translate( $input, $output ) {
|
||||
add_filter( 'gettext_with_context', array( $this, 'filter_translate' ), 10, 4 );
|
||||
|
||||
$result = wptexturize( $input, true );
|
||||
|
||||
remove_filter( 'gettext_with_context', array( $this, 'filter_translate' ), 10, 4 );
|
||||
wptexturize( 'reset', true );
|
||||
|
||||
return $this->assertEquals( $output, $result );
|
||||
}
|
||||
|
||||
function filter_translate( $translations, $text, $context, $domain ) {
|
||||
switch ($text) {
|
||||
case '–' : return '!endash!';
|
||||
case '—' : return '!emdash!';
|
||||
case '‘' : return '!openq1!';
|
||||
case '’' :
|
||||
if ( 'apostrophe' == $context ) {
|
||||
return '!apos!';
|
||||
} else {
|
||||
return '!closeq1!';
|
||||
}
|
||||
case '“' : return '!openq2!';
|
||||
case '”' : return '!closeq2!';
|
||||
case '′' : return '!prime1!';
|
||||
case '″' : return '!prime2!';
|
||||
default : return $translations;
|
||||
}
|
||||
}
|
||||
|
||||
function data_translate() {
|
||||
return array(
|
||||
array(
|
||||
"word '99 word",
|
||||
"word !apos!99 word",
|
||||
),
|
||||
array(
|
||||
"word'99 word",
|
||||
"word!apos!99 word",
|
||||
),
|
||||
array(
|
||||
"word 'test sentence' word",
|
||||
"word !openq1!test sentence!closeq1! word",
|
||||
),
|
||||
array(
|
||||
"'test sentence'",
|
||||
"!openq1!test sentence!closeq1!",
|
||||
),
|
||||
array(
|
||||
'word "test sentence" word',
|
||||
'word !openq2!test sentence!closeq2! word',
|
||||
),
|
||||
array(
|
||||
'"test sentence"',
|
||||
'!openq2!test sentence!closeq2!',
|
||||
),
|
||||
array(
|
||||
"word 'word word",
|
||||
"word !openq1!word word",
|
||||
),
|
||||
array(
|
||||
"word ('word word",
|
||||
"word (!openq1!word word",
|
||||
),
|
||||
array(
|
||||
"word ['word word",
|
||||
"word [!openq1!word word",
|
||||
),
|
||||
array(
|
||||
'word 99" word',
|
||||
'word 99!prime2! word',
|
||||
),
|
||||
array(
|
||||
'word 99"word',
|
||||
'word 99!prime2!word',
|
||||
),
|
||||
array(
|
||||
'word99" word',
|
||||
'word99!prime2! word',
|
||||
),
|
||||
array(
|
||||
'word99"word',
|
||||
'word99!prime2!word',
|
||||
),
|
||||
array(
|
||||
"word 99' word",
|
||||
"word 99!prime1! word",
|
||||
),
|
||||
array(
|
||||
"word99' word",
|
||||
"word99!prime1! word",
|
||||
),
|
||||
array(
|
||||
"word word's word",
|
||||
"word word!apos!s word",
|
||||
),
|
||||
array(
|
||||
"word word'. word",
|
||||
"word word!closeq1!. word",
|
||||
),
|
||||
array(
|
||||
"word ]'. word",
|
||||
"word ]!closeq1!. word",
|
||||
),
|
||||
array(
|
||||
'word "word word',
|
||||
'word !openq2!word word',
|
||||
),
|
||||
array(
|
||||
'word ("word word',
|
||||
'word (!openq2!word word',
|
||||
),
|
||||
array(
|
||||
'word ["word word',
|
||||
'word [!openq2!word word',
|
||||
),
|
||||
array(
|
||||
'word word" word',
|
||||
'word word!closeq2! word',
|
||||
),
|
||||
array(
|
||||
'word word") word',
|
||||
'word word!closeq2!) word',
|
||||
),
|
||||
array(
|
||||
'word word"] word',
|
||||
'word word!closeq2!] word',
|
||||
),
|
||||
array(
|
||||
'word word"',
|
||||
'word word!closeq2!',
|
||||
),
|
||||
array(
|
||||
'word word"word',
|
||||
'word word!closeq2!word',
|
||||
),
|
||||
array(
|
||||
'test sentence".',
|
||||
'test sentence!closeq2!.',
|
||||
),
|
||||
array(
|
||||
'test sentence."',
|
||||
'test sentence.!closeq2!',
|
||||
),
|
||||
array(
|
||||
'test sentence." word',
|
||||
'test sentence.!closeq2! word',
|
||||
),
|
||||
array(
|
||||
"word word' word",
|
||||
"word word!closeq1! word",
|
||||
),
|
||||
array(
|
||||
"word word'. word",
|
||||
"word word!closeq1!. word",
|
||||
),
|
||||
array(
|
||||
"word word'.word",
|
||||
"word word!closeq1!.word",
|
||||
),
|
||||
array(
|
||||
"word word'",
|
||||
"word word!closeq1!",
|
||||
),
|
||||
array(
|
||||
"test sentence'.",
|
||||
"test sentence!closeq1!.",
|
||||
),
|
||||
array(
|
||||
"test sentence.'",
|
||||
"test sentence.!closeq1!",
|
||||
),
|
||||
array(
|
||||
"test sentence'. word",
|
||||
"test sentence!closeq1!. word",
|
||||
),
|
||||
array(
|
||||
"test sentence.' word",
|
||||
"test sentence.!closeq1! word",
|
||||
),
|
||||
array(
|
||||
"word 'tain't word",
|
||||
"word !apos!tain!apos!t word",
|
||||
),
|
||||
array(
|
||||
"word 'twere word",
|
||||
"word !apos!twere word",
|
||||
),
|
||||
array(
|
||||
'word "42.00" word',
|
||||
'word !openq2!42.00!closeq2! word',
|
||||
),
|
||||
array(
|
||||
"word '42.00' word",
|
||||
"word !openq1!42.00!closeq1! word",
|
||||
),
|
||||
array(
|
||||
"word word'. word",
|
||||
"word word!closeq1!. word",
|
||||
),
|
||||
array(
|
||||
"word word'.word",
|
||||
"word word!closeq1!.word",
|
||||
),
|
||||
array(
|
||||
"word word', she said",
|
||||
"word word!closeq1!, she said",
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user