Changeset 61346
- Timestamp:
- 12/03/2025 05:25:34 PM (less than one hour ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/html-api/class-wp-html-tag-processor.php
r61003 r61346 2343 2343 2344 2344 if ( false === $existing_class && isset( $this->attributes['class'] ) ) { 2345 $existing_class = substr( 2346 $this->html, 2347 $this->attributes['class']->value_starts_at, 2348 $this->attributes['class']->value_length 2345 $existing_class = WP_HTML_Decoder::decode_attribute( 2346 substr( 2347 $this->html, 2348 $this->attributes['class']->value_starts_at, 2349 $this->attributes['class']->value_length 2350 ) 2349 2351 ); 2350 2352 } -
trunk/tests/phpunit/tests/html-api/wpHtmlTagProcessor.php
r61003 r61346 2888 2888 'HTML tag opening inside attribute value' => array( 2889 2889 'input' => '<pre id="<code" class="wp-block-code <code is poetry>"><code>This <is> a <strong is="true">thing.</code></pre><span>test</span>', 2890 'expected' => '<pre foo="bar" id="<code" class="wp-block-code <code is poetry& amp;gt; firstTag"><code class="secondTag">This <is> a <strong is="true">thing.</code></pre><span>test</span>',2890 'expected' => '<pre foo="bar" id="<code" class="wp-block-code <code is poetry> firstTag"><code class="secondTag">This <is> a <strong is="true">thing.</code></pre><span>test</span>', 2891 2891 ), 2892 2892 'HTML tag brackets in attribute values and data markup' => array( 2893 2893 'input' => '<pre id="<code->-block->" class="wp-block-code <code is poetry>"><code>This <is> a <strong is="true">thing.</code></pre><span>test</span>', 2894 'expected' => '<pre foo="bar" id="<code->-block->" class="wp-block-code <code is poetry& amp;gt; firstTag"><code class="secondTag">This <is> a <strong is="true">thing.</code></pre><span>test</span>',2894 'expected' => '<pre foo="bar" id="<code->-block->" class="wp-block-code <code is poetry> firstTag"><code class="secondTag">This <is> a <strong is="true">thing.</code></pre><span>test</span>', 2895 2895 ), 2896 2896 'Single and double quotes in attribute value' => array( … … 3030 3030 3031 3031 /** 3032 * @ticket 64340 3033 */ 3034 public function test_class_changes_produce_correct_html() { 3035 $processor = new WP_HTML_Tag_Processor( '<div class="&">' ); 3036 $processor->next_tag(); 3037 3038 $processor->add_class( '"' ); 3039 $processor->get_updated_html(); 3040 3041 $processor->add_class( 'OK' ); 3042 $processor->get_updated_html(); 3043 3044 $this->assertTrue( $processor->has_class( '&' ), 'Missing expected "&" class.' ); 3045 $this->assertTrue( $processor->has_class( '"' ), 'Missing expected \'"\' class.' ); 3046 $this->assertTrue( $processor->has_class( 'OK' ), 'Missing expected "OK" class.' ); 3047 3048 $expected = '<div class="& " OK">'; 3049 $this->assertEqualHTML( 3050 $expected, 3051 $processor->get_updated_html(), 3052 '<body>', 3053 'HTML was not correctly updated after adding classes.' 3054 ); 3055 3056 $processor->remove_class( '&' ); 3057 $processor->get_updated_html(); 3058 3059 $processor->remove_class( '"' ); 3060 $processor->get_updated_html(); 3061 3062 $this->assertFalse( $processor->has_class( '&' ) ); 3063 $this->assertFalse( $processor->has_class( '"' ) ); 3064 $this->assertTrue( $processor->has_class( 'OK' ) ); 3065 3066 $expected = '<div class="OK">'; 3067 $this->assertEqualHTML( 3068 $expected, 3069 $processor->get_updated_html(), 3070 '<body>', 3071 'HTML was not correctly updated after removing classes.' 3072 ); 3073 } 3074 3075 /** 3032 3076 * @covers WP_HTML_Tag_Processor::next_tag 3033 3077 */
Note: See TracChangeset
for help on using the changeset viewer.