Make WordPress Core


Ignore:
Timestamp:
07/03/2014 04:21:18 PM (11 years ago)
Author:
SergeyBiryukov
Message:

Fix texturization of quotes when enclosed by angle brackets.

props miqrogroove.
fixes #28718.

File:
1 edited

Legend:

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

    r28860 r28971  
    118118        //$this->assertEquals('“Class of 99”', wptexturize("\"Class of 99\""));
    119119        $this->assertEquals('“Class of ’99”', wptexturize("\"Class of '99\""));
     120        $this->assertEquals('{“Class of ’99”}', wptexturize("{\"Class of '99\"}"));
     121        $this->assertEquals(' “Class of ’99” ', wptexturize(" \"Class of '99\" "));
     122        $this->assertEquals('}”Class of ’99″{', wptexturize("}\"Class of '99\"{")); // Not a quotation, may be between two other quotations.
    120123    }
    121124
     
    347350            ),
    348351            array(
    349                 "word <'word word", // Invalid HTML input?
    350                 "word <&#8216;word word",
    351             ),
    352             array(
    353                 "word &lt;'word word", // Valid HTML input triggers the apos in a word pattern
    354                 "word &lt;&#8217;word word",
     352                "word <'word word", // Invalid HTML input triggers the apos in a word pattern.
     353                "word <&#8217;word word",
     354            ),
     355            array(
     356                "word &lt;'word word", // Valid HTML input makes curly quotes.
     357                "word &lt;&#8216;word word",
    355358            ),
    356359            array(
     
    376379            array(
    377380                "word<'word word",
    378                 "word<&#8216;word word",
     381                "word<&#8217;word word",
    379382            ),
    380383            array(
    381384                "word&lt;'word word",
    382                 "word&lt;&#8217;word word",
     385                "word&lt;&#8216;word word",
    383386            ),
    384387            array(
     
    403406            ),
    404407            array(
    405                 "word <' word word", // Invalid HTML input?
    406                 "word <&#8216; word word",
    407             ),
    408             array(
    409                 "word &lt;' word word", // Valid HTML input triggers the closing single quote here
    410                 "word &lt;&#8217; word word",
     408                "word <' word word",
     409                "word <&#8217; word word",
     410            ),
     411            array(
     412                "word &lt;' word word",
     413                "word &lt;&#8216; word word",
    411414            ),
    412415            array(
     
    432435            array(
    433436                "word<' word word",
    434                 "word<&#8216; word word",
     437                "word<&#8217; word word",
    435438            ),
    436439            array(
    437440                "word&lt;' word word",
    438                 "word&lt;&#8217; word word",
     441                "word&lt;&#8216; word word",
    439442            ),
    440443            array(
     
    534537            ),
    535538            array(
    536                 "word word'. word", // Quotes with outside punctuation could end with apostrophes instead of closing quotes (may affect i18n)
    537                 "word word&#8217;. word",
    538             ),
    539             array(
    540                 "word ]'. word",
    541                 "word ]&#8217;. word",
    542             ),
    543             array(
    544                 "word )'. word",
    545                 "word )&#8217;. word",
    546             ),
    547             array(
    548                 "word }'. word",
    549                 "word }&#8217;. word",
    550             ),
    551             array(
    552                 "word >'. word", // Not tested
    553                 "word >&#8217;. word",
    554             ),
    555             array(
    556                 "word &gt;'. word",
    557                 "word &gt;&#8217;. word",
    558             ),
    559         );
    560     }
    561 
    562     /**
    563      * Double quote after a space or ([{< becomes &#8220; (opening_quote) if not followed by spaces
     539                "word'[ word", // Apostrophes are never followed by opening punctuation.
     540                "word'[ word",
     541            ),
     542            array(
     543                "word'( word",
     544                "word'( word",
     545            ),
     546            array(
     547                "word'{ word",
     548                "word'{ word",
     549            ),
     550            array(
     551                "word'&lt; word",
     552                "word'&lt; word",
     553            ),
     554            array(
     555                "word'< word", // Invalid HTML input does trigger the apos pattern.
     556                "word&#8217;< word",
     557            ),
     558        );
     559    }
     560
     561    /**
     562     * Double quote after a space or ([-{< becomes &#8220; (opening_quote) if not followed by spaces
    564563     *
    565564     * Checks all baseline patterns. If anything ever changes in wptexturize(), these tests may fail.
     
    587586            ),
    588587            array(
    589                 'word <"word word', // Invalid HTML input?
    590                 'word <&#8220;word word',
    591             ),
    592             array(
    593                 'word &lt;"word word', // Valid HTML input triggers the closing quote pattern
    594                 'word &lt;&#8221;word word',
     588                'word <"word word', // Invalid HTML input triggers the closing quote pattern.
     589                'word <&#8221;word word',
     590            ),
     591            array(
     592                'word &lt;"word word',
     593                'word &lt;&#8220;word word',
    595594            ),
    596595            array(
     
    599598            ),
    600599            array(
     600                'word -"word word',
     601                'word -&#8220;word word',
     602            ),
     603            array(
     604                'word-"word word',
     605                'word-&#8220;word word',
     606            ),
     607            array(
    601608                '"word word',
    602609                '&#8220;word word',
     
    611618            ),
    612619            array(
    613                 'word<"word word', // Invalid HTML input?
    614                 'word<&#8220;word word',
    615             ),
    616             array(
    617                 'word&lt;"word word', // Valid HTML input triggers the closing quote pattern
    618                 'word&lt;&#8221;word word',
     620                'word<"word word',
     621                'word<&#8221;word word',
     622            ),
     623            array(
     624                'word&lt;"word word',
     625                'word&lt;&#8220;word word',
    619626            ),
    620627            array(
     
    699706
    700707    /**
    701      * Test that single quotes followed by a space or a period become &#8217; (closing_single_quote)
     708     * Test that single quotes followed by a space or .,-)}]> become &#8217; (closing_single_quote)
    702709     *
    703710     * Checks all baseline patterns. If anything ever changes in wptexturize(), these tests may fail.
     
    727734                "word word', she said",
    728735                "word word&#8217;, she said",
     736            ),
     737            array(
     738                "word word'- word",
     739                "word word&#8217;- word",
     740            ),
     741            array(
     742                "word word') word",
     743                "word word&#8217;) word",
     744            ),
     745            array(
     746                "word word'} word",
     747                "word word&#8217;} word",
     748            ),
     749            array(
     750                "word word'] word",
     751                "word word&#8217;] word",
     752            ),
     753            array(
     754                "word word'&gt; word",
     755                "word word&#8217;&gt; word",
    729756            ),
    730757            array(
Note: See TracChangeset for help on using the changeset viewer.