| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>querySelector/querySelectorAll should not include their thisArg</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <!-- Regression test for https://github.com/jsdom/jsdom/issues/2296 --> |
| |
| <script> |
| "use strict"; |
| |
| setup({ single_test: true }); |
| |
| const button = document.createElement("button"); |
| |
| assert_equals(button.querySelector("*"), null, "querySelector, '*', before modification"); |
| assert_equals(button.querySelector("button"), null, "querySelector, 'button', before modification"); |
| assert_equals(button.querySelector("button, span"), null, "querySelector, 'button, span', before modification"); |
| assert_array_equals(button.querySelectorAll("*"), [], "querySelectorAll, '*', before modification"); |
| assert_array_equals(button.querySelectorAll("button"), [], "querySelectorAll, 'button', before modification"); |
| assert_array_equals( |
| button.querySelectorAll("button, span"), [], |
| "querySelectorAll, 'button, span', before modification" |
| ); |
| |
| |
| button.innerHTML = "text"; |
| |
| assert_equals(button.querySelector("*"), null, "querySelector, '*', after modification"); |
| assert_equals(button.querySelector("button"), null, "querySelector, 'button', after modification"); |
| assert_equals(button.querySelector("button, span"), null, "querySelector, 'button, span', after modification"); |
| assert_array_equals(button.querySelectorAll("*"), [], "querySelectorAll, '*', after modification"); |
| assert_array_equals(button.querySelectorAll("button"), [], "querySelectorAll, 'button', after modification"); |
| assert_array_equals( |
| button.querySelectorAll("button, span"), [], |
| "querySelectorAll, 'button, span', after modification" |
| ); |
| |
| done(); |
| </script> |