diff --git src/wp-includes/js/shortcode.js src/wp-includes/js/shortcode.js
index 677c99a..2d31921 100644
|
|
|
window.wp = window.wp || {}; |
| 37 | 37 | // If we matched a leading `[`, strip it from the match |
| 38 | 38 | // and increment the index accordingly. |
| 39 | 39 | if ( match[1] ) { |
| 40 | | result.match = result.match.slice( 1 ); |
| | 40 | result.content = result.content.slice( 1 ); |
| 41 | 41 | result.index++; |
| 42 | 42 | } |
| 43 | 43 | |
| 44 | 44 | // If we matched a trailing `]`, strip it from the match. |
| 45 | 45 | if ( match[7] ) { |
| 46 | | result.match = result.match.slice( 0, -1 ); |
| | 46 | result.content = result.content.slice( 0, -1 ); |
| 47 | 47 | } |
| 48 | 48 | |
| 49 | 49 | return result; |
| … |
… |
window.wp = window.wp || {}; |
| 353 | 353 | return text + '</' + options.tag + '>'; |
| 354 | 354 | } |
| 355 | 355 | }); |
| 356 | | }()); |
| 357 | | No newline at end of file |
| | 356 | }()); |
diff --git tests/qunit/wp-includes/js/shortcode.js tests/qunit/wp-includes/js/shortcode.js
index 29d72ac..72c8aa9 100644
|
|
|
jQuery( function() { |
| 57 | 57 | equal( result, undefined, 'foo shortcode not found when escaped with params' ); |
| 58 | 58 | }); |
| 59 | 59 | |
| | 60 | test( 'next() should find shortcodes that are incorrectly escaped by newlines', function() { |
| | 61 | var result; |
| | 62 | |
| | 63 | result = wp.shortcode.next( 'foo', 'this has the [\n[foo]] shortcode' ); |
| | 64 | equal( result.index, 15, 'shortcode found when incorrectly escaping the start of it' ); |
| | 65 | |
| | 66 | result = wp.shortcode.next( 'foo', 'this has the [[foo]\n] shortcode' ); |
| | 67 | equal( result.index, 14, 'shortcode found when incorrectly escaping the end of it' ); |
| | 68 | }); |
| | 69 | |
| | 70 | test( 'next() should still work when there are not equal ammounts of square brackets', function() { |
| | 71 | var result; |
| | 72 | |
| | 73 | result = wp.shortcode.next( 'foo', 'this has the [[foo] shortcode' ); |
| | 74 | equal( result.index, 14, 'shortcode found when there are offset square brackets' ); |
| | 75 | |
| | 76 | result = wp.shortcode.next( 'foo', 'this has the [foo]] shortcode' ); |
| | 77 | equal( result.index, 13, 'shortcode found when there are offset square brackets' ); |
| | 78 | }); |
| | 79 | |
| 60 | 80 | test( 'next() should find the second instances of the shortcode when the first one is escaped', function() { |
| 61 | 81 | var result; |
| 62 | 82 | |
| … |
… |
jQuery( function() { |
| 123 | 143 | equal( result, 'this bar has the [[foo param="bar"]] shortcode escaped', 'escaped foo with params not replaced but unescaped foo replaced' ); |
| 124 | 144 | }); |
| 125 | 145 | |
| | 146 | test( 'replace() should replace improperly escaped shortcodes that include newlines', function() { |
| | 147 | var result; |
| | 148 | |
| | 149 | result = wp.shortcode.replace( 'foo', 'this [foo] has the [[foo param="bar"]\n] shortcode ', shortcodeReplaceCallback ); |
| | 150 | equal( result, 'this bar has the [bar\n] shortcode ', 'escaping with newlines should not actually escape the content' ); |
| | 151 | |
| | 152 | result = wp.shortcode.replace( 'foo', 'this [foo] has the [\n[foo param="bar"]] shortcode ', shortcodeReplaceCallback ); |
| | 153 | equal( result, 'this bar has the [\nbar] shortcode ', 'escaping with newlines should not actually escape the content' ); |
| | 154 | }); |
| | 155 | |
| 126 | 156 | test( 'replace() should not replace the shortcode when it is an incomplete match', function() { |
| 127 | 157 | var result; |
| 128 | 158 | |