WordPress.org

Make WordPress Core

Ticket #27386: 27386.2.patch

File 27386.2.patch, 2.8 KB (added by adamsilverstein, 7 years ago)

add qunit test for word count

  • src/wp-admin/js/word-count.js

     
    66                settings : {
    77                        strip : /<[a-zA-Z\/][^<>]*>/g, // strip HTML tags
    88                        clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc.
     9                        shortcode : /\[[a-zA-z0-9\/][^\[\]]*\]/g,       // regexp to detect shortcodes
    910                        w : /\S\s+/g, // word-counting regexp
    1011                        c : /\S/g // char-counting regexp for asian languages
    1112                },
     
    2930                                if ( tx ) {
    3031                                        tx = tx.replace( t.settings.strip, ' ' ).replace( /&nbsp;|&#160;/gi, ' ' );
    3132                                        tx = tx.replace( t.settings.clean, '' );
     33                                        tx = tx.replace( t.settings.shortcode, '' );
    3234                                        tx.replace( t.settings[type], function(){tc++;} );
    3335                                }
    3436                                w.html(tc.toString());
  • tests/qunit/index.html

     
    77  <script src="../../src/wp-includes/js/jquery/jquery.js"></script>
    88  <script src="../../src/wp-includes/js/underscore.min.js"></script>
    99  <script src="../../src/wp-includes/js/zxcvbn.min.js"></script>
    10        
     10
     11
    1112  <!-- QUnit -->
    1213  <link rel="stylesheet" href="vendor/qunit.css" type="text/css" media="screen" />
    1314  <script src="vendor/qunit.js"></script>
     
    1516  <!-- Tested files -->
    1617  <script src="../../src/wp-admin/js/password-strength-meter.js"></script>
    1718  <script src="../../src/wp-includes/js/shortcode.js"></script>
     19  <script src="../../src/wp-admin/js/word-count.js"></script>
    1820
    1921  <!-- Unit tests -->
    2022  <script src="wp-admin/js/password-strength-meter.js"></script>
    2123  <script src="wp-includes/js/shortcode.js"></script>
     24  <script src="wp-includes/js/word-count.js"></script>
    2225
    2326</head>
    2427<body>
     
    2932    <ol id="qunit-tests"></ol>
    3033    <div id="qunit-fixture"></div>
    3134    <p><a href="editor">TinyMCE tests</a></p>
     35    <div class="word-count"></div>
    3236  </div>
    3337</body>
    3438</html>
  • tests/qunit/wp-includes/js/word-count.js

     
     1/* global wp, jQuery */
     2
     3jQuery( function() {
     4        module( 'word-count' );
     5
     6                asyncTest( 'asynchronous test: verify word-count skips shortcodes', function() {
     7                        var result;
     8
     9                        // Perform a count and check the result - verify shortcodes are not counted
     10                        wpWordCount.wc( ' there are only ten words [foo] other [gallery columns=3] than [form test=a] the shortcode items ', 'w' );
     11                        setTimeout( function(){
     12                                result = jQuery( '.word-count' ).html();
     13                                equal( result, '10', 'Ten words counted without shortcodes' );
     14                                start();
     15                        }, 100 );
     16
     17                });
     18
     19});