diff --git a/ext/dom/tests/modern/css_selectors/gh25210.phpt b/ext/dom/tests/modern/css_selectors/gh25210.phpt new file mode 100644 index 000000000000..4db166d78c49 --- /dev/null +++ b/ext/dom/tests/modern/css_selectors/gh25210.phpt @@ -0,0 +1,33 @@ +--TEST-- +GH-25210 (querySelectorAll() returns duplicates for selector lists with combinators) +--EXTENSIONS-- +dom +--FILE-- +' +); + +foreach ([$dom, $dom->querySelector('ul')] as $context) { + foreach (['ul li, ol li', 'ol li, ul li', 'li, li', 'ul li, ol > li', '#x, ul li'] as $selector) { + $ids = []; + foreach ($context->querySelectorAll($selector) as $node) { + $ids[] = $node->id ?: $node->textContent; + } + echo $selector, ': ', implode(' ', $ids), "\n"; + } +} + +?> +--EXPECT-- +ul li, ol li: ab x +ol li, ul li: ab x +li, li: ab x +ul li, ol > li: ab x +#x, ul li: ab x +ul li, ol li: ab x +ol li, ul li: ab x +li, li: ab x +ul li, ol > li: ab x +#x, ul li: ab x