Skip to content

Commit

Permalink
HTML API: Cleanup tests and list of void elements.
Browse files Browse the repository at this point in the history
This patch adds newly supported elements to tests that should have been updated
in recent PRs, but which were merged without that. Those PRs removed failing
tests showing that the elements were unsupported, but did not add the elements
to the list of supported ones.

It also removes some elements from the special-exclusion list of unsupported IN
BODY elements. These did not present in failing tests because earlier
conditions in the switch structure caught the tags before hitting the default
block.

Finally it adds some missing elements to the list of void elements. These
elements are not listed as void in the HTML specification because they are
deprecated. However, they are treated as void for the sake of HTML
serialization and the parsing rules indicate that they behave as void elements,
so it's safe to list them within the HTML API as void.

Developed in #5913

Fixes #60307



git-svn-id: https://develop.svn.wordpress.org/trunk@57319 602fd350-edb4-49c9-b593-d223f7449a82
  • Loading branch information
dmsnell committed Jan 20, 2024
1 parent 3d154d7 commit edcc85c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 10 deletions.
10 changes: 4 additions & 6 deletions src/wp-includes/html-api/class-wp-html-processor.php
Original file line number Diff line number Diff line change
Expand Up @@ -1002,24 +1002,20 @@ private function step_in_body() {
*/
switch ( $tag_name ) {
case 'APPLET':
case 'AREA':
case 'BASE':
case 'BASEFONT':
case 'BGSOUND':
case 'BODY':
case 'CAPTION':
case 'COL':
case 'COLGROUP':
case 'DD':
case 'DT':
case 'FORM':
case 'FRAME':
case 'FRAMESET':
case 'HEAD':
case 'HTML':
case 'IFRAME':
case 'INPUT':
case 'LI':
case 'LINK':
case 'MARQUEE':
case 'MATH':
Expand All @@ -1029,7 +1025,6 @@ private function step_in_body() {
case 'NOFRAMES':
case 'NOSCRIPT':
case 'OBJECT':
case 'OL':
case 'OPTGROUP':
case 'OPTION':
case 'PARAM':
Expand All @@ -1055,7 +1050,6 @@ private function step_in_body() {
case 'TITLE':
case 'TR':
case 'TRACK':
case 'UL':
case 'XMP':
$this->last_error = self::ERROR_UNSUPPORTED;
throw new WP_HTML_Unsupported_Exception( "Cannot process {$tag_name} element." );
Expand Down Expand Up @@ -1709,15 +1703,19 @@ public static function is_void( $tag_name ) {
return (
'AREA' === $tag_name ||
'BASE' === $tag_name ||
'BASEFONT' === $tag_name || // Obsolete but still treated as void.
'BGSOUND' === $tag_name || // Obsolete but still treated as void.
'BR' === $tag_name ||
'COL' === $tag_name ||
'EMBED' === $tag_name ||
'FRAME' === $tag_name ||
'HR' === $tag_name ||
'IMG' === $tag_name ||
'INPUT' === $tag_name ||
'LINK' === $tag_name ||
'KEYGEN' === $tag_name || // Obsolete but still treated as void.
'META' === $tag_name ||
'PARAM' === $tag_name || // Obsolete but still treated as void.
'SOURCE' === $tag_name ||
'TRACK' === $tag_name ||
'WBR' === $tag_name
Expand Down
14 changes: 10 additions & 4 deletions tests/phpunit/tests/html-api/wpHtmlProcessorBreadcrumbs.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public function data_single_tag_of_supported_elements() {
'ABBR',
'ACRONYM', // Neutralized.
'ADDRESS',
'AREA',
'ARTICLE',
'ASIDE',
'AUDIO',
Expand All @@ -48,6 +49,7 @@ public function data_single_tag_of_supported_elements() {
'BDO',
'BIG',
'BLINK', // Deprecated.
'BR',
'BUTTON',
'CANVAS',
'CENTER', // Neutralized.
Expand All @@ -65,6 +67,7 @@ public function data_single_tag_of_supported_elements() {
'DL',
'DT',
'EM',
'EMBED',
'FIELDSET',
'FIGCAPTION',
'FIGURE',
Expand All @@ -78,22 +81,25 @@ public function data_single_tag_of_supported_elements() {
'H6',
'HEADER',
'HGROUP',
'HR',
'I',
'IMG',
'INS',
'LI',
'ISINDEX', // Deprecated
'ISINDEX', // Deprecated.
'KBD',
'KEYGEN', // Deprecated.
'LABEL',
'LEGEND',
'LISTING', // Deprecated.
'MAIN',
'MAP',
'MARK',
'MENU',
'METER',
'MULTICOL', // Deprecated
'MULTICOL', // Deprecated.
'NAV',
'NEXTID', // Deprecated
'NEXTID', // Deprecated.
'OL',
'OUTPUT',
'P',
Expand All @@ -106,7 +112,7 @@ public function data_single_tag_of_supported_elements() {
'SECTION',
'SLOT',
'SMALL',
'SPACER', // Deprecated
'SPACER', // Deprecated.
'SPAN',
'STRIKE',
'STRONG',
Expand Down

0 comments on commit edcc85c

Please sign in to comment.