Make WordPress Core


Ignore:
Timestamp:
11/30/2017 11:09:33 PM (8 years ago)
Author:
pento
Message:

Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/formatting/WPTexturize.php

    r36578 r42343  
    66class Tests_Formatting_WPTexturize extends WP_UnitTestCase {
    77    function test_dashes() {
    8         $this->assertEquals('Hey — boo?', wptexturize('Hey -- boo?'));
    9         $this->assertEquals('<a href="http://xx--xx">Hey &#8212; boo?</a>', wptexturize('<a href="http://xx--xx">Hey -- boo?</a>'));
     8        $this->assertEquals( 'Hey &#8212; boo?', wptexturize( 'Hey -- boo?' ) );
     9        $this->assertEquals( '<a href="http://xx--xx">Hey &#8212; boo?</a>', wptexturize( '<a href="http://xx--xx">Hey -- boo?</a>' ) );
    1010    }
    1111
    1212    function test_disable() {
    13         $this->assertEquals('<pre>---&</pre>', wptexturize('<pre>---&</pre>'));
    14         $this->assertEquals('<pre><code></code>--&</pre>', wptexturize('<pre><code></code>--&</pre>'));
    15 
    16         $this->assertEquals( '<code>---&</code>',     wptexturize( '<code>---&</code>'    ) );
    17         $this->assertEquals( '<kbd>---&</kbd>',       wptexturize( '<kbd>---&</kbd>'      ) );
    18         $this->assertEquals( '<style>---&</style>',   wptexturize( '<style>---&</style>'  ) );
     13        $this->assertEquals( '<pre>---&</pre>', wptexturize( '<pre>---&</pre>' ) );
     14        $this->assertEquals( '<pre><code></code>--&</pre>', wptexturize( '<pre><code></code>--&</pre>' ) );
     15
     16        $this->assertEquals( '<code>---&</code>', wptexturize( '<code>---&</code>' ) );
     17        $this->assertEquals( '<kbd>---&</kbd>', wptexturize( '<kbd>---&</kbd>' ) );
     18        $this->assertEquals( '<style>---&</style>', wptexturize( '<style>---&</style>' ) );
    1919        $this->assertEquals( '<script>---&</script>', wptexturize( '<script>---&</script>' ) );
    20         $this->assertEquals( '<tt>---&</tt>',         wptexturize( '<tt>---&</tt>'        ) );
    21 
    22         $this->assertEquals('<code>href="baba"</code> &#8220;baba&#8221;', wptexturize('<code>href="baba"</code> "baba"'));
     20        $this->assertEquals( '<tt>---&</tt>', wptexturize( '<tt>---&</tt>' ) );
     21
     22        $this->assertEquals( '<code>href="baba"</code> &#8220;baba&#8221;', wptexturize( '<code>href="baba"</code> "baba"' ) );
    2323
    2424        $enabled_tags_inside_code = '<code>curl -s <a href="http://x/">baba</a> | grep sfive | cut -d "\"" -f 10 &gt; topmp3.txt</code>';
    25         $this->assertEquals($enabled_tags_inside_code, wptexturize($enabled_tags_inside_code));
     25        $this->assertEquals( $enabled_tags_inside_code, wptexturize( $enabled_tags_inside_code ) );
    2626
    2727        $double_nest = '<pre>"baba"<code>"baba"<pre></pre></code>"baba"</pre>';
    28         $this->assertEquals($double_nest, wptexturize($double_nest));
     28        $this->assertEquals( $double_nest, wptexturize( $double_nest ) );
    2929
    3030        $invalid_nest = '<pre></code>"baba"</pre>';
    31         $this->assertEquals($invalid_nest, wptexturize($invalid_nest));
     31        $this->assertEquals( $invalid_nest, wptexturize( $invalid_nest ) );
    3232
    3333    }
     
    3535    //WP Ticket #1418
    3636    function test_bracketed_quotes_1418() {
    37         $this->assertEquals('(&#8220;test&#8221;)', wptexturize('("test")'));
    38         $this->assertEquals('(&#8216;test&#8217;)', wptexturize("('test')"));
    39         $this->assertEquals('(&#8217;twas)', wptexturize("('twas)"));
     37        $this->assertEquals( '(&#8220;test&#8221;)', wptexturize( '("test")' ) );
     38        $this->assertEquals( '(&#8216;test&#8217;)', wptexturize( "('test')" ) );
     39        $this->assertEquals( '(&#8217;twas)', wptexturize( "('twas)" ) );
    4040    }
    4141
    4242    //WP Ticket #3810
    4343    function test_bracketed_quotes_3810() {
    44         $this->assertEquals('A dog (&#8220;Hubertus&#8221;) was sent out.', wptexturize('A dog ("Hubertus") was sent out.'));
     44        $this->assertEquals( 'A dog (&#8220;Hubertus&#8221;) was sent out.', wptexturize( 'A dog ("Hubertus") was sent out.' ) );
    4545    }
    4646
    4747    //WP Ticket #4539
    4848    function test_basic_quotes() {
    49         $this->assertEquals('test&#8217;s', wptexturize('test\'s'));
    50 
    51         $this->assertEquals('&#8216;quoted&#8217;', wptexturize('\'quoted\''));
    52         $this->assertEquals('&#8220;quoted&#8221;', wptexturize('"quoted"'));
    53 
    54         $this->assertEquals('space before &#8216;quoted&#8217; space after', wptexturize('space before \'quoted\' space after'));
    55         $this->assertEquals('space before &#8220;quoted&#8221; space after', wptexturize('space before "quoted" space after'));
    56 
    57         $this->assertEquals('(&#8216;quoted&#8217;)', wptexturize('(\'quoted\')'));
    58         $this->assertEquals('{&#8220;quoted&#8221;}', wptexturize('{"quoted"}'));
    59 
    60         $this->assertEquals('&#8216;qu(ot)ed&#8217;', wptexturize('\'qu(ot)ed\''));
    61         $this->assertEquals('&#8220;qu{ot}ed&#8221;', wptexturize('"qu{ot}ed"'));
    62 
    63         $this->assertEquals(' &#8216;test&#8217;s quoted&#8217; ', wptexturize(' \'test\'s quoted\' '));
    64         $this->assertEquals(' &#8220;test&#8217;s quoted&#8221; ', wptexturize(' "test\'s quoted" '));
     49        $this->assertEquals( 'test&#8217;s', wptexturize( 'test\'s' ) );
     50
     51        $this->assertEquals( '&#8216;quoted&#8217;', wptexturize( '\'quoted\'' ) );
     52        $this->assertEquals( '&#8220;quoted&#8221;', wptexturize( '"quoted"' ) );
     53
     54        $this->assertEquals( 'space before &#8216;quoted&#8217; space after', wptexturize( 'space before \'quoted\' space after' ) );
     55        $this->assertEquals( 'space before &#8220;quoted&#8221; space after', wptexturize( 'space before "quoted" space after' ) );
     56
     57        $this->assertEquals( '(&#8216;quoted&#8217;)', wptexturize( '(\'quoted\')' ) );
     58        $this->assertEquals( '{&#8220;quoted&#8221;}', wptexturize( '{"quoted"}' ) );
     59
     60        $this->assertEquals( '&#8216;qu(ot)ed&#8217;', wptexturize( '\'qu(ot)ed\'' ) );
     61        $this->assertEquals( '&#8220;qu{ot}ed&#8221;', wptexturize( '"qu{ot}ed"' ) );
     62
     63        $this->assertEquals( ' &#8216;test&#8217;s quoted&#8217; ', wptexturize( ' \'test\'s quoted\' ' ) );
     64        $this->assertEquals( ' &#8220;test&#8217;s quoted&#8221; ', wptexturize( ' "test\'s quoted" ' ) );
    6565    }
    6666
     
    7272        $this->assertEquals(
    7373            'That means every moment you&#8217;re working on something without it being in the public it&#8217;s actually dying.',
    74             wptexturize("That means every moment you're working on something without it being in the public it's actually dying.")
     74            wptexturize( "That means every moment you're working on something without it being in the public it's actually dying." )
    7575        );
    7676    }
     
    8080     */
    8181    function test_quotes() {
    82         $this->assertEquals('&#8220;Quoted String&#8221;', wptexturize('"Quoted String"'));
     82        $this->assertEquals( '&#8220;Quoted String&#8221;', wptexturize( '"Quoted String"' ) );
    8383        //$this->assertEquals('Here is &#8220;<a href="http://example.com">a test with a link</a>&#8221;', wptexturize('Here is "<a href="http://example.com">a test with a link</a>"'));
    8484        //$this->assertEquals('Here is &#8220;<a href="http://example.com">a test with a link and a period</a>&#8221;.', wptexturize('Here is "<a href="http://example.com">a test with a link and a period</a>".'));
    85         $this->assertEquals('Here is &#8220;<a href="http://example.com">a test with a link</a>&#8221; and a space.', wptexturize('Here is "<a href="http://example.com">a test with a link</a>" and a space.'));
    86         $this->assertEquals('Here is &#8220;<a href="http://example.com">a test with a link</a> and some text quoted&#8221;', wptexturize('Here is "<a href="http://example.com">a test with a link</a> and some text quoted"'));
     85        $this->assertEquals( 'Here is &#8220;<a href="http://example.com">a test with a link</a>&#8221; and a space.', wptexturize( 'Here is "<a href="http://example.com">a test with a link</a>" and a space.' ) );
     86        $this->assertEquals( 'Here is &#8220;<a href="http://example.com">a test with a link</a> and some text quoted&#8221;', wptexturize( 'Here is "<a href="http://example.com">a test with a link</a> and some text quoted"' ) );
    8787        //$this->assertEquals('Here is &#8220;<a href="http://example.com">a test with a link</a>&#8221;, and a comma.', wptexturize('Here is "<a href="http://example.com">a test with a link</a>", and a comma.'));
    8888        //$this->assertEquals('Here is &#8220;<a href="http://example.com">a test with a link</a>&#8221;; and a semi-colon.', wptexturize('Here is "<a href="http://example.com">a test with a link</a>"; and a semi-colon.'));
     
    9191        //$this->assertEquals('Here is &#8220;a test <a href="http://example.com">with a link</a>&#8221;.', wptexturize('Here is "a test <a href="http://example.com">with a link</a>".'));
    9292        //$this->assertEquals('Here is &#8220;<a href="http://example.com">a test with a link</a>&#8221;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.'));
    93         $this->assertEquals('A test with a finishing number, &#8220;like 23&#8221;.', wptexturize('A test with a finishing number, "like 23".'));
    94         $this->assertEquals('A test with a number, &#8220;like 62&#8221;, is nice to have.', wptexturize('A test with a number, "like 62", is nice to have.'));
     93        $this->assertEquals( 'A test with a finishing number, &#8220;like 23&#8221;.', wptexturize( 'A test with a finishing number, "like 23".' ) );
     94        $this->assertEquals( 'A test with a number, &#8220;like 62&#8221;, is nice to have.', wptexturize( 'A test with a number, "like 62", is nice to have.' ) );
    9595    }
    9696
     
    9999     */
    100100    function test_quotes_before_s() {
    101         $this->assertEquals('test&#8217;s', wptexturize("test's"));
    102         $this->assertEquals('&#8216;test&#8217;s', wptexturize("'test's"));
    103         $this->assertEquals('&#8216;test&#8217;s&#8217;', wptexturize("'test's'"));
    104         $this->assertEquals('&#8216;string&#8217;', wptexturize("'string'"));
    105         $this->assertEquals('&#8216;string&#8217;s&#8217;', wptexturize("'string's'"));
     101        $this->assertEquals( 'test&#8217;s', wptexturize( "test's" ) );
     102        $this->assertEquals( '&#8216;test&#8217;s', wptexturize( "'test's" ) );
     103        $this->assertEquals( '&#8216;test&#8217;s&#8217;', wptexturize( "'test's'" ) );
     104        $this->assertEquals( '&#8216;string&#8217;', wptexturize( "'string'" ) );
     105        $this->assertEquals( '&#8216;string&#8217;s&#8217;', wptexturize( "'string's'" ) );
    106106    }
    107107
     
    110110     */
    111111    function test_quotes_before_numbers() {
    112         $this->assertEquals('Class of &#8217;99', wptexturize("Class of '99"));
    113         $this->assertEquals('Class of &#8217;99&#8217;s', wptexturize("Class of '99's"));
    114         $this->assertEquals('&#8216;Class of &#8217;99&#8217;', wptexturize("'Class of '99'"));
    115         $this->assertEquals('&#8216;Class of &#8217;99&#8217; ', wptexturize("'Class of '99' "));
    116         $this->assertEquals('&#8216;Class of &#8217;99&#8217;.', wptexturize("'Class of '99'."));
    117         $this->assertEquals('&#8216;Class of &#8217;99&#8217;, she said', wptexturize("'Class of '99', she said"));
    118         $this->assertEquals('&#8216;Class of &#8217;99&#8217;:', wptexturize("'Class of '99':"));
    119         $this->assertEquals('&#8216;Class of &#8217;99&#8217;;', wptexturize("'Class of '99';"));
    120         $this->assertEquals('&#8216;Class of &#8217;99&#8217;!', wptexturize("'Class of '99'!"));
    121         $this->assertEquals('&#8216;Class of &#8217;99&#8217;?', wptexturize("'Class of '99'?"));
    122         $this->assertEquals('&#8216;Class of &#8217;99&#8217;s&#8217;', wptexturize("'Class of '99's'"));
    123         $this->assertEquals('&#8216;Class of &#8217;99&#8217;s&#8217;', wptexturize("'Class of '99&#8217;s'"));
    124         $this->assertEquals('&#8220;Class of 99&#8221;', wptexturize("\"Class of 99\""));
    125         $this->assertEquals('&#8220;Class of &#8217;99&#8221;', wptexturize("\"Class of '99\""));
    126         $this->assertEquals('{&#8220;Class of &#8217;99&#8221;}', wptexturize("{\"Class of '99\"}"));
    127         $this->assertEquals(' &#8220;Class of &#8217;99&#8221; ', wptexturize(" \"Class of '99\" "));
    128         $this->assertEquals(' &#8220;Class of &#8217;99&#8221;.', wptexturize(" \"Class of '99\"."));
    129         $this->assertEquals(' &#8220;Class of &#8217;99&#8221;, she said', wptexturize(" \"Class of '99\", she said"));
    130         $this->assertEquals(' &#8220;Class of &#8217;99&#8221;:', wptexturize(" \"Class of '99\":"));
    131         $this->assertEquals(' &#8220;Class of &#8217;99&#8221;;', wptexturize(" \"Class of '99\";"));
    132         $this->assertEquals(' &#8220;Class of &#8217;99&#8221;!', wptexturize(" \"Class of '99\"!"));
    133         $this->assertEquals(' &#8220;Class of &#8217;99&#8221;?', wptexturize(" \"Class of '99\"?"));
    134         $this->assertEquals('}&#8221;Class of &#8217;99&#8243;{', wptexturize("}\"Class of '99\"{")); // Not a quotation, may be between two other quotations.
     112        $this->assertEquals( 'Class of &#8217;99', wptexturize( "Class of '99" ) );
     113        $this->assertEquals( 'Class of &#8217;99&#8217;s', wptexturize( "Class of '99's" ) );
     114        $this->assertEquals( '&#8216;Class of &#8217;99&#8217;', wptexturize( "'Class of '99'" ) );
     115        $this->assertEquals( '&#8216;Class of &#8217;99&#8217; ', wptexturize( "'Class of '99' " ) );
     116        $this->assertEquals( '&#8216;Class of &#8217;99&#8217;.', wptexturize( "'Class of '99'." ) );
     117        $this->assertEquals( '&#8216;Class of &#8217;99&#8217;, she said', wptexturize( "'Class of '99', she said" ) );
     118        $this->assertEquals( '&#8216;Class of &#8217;99&#8217;:', wptexturize( "'Class of '99':" ) );
     119        $this->assertEquals( '&#8216;Class of &#8217;99&#8217;;', wptexturize( "'Class of '99';" ) );
     120        $this->assertEquals( '&#8216;Class of &#8217;99&#8217;!', wptexturize( "'Class of '99'!" ) );
     121        $this->assertEquals( '&#8216;Class of &#8217;99&#8217;?', wptexturize( "'Class of '99'?" ) );
     122        $this->assertEquals( '&#8216;Class of &#8217;99&#8217;s&#8217;', wptexturize( "'Class of '99's'" ) );
     123        $this->assertEquals( '&#8216;Class of &#8217;99&#8217;s&#8217;', wptexturize( "'Class of '99&#8217;s'" ) );
     124        $this->assertEquals( '&#8220;Class of 99&#8221;', wptexturize( '"Class of 99"' ) );
     125        $this->assertEquals( '&#8220;Class of &#8217;99&#8221;', wptexturize( "\"Class of '99\"" ) );
     126        $this->assertEquals( '{&#8220;Class of &#8217;99&#8221;}', wptexturize( "{\"Class of '99\"}" ) );
     127        $this->assertEquals( ' &#8220;Class of &#8217;99&#8221; ', wptexturize( " \"Class of '99\" " ) );
     128        $this->assertEquals( ' &#8220;Class of &#8217;99&#8221;.', wptexturize( " \"Class of '99\"." ) );
     129        $this->assertEquals( ' &#8220;Class of &#8217;99&#8221;, she said', wptexturize( " \"Class of '99\", she said" ) );
     130        $this->assertEquals( ' &#8220;Class of &#8217;99&#8221;:', wptexturize( " \"Class of '99\":" ) );
     131        $this->assertEquals( ' &#8220;Class of &#8217;99&#8221;;', wptexturize( " \"Class of '99\";" ) );
     132        $this->assertEquals( ' &#8220;Class of &#8217;99&#8221;!', wptexturize( " \"Class of '99\"!" ) );
     133        $this->assertEquals( ' &#8220;Class of &#8217;99&#8221;?', wptexturize( " \"Class of '99\"?" ) );
     134        $this->assertEquals( '}&#8221;Class of &#8217;99&#8243;{', wptexturize( "}\"Class of '99\"{" ) ); // Not a quotation, may be between two other quotations.
    135135    }
    136136
    137137    function test_quotes_after_numbers() {
    138         $this->assertEquals('Class of &#8217;99', wptexturize("Class of '99"));
     138        $this->assertEquals( 'Class of &#8217;99', wptexturize( "Class of '99" ) );
    139139    }
    140140
     
    144144     */
    145145    function test_other_html() {
    146         $this->assertEquals('&#8216;<strong>', wptexturize("'<strong>"));
     146        $this->assertEquals( '&#8216;<strong>', wptexturize( "'<strong>" ) );
    147147        //$this->assertEquals('&#8216;<strong>Quoted Text</strong>&#8217;,', wptexturize("'<strong>Quoted Text</strong>',"));
    148148        //$this->assertEquals('&#8220;<strong>Quoted Text</strong>&#8221;,', wptexturize('"<strong>Quoted Text</strong>",'));
     
    150150
    151151    function test_x() {
    152         $this->assertEquals('14&#215;24', wptexturize("14x24"));
     152        $this->assertEquals( '14&#215;24', wptexturize( '14x24' ) );
    153153    }
    154154
    155155    function test_minutes_seconds() {
    156         $this->assertEquals('9&#8242;', wptexturize('9\''));
    157         $this->assertEquals('9&#8243;', wptexturize("9\""));
    158 
    159         $this->assertEquals('a 9&#8242; b', wptexturize('a 9\' b'));
    160         $this->assertEquals('a 9&#8243; b', wptexturize("a 9\" b"));
    161 
    162         $this->assertEquals('&#8220;a 9&#8242; b&#8221;', wptexturize('"a 9\' b"'));
    163         $this->assertEquals('&#8216;a 9&#8243; b&#8217;', wptexturize("'a 9\" b'"));
     156        $this->assertEquals( '9&#8242;', wptexturize( '9\'' ) );
     157        $this->assertEquals( '9&#8243;', wptexturize( '9"' ) );
     158
     159        $this->assertEquals( 'a 9&#8242; b', wptexturize( 'a 9\' b' ) );
     160        $this->assertEquals( 'a 9&#8243; b', wptexturize( 'a 9" b' ) );
     161
     162        $this->assertEquals( '&#8220;a 9&#8242; b&#8221;', wptexturize( '"a 9\' b"' ) );
     163        $this->assertEquals( '&#8216;a 9&#8243; b&#8217;', wptexturize( "'a 9\" b'" ) );
    164164    }
    165165
     
    168168     */
    169169    function test_wptexturize_quotes_around_numbers() {
    170         $this->assertEquals('&#8220;12345&#8221;', wptexturize('"12345"'));
    171         $this->assertEquals('&#8216;12345&#8217;', wptexturize('\'12345\''));
    172         $this->assertEquals('&#8220;a 9&#8242; plus a &#8216;9&#8217;, maybe a 9&#8242; &#8216;9&#8217;&#8221;', wptexturize('"a 9\' plus a \'9\', maybe a 9\' \'9\'"'));
    173         $this->assertEquals('<p>&#8217;99<br />&#8216;123&#8217;<br />&#8217;tis<br />&#8216;s&#8217;</p>', wptexturize('<p>\'99<br />\'123\'<br />\'tis<br />\'s\'</p>'));
     170        $this->assertEquals( '&#8220;12345&#8221;', wptexturize( '"12345"' ) );
     171        $this->assertEquals( '&#8216;12345&#8217;', wptexturize( '\'12345\'' ) );
     172        $this->assertEquals( '&#8220;a 9&#8242; plus a &#8216;9&#8217;, maybe a 9&#8242; &#8216;9&#8217;&#8221;', wptexturize( '"a 9\' plus a \'9\', maybe a 9\' \'9\'"' ) );
     173        $this->assertEquals( '<p>&#8217;99<br />&#8216;123&#8217;<br />&#8217;tis<br />&#8216;s&#8217;</p>', wptexturize( '<p>\'99<br />\'123\'<br />\'tis<br />\'s\'</p>' ) );
    174174    }
    175175
     
    178178     */
    179179    function test_wptexturize_html_comments() {
    180         $this->assertEquals('<!--[if !IE]>--><!--<![endif]-->', wptexturize('<!--[if !IE]>--><!--<![endif]-->'));
    181         $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]-->'));
    182         $this->assertEquals('<ul><li>Hello.</li><!--<li>Goodbye.</li>--></ul>', wptexturize('<ul><li>Hello.</li><!--<li>Goodbye.</li>--></ul>'));
     180        $this->assertEquals( '<!--[if !IE]>--><!--<![endif]-->', wptexturize( '<!--[if !IE]>--><!--<![endif]-->' ) );
     181        $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]-->' ) );
     182        $this->assertEquals( '<ul><li>Hello.</li><!--<li>Goodbye.</li>--></ul>', wptexturize( '<ul><li>Hello.</li><!--<li>Goodbye.</li>--></ul>' ) );
    183183    }
    184184
     
    188188     */
    189189    function test_entity_quote_cuddling() {
    190         $this->assertEquals('&nbsp;&#8220;Testing&#8221;', wptexturize('&nbsp;"Testing"'));
     190        $this->assertEquals( '&nbsp;&#8220;Testing&#8221;', wptexturize( '&nbsp;"Testing"' ) );
    191191        //$this->assertEquals('&#38;&#8220;Testing&#8221;', wptexturize('&#38;"Testing"'));
    192192    }
     
    208208        $this->assertEquals( '&nbsp;&#8211;&nbsp;', wptexturize( '&nbsp;-&nbsp;' ) );
    209209        $this->assertEquals( ' &#8211;&nbsp;', wptexturize( ' -&nbsp;' ) );
    210         $this->assertEquals( '&nbsp;&#8211; ', wptexturize( '&nbsp;- ') );
     210        $this->assertEquals( '&nbsp;&#8211; ', wptexturize( '&nbsp;- ' ) );
    211211        $this->assertEquals( "$nbsp&#8211;$nbsp", wptexturize( "$nbsp-$nbsp" ) );
    212212        $this->assertEquals( " &#8211;$nbsp", wptexturize( " -$nbsp" ) );
    213         $this->assertEquals( "$nbsp&#8211; ", wptexturize( "$nbsp- ") );
     213        $this->assertEquals( "$nbsp&#8211; ", wptexturize( "$nbsp- " ) );
    214214
    215215        $this->assertEquals( ' &#8212; ', wptexturize( ' -- ' ) );
    216216        $this->assertEquals( '&nbsp;&#8212;&nbsp;', wptexturize( '&nbsp;--&nbsp;' ) );
    217217        $this->assertEquals( ' &#8212;&nbsp;', wptexturize( ' --&nbsp;' ) );
    218         $this->assertEquals( '&nbsp;&#8212; ', wptexturize( '&nbsp;-- ') );
     218        $this->assertEquals( '&nbsp;&#8212; ', wptexturize( '&nbsp;-- ' ) );
    219219        $this->assertEquals( "$nbsp&#8212;$nbsp", wptexturize( "$nbsp--$nbsp" ) );
    220220        $this->assertEquals( " &#8212;$nbsp", wptexturize( " --$nbsp" ) );
    221         $this->assertEquals( "$nbsp&#8212; ", wptexturize( "$nbsp-- ") );
     221        $this->assertEquals( "$nbsp&#8212; ", wptexturize( "$nbsp-- " ) );
    222222    }
    223223
     
    285285            ),
    286286            array(
    287                 "stop. &nbsp;\"A quote after 2 spaces.\"",
    288                 "stop. &nbsp;&#8220;A quote after 2 spaces.&#8221;",
    289             ),
    290             array(
    291                 "stop.&nbsp;&nbsp;\"A quote after 2 spaces.\"",
    292                 "stop.&nbsp;&nbsp;&#8220;A quote after 2 spaces.&#8221;",
     287                'stop. &nbsp;"A quote after 2 spaces."',
     288                'stop. &nbsp;&#8220;A quote after 2 spaces.&#8221;',
     289            ),
     290            array(
     291                'stop.&nbsp;&nbsp;"A quote after 2 spaces."',
     292                'stop.&nbsp;&nbsp;&#8220;A quote after 2 spaces.&#8221;',
    293293            ),
    294294            array(
    295295                "stop. &nbsp;'A quote after 2 spaces.'",
    296                 "stop. &nbsp;&#8216;A quote after 2 spaces.&#8217;",
     296                'stop. &nbsp;&#8216;A quote after 2 spaces.&#8217;',
    297297            ),
    298298            array(
    299299                "stop.&nbsp;&nbsp;'A quote after 2 spaces.'",
    300                 "stop.&nbsp;&nbsp;&#8216;A quote after 2 spaces.&#8217;",
     300                'stop.&nbsp;&nbsp;&#8216;A quote after 2 spaces.&#8217;',
    301301            ),
    302302            array(
     
    323323            array(
    324324                "word '99 word",
    325                 "word &#8217;99 word",
     325                'word &#8217;99 word',
    326326            ),
    327327            array(
    328328                "word'99 word",
    329                 "word&#8217;99 word",
     329                'word&#8217;99 word',
    330330            ),
    331331            array(
    332332                "word '99word",
    333                 "word &#8217;99word",
     333                'word &#8217;99word',
    334334            ),
    335335            array(
    336336                "word'99word",
    337                 "word&#8217;99word",
     337                'word&#8217;99word',
    338338            ),
    339339            array(
    340340                "word '99&#8217;s word", // Appears as a separate but logically superfluous pattern in 3.8.
    341                 "word &#8217;99&#8217;s word",
     341                'word &#8217;99&#8217;s word',
    342342            ),
    343343            array(
    344344                "according to our source, '33 students scored less than 50' on the test.", // Apostrophes and primes have priority over quotes
    345                 "according to our source, &#8217;33 students scored less than 50&#8242; on the test.",
     345                'according to our source, &#8217;33 students scored less than 50&#8242; on the test.',
    346346            ),
    347347        );
     
    364364            array(
    365365                "word 'word word",
    366                 "word &#8216;word word",
     366                'word &#8216;word word',
    367367            ),
    368368            array(
    369369                "word ('word word",
    370                 "word (&#8216;word word",
     370                'word (&#8216;word word',
    371371            ),
    372372            array(
    373373                "word ['word word",
    374                 "word [&#8216;word word",
     374                'word [&#8216;word word',
    375375            ),
    376376            array(
     
    380380            array(
    381381                "word &lt;'word word", // Valid HTML input makes curly quotes.
    382                 "word &lt;&#8216;word word",
     382                'word &lt;&#8216;word word',
    383383            ),
    384384            array(
    385385                "word {'word word",
    386                 "word {&#8216;word word",
     386                'word {&#8216;word word',
    387387            ),
    388388            array(
    389389                "word \"'word word",
    390                 "word &#8220;&#8216;word word", // Two opening quotes
     390                'word &#8220;&#8216;word word', // Two opening quotes
    391391            ),
    392392            array(
    393393                "'word word",
    394                 "&#8216;word word",
     394                '&#8216;word word',
    395395            ),
    396396            array(
    397397                "word('word word",
    398                 "word(&#8216;word word",
     398                'word(&#8216;word word',
    399399            ),
    400400            array(
    401401                "word['word word",
    402                 "word[&#8216;word word",
     402                'word[&#8216;word word',
    403403            ),
    404404            array(
     
    408408            array(
    409409                "word&lt;'word word",
    410                 "word&lt;&#8216;word word",
     410                'word&lt;&#8216;word word',
    411411            ),
    412412            array(
    413413                "word{'word word",
    414                 "word{&#8216;word word",
     414                'word{&#8216;word word',
    415415            ),
    416416            array(
    417417                "word\"'word word",
    418                 "word&#8221;&#8216;word word", // Closing quote, then opening quote
     418                'word&#8221;&#8216;word word', // Closing quote, then opening quote
    419419            ),
    420420            array(
    421421                "word ' word word",
    422                 "word &#8216; word word",
     422                'word &#8216; word word',
    423423            ),
    424424            array(
    425425                "word (' word word",
    426                 "word (&#8216; word word",
     426                'word (&#8216; word word',
    427427            ),
    428428            array(
    429429                "word [' word word",
    430                 "word [&#8216; word word",
     430                'word [&#8216; word word',
    431431            ),
    432432            array(
     
    436436            array(
    437437                "word &lt;' word word",
    438                 "word &lt;&#8216; word word",
     438                'word &lt;&#8216; word word',
    439439            ),
    440440            array(
    441441                "word {' word word",
    442                 "word {&#8216; word word",
     442                'word {&#8216; word word',
    443443            ),
    444444            array(
    445445                "word \"' word word",
    446                 "word &#8220;&#8216; word word", // Two opening quotes
     446                'word &#8220;&#8216; word word', // Two opening quotes
    447447            ),
    448448            array(
    449449                "' word word",
    450                 "&#8216; word word",
     450                '&#8216; word word',
    451451            ),
    452452            array(
    453453                "word(' word word",
    454                 "word(&#8216; word word",
     454                'word(&#8216; word word',
    455455            ),
    456456            array(
    457457                "word[' word word",
    458                 "word[&#8216; word word",
     458                'word[&#8216; word word',
    459459            ),
    460460            array(
     
    464464            array(
    465465                "word&lt;' word word",
    466                 "word&lt;&#8216; word word",
     466                'word&lt;&#8216; word word',
    467467            ),
    468468            array(
    469469                "word{' word word",
    470                 "word{&#8216; word word",
     470                'word{&#8216; word word',
    471471            ),
    472472            array(
    473473                "word\"' word word",
    474                 "word&#8221;&#8216; word word", // Closing quote, then opening quote
     474                'word&#8221;&#8216; word word', // Closing quote, then opening quote
    475475            ),
    476476        );
     
    526526            array(
    527527                "word 99' word",
    528                 "word 99&#8242; word",
     528                'word 99&#8242; word',
    529529            ),
    530530            array(
    531531                "word 99'word", // Not a prime anymore. Apostrophes get priority.
    532                 "word 99&#8217;word",
     532                'word 99&#8217;word',
    533533            ),
    534534            array(
    535535                "word99' word",
    536                 "word99&#8242; word",
     536                'word99&#8242; word',
    537537            ),
    538538            array(
    539539                "word99'word", // Not a prime anymore.
    540                 "word99&#8217;word",
     540                'word99&#8217;word',
    541541            ),
    542542        );
     
    559559            array(
    560560                "word word's word",
    561                 "word word&#8217;s word",
     561                'word word&#8217;s word',
    562562            ),
    563563            array(
     
    579579            array(
    580580                "word'< word", // Invalid HTML input does trigger the apos pattern.
    581                 "word&#8217;< word",
     581                'word&#8217;< word',
    582582            ),
    583583        );
     
    766766            array(
    767767                "word word' word",
    768                 "word word&#8217; word",
     768                'word word&#8217; word',
    769769            ),
    770770            array(
    771771                "word word'. word",
    772                 "word word&#8217;. word",
     772                'word word&#8217;. word',
    773773            ),
    774774            array(
    775775                "word word'.word",
    776                 "word word&#8217;.word",
     776                'word word&#8217;.word',
    777777            ),
    778778            array(
    779779                "word word', she said",
    780                 "word word&#8217;, she said",
     780                'word word&#8217;, she said',
    781781            ),
    782782            array(
    783783                "word word': word",
    784                 "word word&#8217;: word",
     784                'word word&#8217;: word',
    785785            ),
    786786            array(
    787787                "word word'; word",
    788                 "word word&#8217;; word",
     788                'word word&#8217;; word',
    789789            ),
    790790            array(
    791791                "word word'! word",
    792                 "word word&#8217;! word",
     792                'word word&#8217;! word',
    793793            ),
    794794            array(
    795795                "word word'? word",
    796                 "word word&#8217;? word",
     796                'word word&#8217;? word',
    797797            ),
    798798            array(
    799799                "word word'- word",
    800                 "word word&#8217;- word",
     800                'word word&#8217;- word',
    801801            ),
    802802            array(
    803803                "word word') word",
    804                 "word word&#8217;) word",
     804                'word word&#8217;) word',
    805805            ),
    806806            array(
    807807                "word word'} word",
    808                 "word word&#8217;} word",
     808                'word word&#8217;} word',
    809809            ),
    810810            array(
    811811                "word word'] word",
    812                 "word word&#8217;] word",
     812                'word word&#8217;] word',
    813813            ),
    814814            array(
    815815                "word word'&gt; word",
    816                 "word word&#8217;&gt; word",
     816                'word word&#8217;&gt; word',
    817817            ),
    818818            array(
    819819                "word word'",
    820                 "word word&#8217;",
     820                'word word&#8217;',
    821821            ),
    822822            array(
    823823                "test sentence'.",
    824                 "test sentence&#8217;.",
     824                'test sentence&#8217;.',
    825825            ),
    826826            array(
    827827                "test sentence.'",
    828                 "test sentence.&#8217;",
     828                'test sentence.&#8217;',
    829829            ),
    830830            array(
    831831                "test sentence'. word",
    832                 "test sentence&#8217;. word",
     832                'test sentence&#8217;. word',
    833833            ),
    834834            array(
    835835                "test sentence.' word",
    836                 "test sentence.&#8217; word",
     836                'test sentence.&#8217; word',
    837837            ),
    838838        );
     
    854854        return array(
    855855            array(
    856                 "9x9",
    857                 "9&#215;9",
    858             ),
    859             array(
    860                 "12x34",
    861                 "12&#215;34",
    862             ),
    863             array(
    864                 "-123x1=-123",
    865                 "-123&#215;1=-123",
     856                '9x9',
     857                '9&#215;9',
     858            ),
     859            array(
     860                '12x34',
     861                '12&#215;34',
     862            ),
     863            array(
     864                '-123x1=-123',
     865                '-123&#215;1=-123',
    866866            ),
    867867            // @ticket 30445
    868868            array(
    869                 "-123x-1",
    870                 "-123x-1",
    871             ),
    872             array(
    873                 "0.675x1=0.675",
    874                 "0.675&#215;1=0.675",
    875             ),
    876             array(
    877                 "9 x 9",
    878                 "9 x 9",
    879             ),
    880             array(
    881                 "0x70",
    882                 "0x70",
    883             ),
    884             array(
    885                 "3x2x1x0",
    886                 "3x2x1x0",
     869                '-123x-1',
     870                '-123x-1',
     871            ),
     872            array(
     873                '0.675x1=0.675',
     874                '0.675&#215;1=0.675',
     875            ),
     876            array(
     877                '9 x 9',
     878                '9 x 9',
     879            ),
     880            array(
     881                '0x70',
     882                '0x70',
     883            ),
     884            array(
     885                '3x2x1x0',
     886                '3x2x1x0',
    887887            ),
    888888        );
     
    904904        return array(
    905905            array(
    906                 "word & word",
    907                 "word &#038; word",
    908             ),
    909             array(
    910                 "word&word",
    911                 "word&#038;word",
    912             ),
    913             array(
    914                 "word &nbsp; word",
    915                 "word &nbsp; word",
    916             ),
    917             array(
    918                 "word &#038; word",
    919                 "word &#038; word",
    920             ),
    921             array(
    922                 "word &#xabc; word",
    923                 "word &#xabc; word",
    924             ),
    925             array(
    926                 "word &#X394; word",
    927                 "word &#X394; word",
    928             ),
    929             array(
    930                 "word &# word",
    931                 "word &#038;# word",
    932             ),
    933             array(
    934                 "word &44; word",
    935                 "word &44; word",
    936             ),
    937             array(
    938                 "word &&amp; word",
    939                 "word &#038;&amp; word",
    940             ),
    941             array(
    942                 "word &!amp; word",
    943                 "word &#038;!amp; word",
    944             ),
    945             array(
    946                 "word &#",
    947                 "word &#038;#",
    948             ),
    949             array(
    950                 "word &",
    951                 "word &#038;",
     906                'word & word',
     907                'word &#038; word',
     908            ),
     909            array(
     910                'word&word',
     911                'word&#038;word',
     912            ),
     913            array(
     914                'word &nbsp; word',
     915                'word &nbsp; word',
     916            ),
     917            array(
     918                'word &#038; word',
     919                'word &#038; word',
     920            ),
     921            array(
     922                'word &#xabc; word',
     923                'word &#xabc; word',
     924            ),
     925            array(
     926                'word &#X394; word',
     927                'word &#X394; word',
     928            ),
     929            array(
     930                'word &# word',
     931                'word &#038;# word',
     932            ),
     933            array(
     934                'word &44; word',
     935                'word &44; word',
     936            ),
     937            array(
     938                'word &&amp; word',
     939                'word &#038;&amp; word',
     940            ),
     941            array(
     942                'word &!amp; word',
     943                'word &#038;!amp; word',
     944            ),
     945            array(
     946                'word &#',
     947                'word &#038;#',
     948            ),
     949            array(
     950                'word &',
     951                'word &#038;',
    952952            ),
    953953        );
     
    970970            array(
    971971                "word 'tain't word",
    972                 "word &#8217;tain&#8217;t word",
     972                'word &#8217;tain&#8217;t word',
    973973            ),
    974974            array(
    975975                "word 'twere word",
    976                 "word &#8217;twere word",
     976                'word &#8217;twere word',
    977977            ),
    978978            array(
    979979                "word 'twas word",
    980                 "word &#8217;twas word",
     980                'word &#8217;twas word',
    981981            ),
    982982            array(
    983983                "word 'tis word",
    984                 "word &#8217;tis word",
     984                'word &#8217;tis word',
    985985            ),
    986986            array(
    987987                "word 'twill word",
    988                 "word &#8217;twill word",
     988                'word &#8217;twill word',
    989989            ),
    990990            array(
    991991                "word 'til word",
    992                 "word &#8217;til word",
     992                'word &#8217;til word',
    993993            ),
    994994            array(
    995995                "word 'bout word",
    996                 "word &#8217;bout word",
     996                'word &#8217;bout word',
    997997            ),
    998998            array(
    999999                "word 'nuff word",
    1000                 "word &#8217;nuff word",
     1000                'word &#8217;nuff word',
    10011001            ),
    10021002            array(
    10031003                "word 'round word",
    1004                 "word &#8217;round word",
     1004                'word &#8217;round word',
    10051005            ),
    10061006            array(
    10071007                "word 'cause word",
    1008                 "word &#8217;cause word",
     1008                'word &#8217;cause word',
    10091009            ),
    10101010            array(
    10111011                "word 'em word",
    1012                 "word &#8217;em word",
     1012                'word &#8217;em word',
    10131013            ),
    10141014        );
     
    10301030        return array(
    10311031            array(
    1032                 "word --- word",
    1033                 "word &#8212; word",
    1034             ),
    1035             array(
    1036                 "word---word",
    1037                 "word&#8212;word",
    1038             ),
    1039             array(
    1040                 "word -- word",
    1041                 "word &#8212; word",
    1042             ),
    1043             array(
    1044                 "word--word",
    1045                 "word&#8211;word",
    1046             ),
    1047             array(
    1048                 "word - word",
    1049                 "word &#8211; word",
    1050             ),
    1051             array(
    1052                 "word-word",
    1053                 "word-word",
    1054             ),
    1055             array(
    1056                 "word xn&#8211; word",
    1057                 "word xn&#8211; word",
    1058             ),
    1059             array(
    1060                 "wordxn&#8211;word",
    1061                 "wordxn&#8211;word",
    1062             ),
    1063             array(
    1064                 "wordxn--word",
    1065                 "wordxn--word",
     1032                'word --- word',
     1033                'word &#8212; word',
     1034            ),
     1035            array(
     1036                'word---word',
     1037                'word&#8212;word',
     1038            ),
     1039            array(
     1040                'word -- word',
     1041                'word &#8212; word',
     1042            ),
     1043            array(
     1044                'word--word',
     1045                'word&#8211;word',
     1046            ),
     1047            array(
     1048                'word - word',
     1049                'word &#8211; word',
     1050            ),
     1051            array(
     1052                'word-word',
     1053                'word-word',
     1054            ),
     1055            array(
     1056                'word xn&#8211; word',
     1057                'word xn&#8211; word',
     1058            ),
     1059            array(
     1060                'wordxn&#8211;word',
     1061                'wordxn&#8211;word',
     1062            ),
     1063            array(
     1064                'wordxn--word',
     1065                'wordxn--word',
    10661066            ),
    10671067        );
     
    10831083        return array(
    10841084            array(
    1085                 "word ... word",
    1086                 "word &#8230; word",
    1087             ),
    1088             array(
    1089                 "word...word",
    1090                 "word&#8230;word",
    1091             ),
    1092             array(
    1093                 "word `` word",
    1094                 "word &#8220; word",
    1095             ),
    1096             array(
    1097                 "word``word",
    1098                 "word&#8220;word",
     1085                'word ... word',
     1086                'word &#8230; word',
     1087            ),
     1088            array(
     1089                'word...word',
     1090                'word&#8230;word',
     1091            ),
     1092            array(
     1093                'word `` word',
     1094                'word &#8220; word',
     1095            ),
     1096            array(
     1097                'word``word',
     1098                'word&#8220;word',
    10991099            ),
    11001100            array(
    11011101                "word '' word",
    1102                 "word &#8221; word",
     1102                'word &#8221; word',
    11031103            ),
    11041104            array(
    11051105                "word''word",
    1106                 "word&#8221;word",
    1107             ),
    1108             array(
    1109                 "word (tm) word",
    1110                 "word &#8482; word",
    1111             ),
    1112             array(
    1113                 "word (tm)word",
    1114                 "word &#8482;word",
    1115             ),
    1116             array(
    1117                 "word(tm) word",
    1118                 "word(tm) word",
    1119             ),
    1120             array(
    1121                 "word(tm)word",
    1122                 "word(tm)word",
     1106                'word&#8221;word',
     1107            ),
     1108            array(
     1109                'word (tm) word',
     1110                'word &#8482; word',
     1111            ),
     1112            array(
     1113                'word (tm)word',
     1114                'word &#8482;word',
     1115            ),
     1116            array(
     1117                'word(tm) word',
     1118                'word(tm) word',
     1119            ),
     1120            array(
     1121                'word(tm)word',
     1122                'word(tm)word',
    11231123            ),
    11241124        );
     
    11471147            array(
    11481148                "word '42.00' word",
    1149                 "word &#8216;42.00&#8217; word",
     1149                'word &#8216;42.00&#8217; word',
    11501150            ),
    11511151            array(
    11521152                "word '42.00'word",
    1153                 "word &#8216;42.00&#8217;word",
     1153                'word &#8216;42.00&#8217;word',
    11541154            ),
    11551155            array(
     
    11671167            array(
    11681168                "word '99's word",
    1169                 "word &#8217;99&#8217;s word",
     1169                'word &#8217;99&#8217;s word',
    11701170            ),
    11711171            array(
    11721172                "word '99'samsonite",
    1173                 "word &#8217;99&#8217;samsonite",
     1173                'word &#8217;99&#8217;samsonite',
    11741174            ),
    11751175        );
     
    12021202            array(
    12031203                "word---'quote'",
    1204                 "word&#8212;&#8216;quote&#8217;",
     1204                'word&#8212;&#8216;quote&#8217;',
    12051205            ),
    12061206            array(
    12071207                "word--'quote'",
    1208                 "word&#8211;&#8216;quote&#8217;",
     1208                'word&#8211;&#8216;quote&#8217;',
    12091209            ),
    12101210            array(
    12111211                "word-'quote'",
    1212                 "word-&#8216;quote&#8217;",
     1212                'word-&#8216;quote&#8217;',
    12131213            ),
    12141214            array(
     
    12261226            array(
    12271227                "'quote'---word",
    1228                 "&#8216;quote&#8217;&#8212;word",
     1228                '&#8216;quote&#8217;&#8212;word',
    12291229            ),
    12301230            array(
    12311231                "'quote'--word",
    1232                 "&#8216;quote&#8217;&#8211;word",
     1232                '&#8216;quote&#8217;&#8211;word',
    12331233            ),
    12341234            array(
    12351235                "'quote'-word",
    1236                 "&#8216;quote&#8217;-word",
     1236                '&#8216;quote&#8217;-word',
    12371237            ),
    12381238        );
     
    12771277            array(
    12781278                '& <script>&&</script>',
    1279                 '&#038; <script>&&</script>'
     1279                '&#038; <script>&&</script>',
    12801280            ),
    12811281            array(
     
    14761476            array(
    14771477                "word '99 word",
    1478                 "word &#8217;99 word",
     1478                'word &#8217;99 word',
    14791479            ),
    14801480            array(
    14811481                "word '99. word",
    1482                 "word &#8217;99. word",
     1482                'word &#8217;99. word',
    14831483            ),
    14841484            array(
    14851485                "word '99, word",
    1486                 "word &#8217;99, word",
     1486                'word &#8217;99, word',
    14871487            ),
    14881488            array(
    14891489                "word '99; word",
    1490                 "word &#8217;99; word",
     1490                'word &#8217;99; word',
    14911491            ),
    14921492            array(
    14931493                "word '99' word", // For this pattern, prime doesn't make sense.  Should get apos and a closing quote.
    1494                 "word &#8217;99&#8217; word",
     1494                'word &#8217;99&#8217; word',
    14951495            ),
    14961496            array(
    14971497                "word '99'. word",
    1498                 "word &#8217;99&#8217;. word",
     1498                'word &#8217;99&#8217;. word',
    14991499            ),
    15001500            array(
    15011501                "word '99', word",
    1502                 "word &#8217;99&#8217;, word",
     1502                'word &#8217;99&#8217;, word',
    15031503            ),
    15041504            array(
    15051505                "word '99.' word",
    1506                 "word &#8217;99.&#8217; word",
     1506                'word &#8217;99.&#8217; word',
    15071507            ),
    15081508            array(
    15091509                "word '99",
    1510                 "word &#8217;99",
     1510                'word &#8217;99',
    15111511            ),
    15121512            array(
    15131513                "'99 word",
    1514                 "&#8217;99 word",
     1514                '&#8217;99 word',
    15151515            ),
    15161516            array(
    15171517                "word '999 word", // Does not match the apos pattern, should be opening quote.
    1518                 "word &#8216;999 word",
     1518                'word &#8216;999 word',
    15191519            ),
    15201520            array(
    15211521                "word '99% word",
    1522                 "word &#8216;99% word",
     1522                'word &#8216;99% word',
    15231523            ),
    15241524            array(
    15251525                "word '9 word",
    1526                 "word &#8216;9 word",
     1526                'word &#8216;9 word',
    15271527            ),
    15281528            array(
    15291529                "word '99.9 word",
    1530                 "word &#8216;99.9 word",
     1530                'word &#8216;99.9 word',
    15311531            ),
    15321532            array(
    15331533                "word '999",
    1534                 "word &#8216;999",
     1534                'word &#8216;999',
    15351535            ),
    15361536            array(
    15371537                "word '9",
    1538                 "word &#8216;9",
     1538                'word &#8216;9',
    15391539            ),
    15401540            array(
    15411541                "in '4 years, 3 months,' Obama cut the deficit",
    1542                 "in &#8216;4 years, 3 months,&#8217; Obama cut the deficit",
     1542                'in &#8216;4 years, 3 months,&#8217; Obama cut the deficit',
    15431543            ),
    15441544            array(
    15451545                "testing's '4' through 'quotes'",
    1546                 "testing&#8217;s &#8216;4&#8217; through &#8216;quotes&#8217;",
     1546                'testing&#8217;s &#8216;4&#8217; through &#8216;quotes&#8217;',
    15471547            ),
    15481548        );
     
    15691569
    15701570    function filter_translate( $translations, $text, $context, $domain ) {
    1571         switch ($text) {
    1572             case '&#8211;' : return '!endash!';
    1573             case '&#8212;' : return '!emdash!';
    1574             case '&#8216;' : return '!openq1!';
    1575             case '&#8217;' :
     1571        switch ( $text ) {
     1572            case '&#8211;':
     1573                return '!endash!';
     1574            case '&#8212;':
     1575                return '!emdash!';
     1576            case '&#8216;':
     1577                return '!openq1!';
     1578            case '&#8217;':
    15761579                if ( 'apostrophe' == $context ) {
    15771580                    return '!apos!';
     
    15791582                    return '!closeq1!';
    15801583                }
    1581             case '&#8220;' : return '!openq2!';
    1582             case '&#8221;' : return '!closeq2!';
    1583             case '&#8242;' : return '!prime1!';
    1584             case '&#8243;' : return '!prime2!';
    1585             case '&#8217;tain&#8217;t,&#8217;twere,&#8217;twas,&#8217;tis,&#8217;twill,&#8217;til,&#8217;bout,&#8217;nuff,&#8217;round,&#8217;cause,&#8217;em' :
     1584            case '&#8220;':
     1585                return '!openq2!';
     1586            case '&#8221;':
     1587                return '!closeq2!';
     1588            case '&#8242;':
     1589                return '!prime1!';
     1590            case '&#8243;':
     1591                return '!prime2!';
     1592            case '&#8217;tain&#8217;t,&#8217;twere,&#8217;twas,&#8217;tis,&#8217;twill,&#8217;til,&#8217;bout,&#8217;nuff,&#8217;round,&#8217;cause,&#8217;em':
    15861593                return '!apos!tain!apos!t,!apos!twere,!apos!twas,!apos!tis,!apos!twill,!apos!til,!apos!bout,!apos!nuff,!apos!round,!apos!cause,!apos!em';
    1587             default : return $translations;
     1594            default:
     1595                return $translations;
    15881596        }
    15891597    }
     
    15931601            array(
    15941602                "word '99 word",
    1595                 "word !apos!99 word",
     1603                'word !apos!99 word',
    15961604            ),
    15971605            array(
    15981606                "word'99 word",
    1599                 "word!apos!99 word",
     1607                'word!apos!99 word',
    16001608            ),
    16011609            array(
    16021610                "word 'test sentence' word",
    1603                 "word !openq1!test sentence!closeq1! word",
     1611                'word !openq1!test sentence!closeq1! word',
    16041612            ),
    16051613            array(
    16061614                "'test sentence'",
    1607                 "!openq1!test sentence!closeq1!",
     1615                '!openq1!test sentence!closeq1!',
    16081616            ),
    16091617            array(
     
    16171625            array(
    16181626                "word 'word word",
    1619                 "word !openq1!word word",
     1627                'word !openq1!word word',
    16201628            ),
    16211629            array(
    16221630                "word ('word word",
    1623                 "word (!openq1!word word",
     1631                'word (!openq1!word word',
    16241632            ),
    16251633            array(
    16261634                "word ['word word",
    1627                 "word [!openq1!word word",
     1635                'word [!openq1!word word',
    16281636            ),
    16291637            array(
     
    16451653            array(
    16461654                "word 99' word",
    1647                 "word 99!prime1! word",
     1655                'word 99!prime1! word',
    16481656            ),
    16491657            array(
    16501658                "word99' word",
    1651                 "word99!prime1! word",
     1659                'word99!prime1! word',
    16521660            ),
    16531661            array(
    16541662                "word word's word",
    1655                 "word word!apos!s word",
     1663                'word word!apos!s word',
    16561664            ),
    16571665            array(
    16581666                "word word'. word",
    1659                 "word word!closeq1!. word",
     1667                'word word!closeq1!. word',
    16601668            ),
    16611669            array(
    16621670                "word ]'. word",
    1663                 "word ]!closeq1!. word",
     1671                'word ]!closeq1!. word',
    16641672            ),
    16651673            array(
     
    17091717            array(
    17101718                "word word' word",
    1711                 "word word!closeq1! word",
     1719                'word word!closeq1! word',
    17121720            ),
    17131721            array(
    17141722                "word word'. word",
    1715                 "word word!closeq1!. word",
     1723                'word word!closeq1!. word',
    17161724            ),
    17171725            array(
    17181726                "word word'.word",
    1719                 "word word!closeq1!.word",
     1727                'word word!closeq1!.word',
    17201728            ),
    17211729            array(
    17221730                "word word'",
    1723                 "word word!closeq1!",
     1731                'word word!closeq1!',
    17241732            ),
    17251733            array(
    17261734                "test sentence'.",
    1727                 "test sentence!closeq1!.",
     1735                'test sentence!closeq1!.',
    17281736            ),
    17291737            array(
    17301738                "test sentence.'",
    1731                 "test sentence.!closeq1!",
     1739                'test sentence.!closeq1!',
    17321740            ),
    17331741            array(
    17341742                "test sentence'. word",
    1735                 "test sentence!closeq1!. word",
     1743                'test sentence!closeq1!. word',
    17361744            ),
    17371745            array(
    17381746                "test sentence.' word",
    1739                 "test sentence.!closeq1! word",
     1747                'test sentence.!closeq1! word',
    17401748            ),
    17411749            array(
    17421750                "word 'tain't word",
    1743                 "word !apos!tain!apos!t word",
     1751                'word !apos!tain!apos!t word',
    17441752            ),
    17451753            array(
    17461754                "word 'twere word",
    1747                 "word !apos!twere word",
     1755                'word !apos!twere word',
    17481756            ),
    17491757            array(
     
    17531761            array(
    17541762                "word '42.00' word",
    1755                 "word !openq1!42.00!closeq1! word",
     1763                'word !openq1!42.00!closeq1! word',
    17561764            ),
    17571765            array(
    17581766                "word word'. word",
    1759                 "word word!closeq1!. word",
     1767                'word word!closeq1!. word',
    17601768            ),
    17611769            array(
    17621770                "word word'.word",
    1763                 "word word!closeq1!.word",
     1771                'word word!closeq1!.word',
    17641772            ),
    17651773            array(
    17661774                "word word', she said",
    1767                 "word word!closeq1!, she said",
     1775                'word word!closeq1!, she said',
    17681776            ),
    17691777        );
     
    18291837    function test_unregistered_shortcodes( $input, $output ) {
    18301838        add_filter( 'no_texturize_shortcodes', array( $this, 'filter_shortcodes' ), 10, 1 );
    1831    
     1839
    18321840        $output = $this->assertEquals( $output, wptexturize( $input ) );
    1833    
     1841
    18341842        remove_filter( 'no_texturize_shortcodes', array( $this, 'filter_shortcodes' ), 10, 1 );
    18351843        return $output;
    18361844    }
    1837    
     1845
    18381846    function filter_shortcodes( $disabled ) {
    18391847        $disabled[] = 'audio';
     
    19201928            array(
    19211929                "George's porch is 99' long.",
    1922                 "George&#8217;s porch is 99&#8242; long.",
     1930                'George&#8217;s porch is 99&#8242; long.',
    19231931            ),
    19241932            array(
     
    19281936            array(
    19291937                "I need 4 x 20' = 80' of trim.", // Works only with a space before the = char.
    1930                 "I need 4 x 20&#8242; = 80&#8242; of trim.",
     1938                'I need 4 x 20&#8242; = 80&#8242; of trim.',
    19311939            ),
    19321940            array(
     
    19361944            array(
    19371945                "'Etiam eu egestas dui 1234'",
    1938                 "&#8216;Etiam eu egestas dui 1234&#8217;",
     1946                '&#8216;Etiam eu egestas dui 1234&#8217;',
    19391947            ),
    19401948            array(
     
    19441952            array(
    19451953                "The doctor said, 'An average height is between 5' and 6' in study group 7'.  He then produced a 6' chart of averages.  A man of 7', incredibly, is very possible.",
    1946                 "The doctor said, &#8216;An average height is between 5&#8242; and 6&#8242; in study group 7&#8217;.  He then produced a 6&#8242; chart of averages.  A man of 7&#8242;, incredibly, is very possible.",
     1954                'The doctor said, &#8216;An average height is between 5&#8242; and 6&#8242; in study group 7&#8217;.  He then produced a 6&#8242; chart of averages.  A man of 7&#8242;, incredibly, is very possible.',
    19471955            ),
    19481956            array(
     
    19861994
    19871995    function filter_translate2( $translations, $text, $context, $domain ) {
    1988         switch ($text) {
    1989             case '&#8211;' : return '!endash!';
    1990             case '&#8212;' : return '!emdash!';
    1991             case '&#8216;' : return '!q1!';
    1992             case '&#8217;' :
     1996        switch ( $text ) {
     1997            case '&#8211;':
     1998                return '!endash!';
     1999            case '&#8212;':
     2000                return '!emdash!';
     2001            case '&#8216;':
     2002                return '!q1!';
     2003            case '&#8217;':
    19932004                if ( 'apostrophe' == $context ) {
    19942005                    return '!apos!';
     
    19962007                    return '!q1!';
    19972008                }
    1998             case '&#8220;' : return '!q2!';
    1999             case '&#8221;' : return '!q2!';
    2000             case '&#8242;' : return '!prime1!';
    2001             case '&#8243;' : return '!prime2!';
    2002             default : return $translations;
     2009            case '&#8220;':
     2010                return '!q2!';
     2011            case '&#8221;':
     2012                return '!q2!';
     2013            case '&#8242;':
     2014                return '!prime1!';
     2015            case '&#8243;':
     2016                return '!prime2!';
     2017            default:
     2018                return $translations;
    20032019        }
    20042020    }
     
    20082024            array(
    20092025                "George's porch is 99' long.",
    2010                 "George!apos!s porch is 99!prime1! long.",
     2026                'George!apos!s porch is 99!prime1! long.',
    20112027            ),
    20122028            array(
     
    20162032            array(
    20172033                "I need 4 x 20' = 80' of trim.", // Works only with a space before the = char.
    2018                 "I need 4 x 20!prime1! = 80!prime1! of trim.",
     2034                'I need 4 x 20!prime1! = 80!prime1! of trim.',
    20192035            ),
    20202036            array(
     
    20242040            array(
    20252041                "'Etiam eu egestas dui 1234'",
    2026                 "!q1!Etiam eu egestas dui 1234!q1!",
     2042                '!q1!Etiam eu egestas dui 1234!q1!',
    20272043            ),
    20282044            array(
     
    20322048            array(
    20332049                "The doctor said, 'An average height is between 5' and 6' in study group 7'.  He then produced a 6' chart of averages.  A man of 7', incredibly, is very possible.",
    2034                 "The doctor said, !q1!An average height is between 5!prime1! and 6!prime1! in study group 7!q1!.  He then produced a 6!prime1! chart of averages.  A man of 7!prime1!, incredibly, is very possible.",
     2050                'The doctor said, !q1!An average height is between 5!prime1! and 6!prime1! in study group 7!q1!.  He then produced a 6!prime1! chart of averages.  A man of 7!prime1!, incredibly, is very possible.',
    20352051            ),
    20362052            array(
     
    20632079
    20642080        // With Shortcodes Disabled
    2065         $regex = _get_wptexturize_split_regex( );
     2081        $regex  = _get_wptexturize_split_regex();
    20662082        $result = benchmark_pcre_backtracking( $regex, $input, 'split' );
    20672083        $this->assertLessThan( 200, $result );
     
    20692085        // With Shortcodes Enabled
    20702086        $shortcode_regex = _get_wptexturize_shortcode_regex( array_keys( $shortcode_tags ) );
    2071         $regex = _get_wptexturize_split_regex( $shortcode_regex );
    2072         $result = benchmark_pcre_backtracking( $regex, $input, 'split' );
     2087        $regex           = _get_wptexturize_split_regex( $shortcode_regex );
     2088        $result          = benchmark_pcre_backtracking( $regex, $input, 'split' );
    20732089        return $this->assertLessThan( 200, $result );
    20742090    }
Note: See TracChangeset for help on using the changeset viewer.