blob: 1e2f07528e366f61ad590b5f980b671ffb38322e [file] [log] [blame]
<!DOCTYPE html>
<meta charset="utf-8">
<script src=../../resources/testharness.js></script>
<script src=../../resources/testharnessreport.js></script>
<iframe id="frame" srcdoc="
<!DOCTYPE html>
<style>
input {
background-color: rgb(50, 150, 200);
}
input:focus-within {
background-color: rgb(250, 200, 150);
}
</style>
<input id='input' />
"></iframe>
<script>
test(() => assert_not_equals(window.internals, undefined),
"Check window.internals is available");
const frame = document.getElementById("frame");
frame.addEventListener("load", () => {
const input = frame.contentDocument.getElementById("input");
input.focus();
test(() => assert_equals(frame.contentWindow.getComputedStyle(input).backgroundColor, "rgb(250, 200, 150)"),
"Check ':focus-within' is applied after focusing the input");
frame.contentWindow.internals.setFocused(false);
test(() => assert_equals(frame.contentWindow.getComputedStyle(input).backgroundColor, "rgb(50, 150, 200)"),
"Check ':focus-within' is not applied when the frame is unfocused");
frame.contentWindow.internals.setFocused(true);
test(() => assert_equals(frame.contentWindow.getComputedStyle(input).backgroundColor, "rgb(250, 200, 150)"),
"Check ':focus-within' is applied when the frame is focsued again");
});
</script>