blob: 69d0b8de5d351295ec7183c2217bcdd9cbd75a2b [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<style>
input {
color: #FFFFFF;
background-color: #FFFFFF;
}
form:has(input:autofill) {
background-color: green;
color: white;
}
</style>
</head>
<body>
This tests that foreground and background colors properly change for autofilled inputs.<br>
<form name="form" id="form">
<input type="text" id="input" value="Field value" />
</form>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
test(() => {
testElement(input);
}, "Testing input style changing with UA stylesheet");
test(() => {
testElement(form);
}, "Testing form style changing with :has() selector");
function testElement(element) {
let computedStyle = getComputedStyle(element);
let originalForeground = computedStyle.color;
let originalBackground = computedStyle.backgroundColor;
if (window.internals)
window.internals.setAutofilled(input, true);
// Both the foreground and background colors should change when autofilled.
computedStyle = getComputedStyle(element);
assert_not_equals(computedStyle.color, originalForeground, "Text color should change when autofilled.");
assert_not_equals(computedStyle.backgroundColor, originalBackground, "Background color should change when autofilled.")
if (window.internals)
window.internals.setAutofilled(input, false);
// Colors should be restored.
computedStyle = getComputedStyle(element);
assert_equals(computedStyle.color, originalForeground, "Text color should be restored");
assert_equals(computedStyle.backgroundColor, originalBackground, "Background color should be restored")
}
</script>
</body>
</html>