Make WordPress Core


Ignore:
Timestamp:
11/19/2024 04:03:08 PM (4 months ago)
Author:
czapla
Message:

HTML API: Use case insensitive tag_name comparison in ::next_tag.

The HTML API ::next_tag method now performs case-insensitive matching when searching for tags by name. For example, searching for 'DIV' will match both '<div>' and '<DIV>' tags.

Props jonsurrell, dmsnell.
Fixes #62427.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/html-api/wpHtmlProcessor.php

    r59392 r59422  
    10431043        $this->assertEquals( $expected_token_counts, $processor->token_seen_count, 'Snapshot: ' . var_export( $processor->token_seen_count, true ) );
    10441044    }
     1045
     1046    /**
     1047     * Ensure that lowercased tag_name query matches tags case-insensitively.
     1048     *
     1049     * @group 62427
     1050     */
     1051    public function test_next_tag_lowercase_tag_name() {
     1052        // The upper case <DIV> is irrelevant but illustrates the case-insentivity.
     1053        $processor = WP_HTML_Processor::create_fragment( '<section><DIV>' );
     1054        $this->assertTrue( $processor->next_tag( array( 'tag_name' => 'div' ) ) );
     1055
     1056        // The upper case <RECT> is irrelevant but illustrates the case-insentivity.
     1057        $processor = WP_HTML_Processor::create_fragment( '<svg><RECT>' );
     1058        $this->assertTrue( $processor->next_tag( array( 'tag_name' => 'rect' ) ) );
     1059    }
    10451060}
Note: See TracChangeset for help on using the changeset viewer.