diff --git a/plugins/optimization-detective/class-od-html-tag-walker.php b/plugins/optimization-detective/class-od-html-tag-walker.php index 6147954204..735dffd3d7 100644 --- a/plugins/optimization-detective/class-od-html-tag-walker.php +++ b/plugins/optimization-detective/class-od-html-tag-walker.php @@ -338,7 +338,7 @@ private function is_foreign_element(): bool { public function get_xpath(): string { $xpath = ''; foreach ( $this->get_breadcrumbs() as list( $tag_name, $index ) ) { - $xpath .= sprintf( '/*[%d][self::%s]', $index, $tag_name ); + $xpath .= sprintf( '/*[%d][self::%s]', $index + 1, $tag_name ); } return $xpath; } diff --git a/tests/plugins/optimization-detective/class-od-html-tag-walker-tests.php b/tests/plugins/optimization-detective/class-od-html-tag-walker-tests.php index 07fe8e6a70..c01e8a1ef2 100644 --- a/tests/plugins/optimization-detective/class-od-html-tag-walker-tests.php +++ b/tests/plugins/optimization-detective/class-od-html-tag-walker-tests.php @@ -42,20 +42,20 @@ public function data_provider_sample_documents(): array { ', 'open_tags' => array( 'HTML', 'HEAD', 'META', 'TITLE', 'SCRIPT', 'STYLE', 'BODY', 'IFRAME', 'P', 'BR', 'IMG', 'FORM', 'TEXTAREA', 'FOOTER' ), 'xpaths' => array( - '/*[0][self::HTML]', - '/*[0][self::HTML]/*[0][self::HEAD]', - '/*[0][self::HTML]/*[0][self::HEAD]/*[0][self::META]', - '/*[0][self::HTML]/*[0][self::HEAD]/*[1][self::TITLE]', - '/*[0][self::HTML]/*[0][self::HEAD]/*[2][self::SCRIPT]', - '/*[0][self::HTML]/*[0][self::HEAD]/*[3][self::STYLE]', - '/*[0][self::HTML]/*[1][self::BODY]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IFRAME]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]/*[0][self::BR]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]/*[1][self::IMG]', - '/*[0][self::HTML]/*[1][self::BODY]/*[2][self::FORM]', - '/*[0][self::HTML]/*[1][self::BODY]/*[2][self::FORM]/*[0][self::TEXTAREA]', - '/*[0][self::HTML]/*[1][self::BODY]/*[3][self::FOOTER]', + '/*[1][self::HTML]', + '/*[1][self::HTML]/*[1][self::HEAD]', + '/*[1][self::HTML]/*[1][self::HEAD]/*[1][self::META]', + '/*[1][self::HTML]/*[1][self::HEAD]/*[2][self::TITLE]', + '/*[1][self::HTML]/*[1][self::HEAD]/*[3][self::SCRIPT]', + '/*[1][self::HTML]/*[1][self::HEAD]/*[4][self::STYLE]', + '/*[1][self::HTML]/*[2][self::BODY]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IFRAME]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]/*[1][self::BR]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]/*[2][self::IMG]', + '/*[1][self::HTML]/*[2][self::BODY]/*[3][self::FORM]', + '/*[1][self::HTML]/*[2][self::BODY]/*[3][self::FORM]/*[1][self::TEXTAREA]', + '/*[1][self::HTML]/*[2][self::BODY]/*[4][self::FOOTER]', ), ), 'foreign-elements' => array( @@ -81,19 +81,19 @@ public function data_provider_sample_documents(): array { ', 'open_tags' => array( 'HTML', 'HEAD', 'BODY', 'SVG', 'G', 'PATH', 'CIRCLE', 'G', 'RECT', 'MATH', 'MN', 'MSPACE', 'MN' ), 'xpaths' => array( - '/*[0][self::HTML]', - '/*[0][self::HTML]/*[0][self::HEAD]', - '/*[0][self::HTML]/*[1][self::BODY]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::SVG]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::SVG]/*[0][self::G]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::SVG]/*[0][self::G]/*[0][self::PATH]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::SVG]/*[0][self::G]/*[1][self::CIRCLE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::SVG]/*[0][self::G]/*[2][self::G]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::SVG]/*[0][self::G]/*[3][self::RECT]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::MATH]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::MATH]/*[0][self::MN]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::MATH]/*[1][self::MSPACE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::MATH]/*[2][self::MN]', + '/*[1][self::HTML]', + '/*[1][self::HTML]/*[1][self::HEAD]', + '/*[1][self::HTML]/*[2][self::BODY]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::SVG]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::SVG]/*[1][self::G]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::SVG]/*[1][self::G]/*[1][self::PATH]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::SVG]/*[1][self::G]/*[2][self::CIRCLE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::SVG]/*[1][self::G]/*[3][self::G]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::SVG]/*[1][self::G]/*[4][self::RECT]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::MATH]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::MATH]/*[1][self::MN]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::MATH]/*[2][self::MSPACE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::MATH]/*[3][self::MN]', ), ), 'closing-void-tag' => array( @@ -109,12 +109,12 @@ public function data_provider_sample_documents(): array { ', 'open_tags' => array( 'HTML', 'HEAD', 'BODY', 'SPAN', 'BR', 'SPAN' ), 'xpaths' => array( - '/*[0][self::HTML]', - '/*[0][self::HTML]/*[0][self::HEAD]', - '/*[0][self::HTML]/*[1][self::BODY]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::SPAN]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::BR]', - '/*[0][self::HTML]/*[1][self::BODY]/*[2][self::SPAN]', + '/*[1][self::HTML]', + '/*[1][self::HTML]/*[1][self::HEAD]', + '/*[1][self::HTML]/*[2][self::BODY]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::SPAN]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::BR]', + '/*[1][self::HTML]/*[2][self::BODY]/*[3][self::SPAN]', ), ), 'void-tags' => array( @@ -150,30 +150,30 @@ public function data_provider_sample_documents(): array { ', 'open_tags' => array( 'HTML', 'HEAD', 'BODY', 'AREA', 'BASE', 'BASEFONT', 'BGSOUND', 'BR', 'COL', 'EMBED', 'FRAME', 'HR', 'IMG', 'INPUT', 'KEYGEN', 'LINK', 'META', 'PARAM', 'SOURCE', 'TRACK', 'WBR', 'DIV', 'SPAN', 'EM' ), 'xpaths' => array( - '/*[0][self::HTML]', - '/*[0][self::HTML]/*[0][self::HEAD]', - '/*[0][self::HTML]/*[1][self::BODY]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::AREA]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::BASE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[2][self::BASEFONT]', - '/*[0][self::HTML]/*[1][self::BODY]/*[3][self::BGSOUND]', - '/*[0][self::HTML]/*[1][self::BODY]/*[4][self::BR]', - '/*[0][self::HTML]/*[1][self::BODY]/*[5][self::COL]', - '/*[0][self::HTML]/*[1][self::BODY]/*[6][self::EMBED]', - '/*[0][self::HTML]/*[1][self::BODY]/*[7][self::FRAME]', - '/*[0][self::HTML]/*[1][self::BODY]/*[8][self::HR]', - '/*[0][self::HTML]/*[1][self::BODY]/*[9][self::IMG]', - '/*[0][self::HTML]/*[1][self::BODY]/*[10][self::INPUT]', - '/*[0][self::HTML]/*[1][self::BODY]/*[11][self::KEYGEN]', - '/*[0][self::HTML]/*[1][self::BODY]/*[12][self::LINK]', - '/*[0][self::HTML]/*[1][self::BODY]/*[13][self::META]', - '/*[0][self::HTML]/*[1][self::BODY]/*[14][self::PARAM]', - '/*[0][self::HTML]/*[1][self::BODY]/*[15][self::SOURCE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[16][self::TRACK]', - '/*[0][self::HTML]/*[1][self::BODY]/*[17][self::WBR]', - '/*[0][self::HTML]/*[1][self::BODY]/*[18][self::DIV]', - '/*[0][self::HTML]/*[1][self::BODY]/*[18][self::DIV]/*[0][self::SPAN]', - '/*[0][self::HTML]/*[1][self::BODY]/*[18][self::DIV]/*[0][self::SPAN]/*[0][self::EM]', + '/*[1][self::HTML]', + '/*[1][self::HTML]/*[1][self::HEAD]', + '/*[1][self::HTML]/*[2][self::BODY]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::AREA]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::BASE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[3][self::BASEFONT]', + '/*[1][self::HTML]/*[2][self::BODY]/*[4][self::BGSOUND]', + '/*[1][self::HTML]/*[2][self::BODY]/*[5][self::BR]', + '/*[1][self::HTML]/*[2][self::BODY]/*[6][self::COL]', + '/*[1][self::HTML]/*[2][self::BODY]/*[7][self::EMBED]', + '/*[1][self::HTML]/*[2][self::BODY]/*[8][self::FRAME]', + '/*[1][self::HTML]/*[2][self::BODY]/*[9][self::HR]', + '/*[1][self::HTML]/*[2][self::BODY]/*[10][self::IMG]', + '/*[1][self::HTML]/*[2][self::BODY]/*[11][self::INPUT]', + '/*[1][self::HTML]/*[2][self::BODY]/*[12][self::KEYGEN]', + '/*[1][self::HTML]/*[2][self::BODY]/*[13][self::LINK]', + '/*[1][self::HTML]/*[2][self::BODY]/*[14][self::META]', + '/*[1][self::HTML]/*[2][self::BODY]/*[15][self::PARAM]', + '/*[1][self::HTML]/*[2][self::BODY]/*[16][self::SOURCE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[17][self::TRACK]', + '/*[1][self::HTML]/*[2][self::BODY]/*[18][self::WBR]', + '/*[1][self::HTML]/*[2][self::BODY]/*[19][self::DIV]', + '/*[1][self::HTML]/*[2][self::BODY]/*[19][self::DIV]/*[1][self::SPAN]', + '/*[1][self::HTML]/*[2][self::BODY]/*[19][self::DIV]/*[1][self::SPAN]/*[1][self::EM]', ), ), 'optional-closing-p' => array( @@ -222,73 +222,73 @@ public function data_provider_sample_documents(): array { ', 'open_tags' => array( 'HTML', 'HEAD', 'BODY', 'P', 'P', 'EM', 'P', 'P', 'ADDRESS', 'P', 'ARTICLE', 'P', 'ASIDE', 'P', 'BLOCKQUOTE', 'P', 'DETAILS', 'P', 'DIV', 'P', 'DL', 'P', 'FIELDSET', 'P', 'FIGCAPTION', 'P', 'FIGURE', 'P', 'FOOTER', 'P', 'FORM', 'P', 'H1', 'P', 'H2', 'P', 'H3', 'P', 'H4', 'P', 'H5', 'P', 'H6', 'P', 'HEADER', 'P', 'HGROUP', 'P', 'HR', 'P', 'MAIN', 'P', 'MENU', 'P', 'NAV', 'P', 'OL', 'P', 'PRE', 'P', 'SEARCH', 'P', 'SECTION', 'P', 'TABLE', 'P', 'UL' ), 'xpaths' => array( - '/*[0][self::HTML]', - '/*[0][self::HTML]/*[0][self::HEAD]', - '/*[0][self::HTML]/*[1][self::BODY]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::P]/*[0][self::EM]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::ADDRESS]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::ARTICLE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::ASIDE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::BLOCKQUOTE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::DETAILS]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::DIV]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::DL]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::FIELDSET]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::FIGCAPTION]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::FIGURE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::FOOTER]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::FORM]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::H1]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::H2]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::H3]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::H4]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::H5]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::H6]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::HEADER]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::HGROUP]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::HR]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::MAIN]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::MENU]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::NAV]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::OL]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::PRE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::SEARCH]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::SECTION]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::TABLE]', - '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::P]', - '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::UL]', + '/*[1][self::HTML]', + '/*[1][self::HTML]/*[1][self::HEAD]', + '/*[1][self::HTML]/*[2][self::BODY]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::P]/*[1][self::EM]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::ADDRESS]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::ARTICLE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::ASIDE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::BLOCKQUOTE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::DETAILS]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::DIV]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::DL]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::FIELDSET]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::FIGCAPTION]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::FIGURE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::FOOTER]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::FORM]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::H1]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::H2]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::H3]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::H4]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::H5]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::H6]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::HEADER]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::HGROUP]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::HR]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::MAIN]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::MENU]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::NAV]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::OL]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::PRE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::SEARCH]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::SECTION]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::TABLE]', + '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::P]', + '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::UL]', ), ), ); diff --git a/tests/plugins/optimization-detective/optimization-tests.php b/tests/plugins/optimization-detective/optimization-tests.php index d4d7f3a42f..a91aff8633 100644 --- a/tests/plugins/optimization-detective/optimization-tests.php +++ b/tests/plugins/optimization-detective/optimization-tests.php @@ -333,7 +333,7 @@ public function data_provider_test_od_optimize_template_output_buffer(): array { ... - Foo + Foo @@ -439,11 +439,11 @@ public function data_provider_test_od_optimize_template_output_buffer(): array { $viewport_width, array( array( - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', 'isLCP' => true, ), array( - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', 'isLCP' => false, ), ) @@ -491,7 +491,7 @@ public function data_provider_test_od_optimize_template_output_buffer(): array { $viewport_width, array( array( - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', 'isLCP' => true, ), ) @@ -539,7 +539,7 @@ public function data_provider_test_od_optimize_template_output_buffer(): array { $viewport_width, array( array( - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::DIV]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::DIV]', 'isLCP' => true, ), ) @@ -601,7 +601,7 @@ static function () use ( $mobile_breakpoint, $tablet_breakpoint ): array { $viewport_width, array( array( - 'xpath' => "/*[0][self::HTML]/*[1][self::BODY]/*[{$div_index}][self::DIV]", + 'xpath' => sprintf( '/*[1][self::HTML]/*[2][self::BODY]/*[%d][self::DIV]', $div_index + 1 ), 'isLCP' => true, ), ) @@ -656,7 +656,7 @@ static function () use ( $mobile_breakpoint, $tablet_breakpoint ): array { array( array( 'isLCP' => true, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), ) ) @@ -698,7 +698,7 @@ static function () use ( $mobile_breakpoint, $tablet_breakpoint ): array { array( array( 'isLCP' => true, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), ) ) @@ -729,7 +729,7 @@ static function () use ( $mobile_breakpoint, $tablet_breakpoint ): array { - Foo + Foo @@ -747,11 +747,11 @@ static function () use ( $mobile_breakpoint, $tablet_breakpoint ): array { array( array( 'isLCP' => true, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -763,11 +763,11 @@ static function () use ( $mobile_breakpoint, $tablet_breakpoint ): array { array( array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => true, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -794,8 +794,8 @@ static function () use ( $mobile_breakpoint, $tablet_breakpoint ): array { - Mobile Logo - Desktop Logo + Mobile Logo + Desktop Logo @@ -818,11 +818,11 @@ static function () { array( array( 'isLCP' => true, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -834,11 +834,11 @@ static function () { array( array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -850,11 +850,11 @@ static function () { array( array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => true, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -866,11 +866,11 @@ static function () { array( array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -897,8 +897,8 @@ static function () { - Mobile Logo - Desktop Logo + Mobile Logo + Desktop Logo @@ -921,11 +921,11 @@ static function () { array( array( 'isLCP' => true, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -937,11 +937,11 @@ static function () { array( array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -953,11 +953,11 @@ static function () { array( array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => true, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -969,11 +969,11 @@ static function () { array( array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[0][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[1][self::IMG]', ), array( 'isLCP' => false, - 'xpath' => '/*[0][self::HTML]/*[1][self::BODY]/*[1][self::IMG]', + 'xpath' => '/*[1][self::HTML]/*[2][self::BODY]/*[2][self::IMG]', ), ) ) @@ -1000,9 +1000,9 @@ static function () { - Mobile Logo + Mobile Logo

New paragraph since URL Metrics were captured!

- Desktop Logo + Desktop Logo