Skip to content

Commit

Permalink
Test linting updates from Core patch
Browse files Browse the repository at this point in the history
  • Loading branch information
dmsnell committed Jul 26, 2023
1 parent 34cc965 commit a921947
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ class WP_HTML_Active_Formatting_Elements {
*
* @param WP_HTML_Token $token Look for this node in the stack.
* @return bool Whether the referenced node is in the stack of active formatting elements.
*
*/
public function contains_node( $token ) {
foreach ( $this->walk_up() as $item ) {
Expand Down Expand Up @@ -153,7 +152,7 @@ public function remove_node( $token ) {
* > EM -> STRONG -> A ->
*
* To start with the most-recently added element and walk towards the top,
* @see WP_HTML_Active_Formatting_Elements::walk_up
* {@see WP_HTML_Active_Formatting_Elements::walk_up}.
*
* @since 6.4.0
*/
Expand All @@ -180,7 +179,7 @@ public function walk_down() {
* > A -> STRONG -> EM ->
*
* To start with the first added element and walk towards the bottom,
* @see WP_HTML_Active_Formatting_Elements::walk_down
* {@see WP_HTML_Active_Formatting_Elements::walk_down}.
*
* @since 6.4.0
*/
Expand Down
28 changes: 21 additions & 7 deletions lib/compat/wordpress-6.4/html-api/class-wp-html-open-elements.php
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ public function current_node() {
* @param string[] $termination_list List of elements that terminate the search.
* @return bool Whether the element was found in a specific scope.
*/
public function has_element_in_specific_scope( $tag_name, $termination_list ) {
public function has_element_in_specific_scope( $tag_name, $termination_list ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
foreach ( $this->walk_up() as $node ) {
if ( $node->node_name === $tag_name ) {
return true;
Expand All @@ -138,6 +138,7 @@ public function has_element_in_scope( $tag_name ) {
return $this->has_element_in_specific_scope(
$tag_name,
array(

/*
* Because it's not currently possible to encounter
* one of the termination elements, they don't need
Expand All @@ -156,11 +157,15 @@ public function has_element_in_scope( $tag_name ) {
*
* @see https://html.spec.whatwg.org/#has-an-element-in-list-item-scope
*
* @throws WP_HTML_Unsupported_Exception Always until this function is implemented.
*
* @param string $tag_name Name of tag to check.
* @return bool Whether given element is in scope.
*/
public function has_element_in_list_item_scope( $tag_name ) {
public function has_element_in_list_item_scope( $tag_name ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
throw new WP_HTML_Unsupported_Exception( 'Cannot process elements depending on list item scope.' );

return false; // The linter requires this unreachable code until the function is implemented and can return.
}

/**
Expand All @@ -177,6 +182,7 @@ public function has_element_in_button_scope( $tag_name ) {
return $this->has_element_in_specific_scope(
$tag_name,
array(

/*
* Because it's not currently possible to encounter
* one of the termination elements, they don't need
Expand All @@ -195,11 +201,15 @@ public function has_element_in_button_scope( $tag_name ) {
*
* @see https://html.spec.whatwg.org/#has-an-element-in-table-scope
*
* @throws WP_HTML_Unsupported_Exception Always until this function is implemented.
*
* @param string $tag_name Name of tag to check.
* @return bool Whether given element is in scope.
*/
public function has_element_in_table_scope( $tag_name ) {
public function has_element_in_table_scope( $tag_name ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
throw new WP_HTML_Unsupported_Exception( 'Cannot process elements depending on table scope.' );

return false; // The linter requires this unreachable code until the function is implemented and can return.
}

/**
Expand All @@ -209,11 +219,15 @@ public function has_element_in_table_scope( $tag_name ) {
*
* @see https://html.spec.whatwg.org/#has-an-element-in-select-scope
*
* @throws WP_HTML_Unsupported_Exception Always until this function is implemented.
*
* @param string $tag_name Name of tag to check.
* @return bool Whether given element is in scope.
*/
public function has_element_in_select_scope( $tag_name ) {
public function has_element_in_select_scope( $tag_name ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
throw new WP_HTML_Unsupported_Exception( 'Cannot process elements depending on select scope.' );

return false; // The linter requires this unreachable code until the function is implemented and can return.
}

/**
Expand All @@ -223,7 +237,7 @@ public function has_element_in_select_scope( $tag_name ) {
*
* @see https://html.spec.whatwg.org/#has-an-element-in-button-scope
*
* @return bool
* @return bool Whether a P is in BUTTON scope.
*/
public function has_p_in_button_scope() {
return $this->has_p_in_button_scope;
Expand Down Expand Up @@ -324,7 +338,7 @@ public function remove_node( $token ) {
* > EM -> STRONG -> A ->
*
* To start with the most-recently added element and walk towards the top,
* @see WP_HTML_Open_Elements::walk_up
* {@see WP_HTML_Open_Elements::walk_up}.
*
* @since 6.4.0
*/
Expand All @@ -351,7 +365,7 @@ public function walk_down() {
* > A -> STRONG -> EM ->
*
* To start with the first added element and walk towards the bottom,
* @see WP_HTML_Open_Elements::walk_down
* {@see WP_HTML_Open_Elements::walk_down}.
*
* @since 6.4.0
*/
Expand Down
27 changes: 13 additions & 14 deletions lib/compat/wordpress-6.4/html-api/class-wp-html-processor.php
Original file line number Diff line number Diff line change
Expand Up @@ -236,16 +236,16 @@ class WP_HTML_Processor extends WP_HTML_Tag_Processor {
* @return WP_HTML_Processor|null The created processor if successful, otherwise null.
*/
public static function createFragment( $html, $context = '<body>', $encoding = 'UTF-8' ) {
if ( '<body>' !== $context ) {
if ( '<body>' !== $context || 'UTF-8' !== $encoding ) {
return null;
}

$p = new self( $html, self::CONSTRUCTOR_UNLOCK_CODE );
$p = new self( $html, self::CONSTRUCTOR_UNLOCK_CODE );
$p->state->context_node = array( 'BODY', array() );
$p->state->insertion_mode = WP_HTML_Processor_State::INSERTION_MODE_IN_BODY;

// @TODO: Create "fake" bookmarks for non-existent but implied nodes.
$p->bookmarks['root-node'] = new WP_HTML_Span( 0, 0 );
$p->bookmarks['root-node'] = new WP_HTML_Span( 0, 0 );
$p->bookmarks['context-node'] = new WP_HTML_Span( 0, 0 );

$p->state->stack_of_open_elements->push(
Expand Down Expand Up @@ -336,7 +336,7 @@ public function get_last_error() {
*
* @since 6.4.0
*
* @throws WP_HTML_Unsupported_Exception
* @throws Exception When unable to allocate a bookmark for the next token in the input HTML document.
*
* @param array|string|null $query {
* Optional. Which tag name to find, having which class, etc. Default is to find any tag.
Expand Down Expand Up @@ -414,7 +414,7 @@ public function next_tag( $query = null ) {
*
* @since 6.4.0
*
* @throws Exception
* @throws Exception When unable to allocate a bookmark for the next token in the input HTML document.
*
* @see self::PROCESS_NEXT_NODE
* @see self::REPROCESS_CURRENT_NODE
Expand Down Expand Up @@ -500,7 +500,7 @@ public function get_breadcrumbs() {
*
* @since 6.4.0
*
* @throws WP_HTML_Unsupported_Exception
* @throws WP_HTML_Unsupported_Exception When encountering unsupported HTML input.
*
* @see https://html.spec.whatwg.org/#parsing-main-inbody
* @see self::step
Expand Down Expand Up @@ -645,7 +645,7 @@ private function step_in_body() {
*
* @since 6.4.0
*
* @throws Exception
* @throws Exception When unable to allocate requested bookmark.
*
* @return string|false Name of created bookmark, or false if unable to create.
*/
Expand Down Expand Up @@ -863,7 +863,7 @@ public function set_bookmark( $bookmark_name ) {
*
* @since 6.4.0
*
* @throws WP_HTML_Unsupported_Exception
* @throws WP_HTML_Unsupported_Exception When encountering unsupported HTML input.
*
* @see https://html.spec.whatwg.org/#close-a-p-element
*/
Expand All @@ -877,8 +877,6 @@ private function close_a_p_element() {
*
* @since 6.4.0
*
* @throws Exception
*
* @see https://html.spec.whatwg.org/#generate-implied-end-tags
*
* @param string|null $except_for_this_element Perform as if this element doesn't exist in the stack of open elements.
Expand Down Expand Up @@ -906,7 +904,7 @@ private function generate_implied_end_tags( $except_for_this_element = null ) {
*
* @since 6.4.0
*
* @throws WP_HTML_Unsupported_Exception
* @throws WP_HTML_Unsupported_Exception When encountering unsupported HTML input.
*
* @see https://html.spec.whatwg.org/#reconstruct-the-active-formatting-elements
*
Expand All @@ -923,6 +921,7 @@ private function reconstruct_active_formatting_elements() {

$last_entry = $this->state->active_formatting_elements->current_node();
if (

/*
* > If the last (most recently added) entry in the list of active formatting elements is a marker;
* > stop this algorithm.
Expand All @@ -948,7 +947,7 @@ private function reconstruct_active_formatting_elements() {
*
* @since 6.4.0
*
* @throws WP_HTML_Unsupported_Exception
* @throws WP_HTML_Unsupported_Exception When encountering unsupported HTML input.
*
* @see https://html.spec.whatwg.org/#adoption-agency-algorithm
*/
Expand Down Expand Up @@ -1169,15 +1168,15 @@ public static function is_special( $tag_name ) {
'WBR' === $tag_name ||
'XMP' === $tag_name ||

// MathML
// MathML.
'MI' === $tag_name ||
'MO' === $tag_name ||
'MN' === $tag_name ||
'MS' === $tag_name ||
'MTEXT' === $tag_name ||
'ANNOTATION-XML' === $tag_name ||

// SVG
// SVG.
'FOREIGNOBJECT' === $tag_name ||
'DESC' === $tag_name ||
'TITLE' === $tag_name
Expand Down

0 comments on commit a921947

Please sign in to comment.