| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>CSS Overflow Test: Overflow longhand accepts two values</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="author" title="Emilio Cobos Álvarez <emilio@crisal.io>"> |
| <link rel="help" href="https://drafts.csswg.org/css-overflow/#propdef-overflow"> |
| <div id="test-div"></div> |
| <script> |
| let div = document.getElementById("test-div"); |
| function testOverflowShorthand(x, y) { |
| test(function() { |
| div.style.overflowX = x; |
| div.style.overflowY = y; |
| |
| let expectedX = getComputedStyle(div).overflowX; |
| let expectedY = getComputedStyle(div).overflowY; |
| let expectedComputedSerialization = expectedX == expectedY ? expectedX : `${expectedX} ${expectedY}`; |
| let expectedSpecifiedSerialization = x == y ? x : `${x} ${y}`; |
| |
| assert_equals(div.style.overflow, expectedSpecifiedSerialization); |
| assert_equals(getComputedStyle(div).overflow, expectedComputedSerialization); |
| |
| div.style.overflowX = ""; |
| div.style.overflowY = ""; |
| assert_equals(div.style.overflow, ""); |
| |
| div.style.overflow = `${x} ${y}`; |
| assert_equals(div.style.overflow, expectedSpecifiedSerialization); |
| assert_equals(div.style.overflowX, x); |
| assert_equals(div.style.overflowY, y); |
| assert_equals(getComputedStyle(div).overflow, expectedComputedSerialization); |
| assert_equals(getComputedStyle(div).overflowX, expectedX); |
| assert_equals(getComputedStyle(div).overflowY, expectedY); |
| }, `overflow: ${x} ${y} works`); |
| } |
| |
| let OVERFLOW_VALUES = [ "auto", "hidden", "scroll", "visible" ]; |
| for (let x of OVERFLOW_VALUES) |
| for (let y of OVERFLOW_VALUES) |
| testOverflowShorthand(x, y); |
| </script> |