mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 22:28:59 +02:00
Automatic update from web-platform-tests[css-align] Simple syntax for the Alignment shorthands Now that the issue [1] about the syntax ambiguity has been resolved we don“t need to use the custom syntax anymore. The Alignment shorthands use now the simple syntax, defined based on the longhands' syntax. Since we allow all the values valid for each longhand, we'll update in this CL the corresponding web platform tests. Additionally, this CL updates also the shorthand serialization tests [2], which didn't consider the new value 'legacy' for justify-items (and place-items) due to the bug [3] Firefox still has pending to be fixed. [1] https://github.com/w3c/csswg-drafts/issues/1001 [2] css/css-align/default-alignment/shorthand-serialization-001.html [3] https://bugzilla.mozilla.org/show_bug.cgi?id=1363875 Bug: 832503, 829806 Change-Id: I53f803b384cc55b0b38292540262e54f803586da Reviewed-on: https://chromium-review.googlesource.com/1013710 Commit-Queue: Javier Fernandez <jfernandez@igalia.com> Reviewed-by: Rune Lillesveen <futhark@chromium.org> Reviewed-by: Manuel Rego Casasnovas <rego@igalia.com> Cr-Commit-Position: refs/heads/master@{#552293} -- wpt-commits: 4736f3fac17173f5e72c307ae586816169873fde wpt-pr: 10502
130 lines
6.4 KiB
JavaScript
130 lines
6.4 KiB
JavaScript
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();
|
|
|
|
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 + "')");
|
|
}
|