Index: third_party/WebKit/LayoutTests/fast/selectors/focus-within-iframe.html |
diff --git a/third_party/WebKit/LayoutTests/fast/selectors/focus-within-iframe.html b/third_party/WebKit/LayoutTests/fast/selectors/focus-within-iframe.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1e2f07528e366f61ad590b5f980b671ffb38322e |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/fast/selectors/focus-within-iframe.html |
@@ -0,0 +1,37 @@ |
+<!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> |