123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- <?php
- /**
- * @group formatting
- */
- class Tests_Formatting_WPTexturize extends WP_UnitTestCase {
- function test_dashes() {
- $this->assertEquals('Hey — boo?', wptexturize('Hey -- boo?'));
- $this->assertEquals('<a href="http://xx--xx">Hey — boo?</a>', wptexturize('<a href="http://xx--xx">Hey -- boo?</a>'));
- }
- function test_disable() {
- $this->assertEquals('<pre>---</pre>', wptexturize('<pre>---</pre>'));
- $this->assertEquals('[a]a–b[code]---[/code]a–b[/a]', wptexturize('[a]a--b[code]---[/code]a--b[/a]'));
- $this->assertEquals('<pre><code></code>--</pre>', wptexturize('<pre><code></code>--</pre>'));
- $this->assertEquals('<code>---</code>', wptexturize('<code>---</code>'));
- $this->assertEquals('<code>href="baba"</code> “baba”', wptexturize('<code>href="baba"</code> "baba"'));
- $enabled_tags_inside_code = '<code>curl -s <a href="http://x/">baba</a> | grep sfive | cut -d "\"" -f 10 > topmp3.txt</code>';
- $this->assertEquals($enabled_tags_inside_code, wptexturize($enabled_tags_inside_code));
- $double_nest = '<pre>"baba"<code>"baba"<pre></pre></code>"baba"</pre>';
- $this->assertEquals($double_nest, wptexturize($double_nest));
- $invalid_nest = '<pre></code>"baba"</pre>';
- $this->assertEquals($invalid_nest, wptexturize($invalid_nest));
- }
- //WP Ticket #1418
- function test_bracketed_quotes_1418() {
- $this->assertEquals('(“test”)', wptexturize('("test")'));
- $this->assertEquals('(‘test’)', wptexturize("('test')"));
- $this->assertEquals('(’twas)', wptexturize("('twas)"));
- }
- //WP Ticket #3810
- function test_bracketed_quotes_3810() {
- $this->assertEquals('A dog (“Hubertus”) was sent out.', wptexturize('A dog ("Hubertus") was sent out.'));
- }
- //WP Ticket #4539
- function test_basic_quotes() {
- $this->assertEquals('test’s', wptexturize('test\'s'));
- $this->assertEquals('test’s', wptexturize('test\'s'));
- $this->assertEquals('‘quoted’', wptexturize('\'quoted\''));
- $this->assertEquals('“quoted”', wptexturize('"quoted"'));
- $this->assertEquals('space before ‘quoted’ space after', wptexturize('space before \'quoted\' space after'));
- $this->assertEquals('space before “quoted” space after', wptexturize('space before "quoted" space after'));
- $this->assertEquals('(‘quoted’)', wptexturize('(\'quoted\')'));
- $this->assertEquals('{“quoted”}', wptexturize('{"quoted"}'));
- $this->assertEquals('‘qu(ot)ed’', wptexturize('\'qu(ot)ed\''));
- $this->assertEquals('“qu{ot}ed”', wptexturize('"qu{ot}ed"'));
- $this->assertEquals(' ‘test’s quoted’ ', wptexturize(' \'test\'s quoted\' '));
- $this->assertEquals(' “test’s quoted” ', wptexturize(' "test\'s quoted" '));
- }
- /**
- * @ticket 4539
- * @ticket 15241
- */
- function test_full_sentences_with_unmatched_single_quotes() {
- $this->assertEquals(
- 'That means every moment you’re working on something without it being in the public it’s actually dying.',
- wptexturize("That means every moment you're working on something without it being in the public it's actually dying.")
- );
- }
- /**
- * @ticket 4539
- */
- function test_quotes() {
- $this->assertEquals('“Quoted String”', wptexturize('"Quoted String"'));
- $this->assertEquals('Here is “<a href="http://example.com">a test with a link</a>”', wptexturize('Here is "<a href="http://example.com">a test with a link</a>"'));
- $this->assertEquals('Here is “<a href="http://example.com">a test with a link and a period</a>”.', wptexturize('Here is "<a href="http://example.com">a test with a link and a period</a>".'));
- $this->assertEquals('Here is “<a href="http://example.com">a test with a link</a>” and a space.', wptexturize('Here is "<a href="http://example.com">a test with a link</a>" and a space.'));
- $this->assertEquals('Here is “<a href="http://example.com">a test with a link</a> and some text quoted”', wptexturize('Here is "<a href="http://example.com">a test with a link</a> and some text quoted"'));
- $this->assertEquals('Here is “<a href="http://example.com">a test with a link</a>”, and a comma.', wptexturize('Here is "<a href="http://example.com">a test with a link</a>", and a comma.'));
- $this->assertEquals('Here is “<a href="http://example.com">a test with a link</a>”; and a semi-colon.', wptexturize('Here is "<a href="http://example.com">a test with a link</a>"; and a semi-colon.'));
- $this->assertEquals('Here is “<a href="http://example.com">a test with a link</a>”- and a dash.', wptexturize('Here is "<a href="http://example.com">a test with a link</a>"- and a dash.'));
- $this->assertEquals('Here is “<a href="http://example.com">a test with a link</a>”… and ellipses.', wptexturize('Here is "<a href="http://example.com">a test with a link</a>"... and ellipses.'));
- $this->assertEquals('Here is “a test <a href="http://example.com">with a link</a>”.', wptexturize('Here is "a test <a href="http://example.com">with a link</a>".'));
- $this->assertEquals('Here is “<a href="http://example.com">a test with a link</a>”and a work stuck to the end.', wptexturize('Here is "<a href="http://example.com">a test with a link</a>"and a work stuck to the end.'));
- $this->assertEquals('A test with a finishing number, “like 23”.', wptexturize('A test with a finishing number, "like 23".'));
- $this->assertEquals('A test with a number, “like 62”, is nice to have.', wptexturize('A test with a number, "like 62", is nice to have.'));
- }
- /**
- * @ticket 4539
- */
- function test_quotes_before_s() {
- $this->assertEquals('test’s', wptexturize("test's"));
- $this->assertEquals('‘test’s', wptexturize("'test's"));
- $this->assertEquals('‘test’s’', wptexturize("'test's'"));
- $this->assertEquals('‘string’', wptexturize("'string'"));
- $this->assertEquals('‘string’s’', wptexturize("'string's'"));
- }
- /**
- * @ticket 4539
- */
- function test_quotes_before_numbers() {
- $this->assertEquals('Class of ’99', wptexturize("Class of '99"));
- $this->assertEquals('Class of ’99’s', wptexturize("Class of '99's"));
- $this->assertEquals('‘Class of ’99’', wptexturize("'Class of '99'"));
- $this->assertEquals('‘Class of ’99’s’', wptexturize("'Class of '99's'"));
- $this->assertEquals('‘Class of ’99’s’', wptexturize("'Class of '99’s'"));
- $this->assertEquals('“Class of 99”', wptexturize("\"Class of 99\""));
- $this->assertEquals('“Class of ’99”', wptexturize("\"Class of '99\""));
- }
- function test_quotes_after_numbers() {
- $this->assertEquals('Class of ’99', wptexturize("Class of '99"));
- }
- /**
- * @ticket 4539
- * @ticket 15241
- */
- function test_other_html() {
- $this->assertEquals('‘<strong>', wptexturize("'<strong>"));
- $this->assertEquals('‘<strong>Quoted Text</strong>’,', wptexturize("'<strong>Quoted Text</strong>',"));
- $this->assertEquals('“<strong>Quoted Text</strong>”,', wptexturize('"<strong>Quoted Text</strong>",'));
- }
- function test_x() {
- $this->assertEquals('14×24', wptexturize("14x24"));
- }
- function test_minutes_seconds() {
- $this->assertEquals('9′', wptexturize('9\''));
- $this->assertEquals('9″', wptexturize("9\""));
- $this->assertEquals('a 9′ b', wptexturize('a 9\' b'));
- $this->assertEquals('a 9″ b', wptexturize("a 9\" b"));
- $this->assertEquals('“a 9′ b”', wptexturize('"a 9\' b"'));
- $this->assertEquals('‘a 9″ b’', wptexturize("'a 9\" b'"));
- }
- /**
- * @ticket 8775
- */
- function test_wptexturize_quotes_around_numbers() {
- $this->assertEquals('“12345”', wptexturize('"12345"'));
- $this->assertEquals('‘12345’', wptexturize('\'12345\''));
- $this->assertEquals('“a 9′ plus a ‘9’, maybe a 9′ ‘9’ ”', wptexturize('"a 9\' plus a \'9\', maybe a 9\' \'9\' "'));
- $this->assertEquals('<p>‘99<br />‘123’<br />’tis<br />‘s’</p>', wptexturize('<p>\'99<br />\'123\'<br />\'tis<br />\'s\'</p>'));
- }
- /**
- * @ticket 8912
- */
- function test_wptexturize_html_comments() {
- $this->assertEquals('<!--[if !IE]>--><!--<![endif]-->', wptexturize('<!--[if !IE]>--><!--<![endif]-->'));
- $this->assertEquals('<!--[if !IE]>"a 9\' plus a \'9\', maybe a 9\' \'9\' "<![endif]-->', wptexturize('<!--[if !IE]>"a 9\' plus a \'9\', maybe a 9\' \'9\' "<![endif]-->'));
- $this->assertEquals('<ul><li>Hello.</li><!--<li>Goodbye.</li>--></ul>', wptexturize('<ul><li>Hello.</li><!--<li>Goodbye.</li>--></ul>'));
- }
- /**
- * @ticket 4539
- * @ticket 15241
- */
- function test_entity_quote_cuddling() {
- $this->assertEquals(' “Testing”', wptexturize(' "Testing"'));
- $this->assertEquals('&“Testing”', wptexturize('&"Testing"'));
- }
- /**
- * @ticket 22823
- */
- function test_apostrophes_before_primes() {
- $this->assertEquals( 'WordPress 3.5’s release date', wptexturize( "WordPress 3.5's release date" ) );
- }
- /**
- * @ticket 23185
- */
- function test_spaces_around_hyphens() {
- $this->assertEquals( ' – ', wptexturize( ' - ' ) );
- $this->assertEquals( ' – ', wptexturize( ' - ' ) );
- $this->assertEquals( ' – ', wptexturize( ' - ' ) );
- $this->assertEquals( ' – ', wptexturize( ' - ') );
- $this->assertEquals( ' — ', wptexturize( ' -- ' ) );
- $this->assertEquals( ' — ', wptexturize( ' -- ' ) );
- $this->assertEquals( ' — ', wptexturize( ' -- ' ) );
- $this->assertEquals( ' — ', wptexturize( ' -- ') );
- }
- }
|