| <!DOCTYPE html> |
| <html> |
| <head> |
| <style> |
| #placeContentNormal { |
| place-content: normal; |
| } |
| #placeContentStart { |
| place-content: start; |
| } |
| #placeContentFlexStart { |
| place-content: flex-start; |
| } |
| #placeContentEnd { |
| place-content: end; |
| } |
| #placeContentSpaceBetween { |
| place-content: space-between; |
| } |
| #placeContentStretch { |
| place-content: stretch; |
| } |
| #placeContentStartEnd { |
| place-content: start end; |
| } |
| #placeContentStartSpaceEvenly { |
| place-content: start space-evenly; |
| } |
| #placeContentBaselineStart { |
| place-content: baseline start; |
| } |
| |
| <!-- Invalid CSS cases --> |
| #placeContentEmpty { |
| place-content:; |
| } |
| #placeContentAuto { |
| place-content: auto; |
| } |
| #placeContentNone { |
| place-content: none; |
| } |
| #placeContentSafe { |
| place-content: safe; |
| } |
| #placeContentStartSafe { |
| place-content: start safe; |
| } |
| #placeContentBaselineSafe { |
| place-content: baseline safe; |
| } |
| #placeContentStartEndLeft { |
| place-content: start end left; |
| } |
| #placeContentBaseline { |
| place-content: baseline; |
| } |
| #placeContentStartBaseline { |
| place-content: start baseline; |
| } |
| </style> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="resources/alignment-parsing-utils-th.js"></script> |
| </head> |
| <body> |
| <p>Test to verify that the new place-content alignment shorthand is parsed as expected and correctly sets the longhand values.</p> |
| <div id="log"></div> |
| |
| <div id="placeContentNormal"></div> |
| <div id="placeContentStart"></div> |
| <div id="placeContentFlexStart"></div> |
| <div id="placeContentEnd"></div> |
| <div id="placeContentSpaceBetween"></div> |
| <div id="placeContentStretch"></div> |
| <div id="placeContentStartEnd"></div> |
| <div id="placeContentStartSpaceEvenly"></div> |
| <div id="placeContentBaselineStart"></div> |
| |
| <div id="placeContentEmpty"></div> |
| <div id="placeContentAuto"></div> |
| <div id="placeContentNone"></div> |
| <div id="placeContentSafe"></div> |
| <div id="placeContentStartSafe"></div> |
| <div id="placeContentBaselineSafe"></div> |
| <div id="placeContentStartEndLeft"></div> |
| <div id="placeContentBaseline"></div> |
| <div id="placeContentStartBaseline"></div> |
| <script> |
| function checkPlaceContentValues(element, value, alignValue, justifyValue) |
| { |
| var res = value.split(" "); |
| if (res.length < 2) |
| res[1] = res[0]; |
| checkValues(element, "alignContent", "align-content", res[0], alignValue); |
| checkValues(element, "justifyContent", "justify-content", res[1], justifyValue); |
| } |
| |
| function checkPlaceContentValuesJS(value, alignValue, justifyValue) |
| { |
| element = document.createElement("div"); |
| document.body.appendChild(element); |
| element.style.placeContent = value; |
| checkValues(element, "placeContent", "place-content", value, alignValue + ' ' + justifyValue) |
| checkPlaceContentValues(element, value, alignValue, justifyValue) |
| } |
| |
| function checkPlaceContentValuesBadJS(value) |
| { |
| element.style.placeContent = ""; |
| element.style.placeContent = value; |
| checkPlaceContentValues(element, "", "normal", "normal") |
| } |
| |
| function checkPlaceContentInitialValue() |
| { |
| element = document.createElement("div"); |
| document.body.appendChild(element); |
| checkValues(element, "placeContent", "place-content", "", "normal normal"); |
| element.style.placeContent = "center"; |
| checkPlaceContentValues(element, "center", "center", "center"); |
| element.style.placeContent = "initial"; |
| checkValues(element, "placeContent", "place-content", "initial", "normal normal"); |
| checkPlaceContentValues(element, "initial", "normal", "normal"); |
| } |
| |
| function checkPlaceContentInheritValue() |
| { |
| document.body.style.placeContent = "start"; |
| var anotherElement = document.createElement("div"); |
| document.body.appendChild(anotherElement); |
| checkPlaceContentValues(anotherElement, "", "normal", "normal"); |
| anotherElement.style.placeContent = "inherit"; |
| checkPlaceContentValues(anotherElement, "inherit", "start", "start"); |
| } |
| |
| |
| test(function() { |
| checkValues(placeContentNormal, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentNormal, "", "normal", "normal"); |
| }, "Test getting the Computed Value of place-content's longhand properties when setting 'normal' value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentStart, "placeContent", "place-content", "", "start start"); |
| checkPlaceContentValues(placeContentStart, "", "start", "start"); |
| }, "Test getting the Computed Value of place-content's longhand properties when setting 'start' value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentFlexStart, "placeContent", "place-content", "", "flex-start flex-start"); |
| checkPlaceContentValues(placeContentFlexStart, "", "flex-start", "flex-start"); |
| }, "Test getting the Computed Value of place-content's longhand properties when setting 'flex-start' value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentEnd, "placeContent", "place-content", "", "end end"); |
| checkPlaceContentValues(placeContentEnd, "", "end", "end"); |
| }, "Test getting the Computed Value of place-content's longhand properties when setting 'end' value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentSpaceBetween, "placeContent", "place-content", "", "space-between space-between"); |
| checkPlaceContentValues(placeContentSpaceBetween, "", "space-between", "space-between"); |
| }, "Test getting the Computed Value of place-content's longhand properties when setting 'space-between' value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentStretch, "placeContent", "place-content", "", "stretch stretch"); |
| checkPlaceContentValues(placeContentStretch, "", "stretch", "stretch"); |
| }, "Test getting the Computed Value of place-content's longhand properties when setting 'stretch' value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentStartEnd, "placeContent", "place-content", "", "start end"); |
| checkPlaceContentValues(placeContentStartEnd, "", "start", "end"); |
| }, "Test getting the Computed Value of place-content's longhand properties when setting 'start end' value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentStartSpaceEvenly, "placeContent", "place-content", "", "start space-evenly"); |
| checkPlaceContentValues(placeContentStartSpaceEvenly, "", "start", "space-evenly"); |
| }, "Test getting the Computed Value of place-content's longhand properties when setting 'start space-evenly' value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentBaselineStart, "placeContent", "place-content", "", "baseline start"); |
| checkPlaceContentValues(placeContentBaselineStart, "", "baseline", "start"); |
| }, "Test getting the Computed Value of place-content's longhand properties when setting 'baseline start' value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentAuto, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentAuto, "", "normal", "normal"); |
| }, "Test setting '' as incorrect value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentAuto, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentAuto, "", "normal", "normal"); |
| }, "Test setting 'auto' as incorrect value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentNone, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentNone, "", "normal", "normal"); |
| }, "Test setting 'none' as incorrect value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentSafe, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentSafe, "", "normal", "normal"); |
| }, "Test setting 'safe' as incorrect value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentStartSafe, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentStartSafe, "", "normal", "normal"); |
| }, "Test setting 'start safe' as incorrect value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentBaseline, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentBaseline, "", "normal", "normal"); |
| }, "Test setting 'baseline' as incorrect value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentBaselineSafe, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentBaselineSafe, "", "normal", "normal"); |
| }, "Test setting 'baseline safe' as incorrect value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentStartBaseline, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentStartBaseline, "", "normal", "normal"); |
| }, "Test setting 'start baseline' as incorrect value through CSS."); |
| |
| test(function() { |
| checkValues(placeContentStartEndLeft, "placeContent", "place-content", "", "normal normal"); |
| checkPlaceContentValues(placeContentStartEndLeft, "", "normal", "normal"); |
| }, "Test setting 'start end left' as incorrect value through CSS."); |
| |
| test(function() { |
| checkPlaceContentValuesJS("center", "center", "center"); |
| checkPlaceContentValuesJS("center start", "center", "start"); |
| checkPlaceContentValuesJS("space-between end", "space-between", "end"); |
| checkPlaceContentValuesJS("normal end", "normal", "end"); |
| }, "Test setting values through JS."); |
| |
| test(function() { |
| checkPlaceContentValuesBadJS("center safe", "normal", "normal"); |
| checkPlaceContentValuesBadJS("center space-between center", "normal", "normal"); |
| checkPlaceContentValuesBadJS("asrt", "normal", "normal"); |
| checkPlaceContentValuesBadJS("auto", "normal", "normal"); |
| checkPlaceContentValuesBadJS("10px", "normal", "normal"); |
| checkPlaceContentValuesBadJS("stretch safe", "normal", "normal"); |
| checkPlaceContentValuesBadJS("space-between start end", "normal", "normal"); |
| checkPlaceContentValuesBadJS("", "normal", "normal"); |
| }, "Test setting incorrect values through JS."); |
| |
| test(function() { |
| checkPlaceContentInitialValue(); |
| }, "Test the 'initial' value of the place-content shorthand and its longhand properties' Computed value"); |
| |
| test(function() { |
| checkPlaceContentInheritValue(); |
| }, "Test the 'inherit' value of the place-content shorthand and its longhand properties' Computed value"); |
| |
| |
| </script> |
| </body> |
| </html> |