diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/css/css-align/resources | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-align/resources')
-rw-r--r-- | testing/web-platform/tests/css/css-align/resources/alignment-parsing-utils.js | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-align/resources/alignment-parsing-utils.js b/testing/web-platform/tests/css/css-align/resources/alignment-parsing-utils.js new file mode 100644 index 0000000000..2a77b4d79b --- /dev/null +++ b/testing/web-platform/tests/css/css-align/resources/alignment-parsing-utils.js @@ -0,0 +1,132 @@ +var selfPositionClasses = {"Start":"start", "End":"end", "SelfStart":"self-start", "SelfEnd":"self-end", "Center":"center", "FlexStart":"flex-start", "FlexEnd":"flex-end"}; +var contentPositionClasses = {"Start":"start", "End":"end", "Center":"center", "FlexStart":"flex-start", "FlexEnd":"flex-end"}; +var distributionClasses = {"Stretch":"stretch", "SpaceAround":"space-around", "SpaceBetween":"space-between", "SpaceEvenly":"space-evenly"}; +var baselineClasses = {"Baseline":"baseline", "FirstBaseline":"first baseline", "LastBaseline":"last baseline"}; +var overflowClasses = {"SafeFlexEnd":"safe flex-end", "UnsafeEnd":"unsafe end", "SafeEnd":"safe end", "UnsafeFlexStart":"unsafe flex-start", "SafeCenter":"safe center"}; +var legacyClasses = {"LegacyLeft":"legacy left", "LegacyCenter":"legacy center", "LegacyRight":"legacy right"}; + +var invalidPositionValues = ["auto safe", "auto left", "normal unsafe", "normal stretch", "baseline normal", + "baseline center", "first baseline center", "last baseline center", "baseline last", + "baseline first", "stretch unsafe", "stretch right", "unsafe unsafe", "unsafe safe", + "center start", "unsafe stretch", "safe stretch", "baseline safe", "unsafe baseline", + "unsafe safe left", "unsafe left safe", "left safe unsafe safe", "start safe", "safe"]; +var invalidLegacyValues = ["legacy start", "legacy end", "legacy right unsafe", "legacy auto", "legacy stretch", + "legacy left right"]; +var invalidDistributionValues = ["space-between left", "space-around center", "space-evenly right", + "stretch safe start", "space-around unsafe", "space-evenly safe flex-start", + "space-between safe", "space-between stretch", "stretch start", + "stretch baseline", "first baseline space-around"]; + +function checkPlaceShorhand(shorthand, shorthandValue, alignValue, justifyValue) +{ + var div = document.createElement("div"); + div.style[shorthand] = shorthandValue; + document.body.appendChild(div); + + if (alignValue === "first baseline") + alignValue = "baseline"; + if (justifyValue === "first baseline") + justifyValue = "baseline"; + if (justifyValue === "") + justifyValue = alignValue; + + let specifiedValue = (alignValue + " " + justifyValue).trim(); + if (alignValue === justifyValue) + specifiedValue = alignValue; + + var resolvedValue = getComputedStyle(div).getPropertyValue(shorthand); + var expectedResolvedValue = (alignValue + " " + justifyValue).trim(); + if (alignValue === justifyValue) + expectedResolvedValue = alignValue; + + assert_equals(div.style[shorthand], specifiedValue, shorthandValue + " specified value"); + // FIXME: We need https://github.com/w3c/csswg-drafts/issues/1041 to clarify which + // value is expected for the shorthand's 'resolved value". + assert_in_array(resolvedValue, ["", expectedResolvedValue], shorthand + " resolved value"); +} + +function checkPlaceShorhandLonghands(shorthand, alignLonghand, justifyLonghand, alignValue, justifyValue = "") +{ + var div = document.createElement("div"); + div.setAttribute("style", shorthand + ": " + alignValue + " " + justifyValue); + document.body.appendChild(div); + if (alignValue === "first baseline") + alignValue = "baseline"; + if (justifyValue === "first baseline") + justifyValue = "baseline"; + if (justifyValue === "") + justifyValue = alignValue; + assert_equals(div.style[alignLonghand], + alignValue, alignLonghand + " expanded value"); + assert_equals(div.style[justifyLonghand], + justifyValue, justifyLonghand + " expanded value"); +} + +function checkPlaceShorthandInvalidValues(shorthand, alignLonghand, justifyLonghand, value) +{ + var div = document.createElement("div"); + var css = alignLonghand + ": start; " + justifyLonghand + ": end;" + shorthand + ": " + value; + div.setAttribute("style", css); + document.body.appendChild(div); + assert_equals(div.style[alignLonghand], + "start", alignLonghand + " expanded value"); + assert_equals(div.style[justifyLonghand], + "end", justifyLonghand + " expanded value"); +} + +function checkValues(element, property, propertyID, value, computedValue) +{ + window.element = element; + var elementID = element.id || "element"; + assert_equals(eval('element.style.' + property), value, propertyID + ' specified value is not what it should.'); + assert_equals(eval("window.getComputedStyle(" + elementID + ", '').getPropertyValue('" + propertyID + "')"), computedValue, propertyID + " computed style is not what is should."); +} + +function checkBadValues(element, property, propertyID, value) +{ + var elementID = element.id || "element"; + element.style[property] = ""; + var initialValue = eval("window.getComputedStyle(" + elementID + " , '').getPropertyValue('" + propertyID + "')"); + element.style[property] = value; + checkValues(element, property, propertyID, "", initialValue); +} + +function checkInitialValues(element, property, propertyID, value, initial) +{ + element.style[property] = value; + checkValues(element, property, propertyID, value, value); + element.style[property] = "initial"; + checkValues(element, property, propertyID, "initial", initial); +} + +function checkInheritValues(property, propertyID, value) +{ + var parentElement = document.createElement("div"); + document.body.appendChild(parentElement); + parentElement.style[property] = value; + checkValues(parentElement, property, propertyID, value, value); + + var element = document.createElement("div"); + parentElement.appendChild(element); + element.style[property] = "inherit"; + checkValues(element, property, propertyID, "inherit", value); +} + +function checkLegacyValues(property, propertyID, value) +{ + var parentElement = document.createElement("div"); + document.body.appendChild(parentElement); + parentElement.style[property] = value; + checkValues(parentElement, property, propertyID, value, value); + + var element = document.createElement("div"); + parentElement.appendChild(element); + checkValues(element, property, propertyID, "", value); +} + +function checkSupportedValues(elementID, property) +{ + var value = eval("window.getComputedStyle(" + elementID + " , '').getPropertyValue('" + property + "')"); + var value1 = eval("window.getComputedStyle(" + elementID + " , '')"); + shouldBeTrue("CSS.supports('" + property + "', '" + value + "')"); +} |