| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset=utf-8> |
| <title>Test serialization of CSS Align shorthand properties</title> |
| <link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com"> |
| <link rel="help" href="https://drafts.csswg.org/css-align/"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| |
| <script> |
| |
| var initial_values = { |
| alignContent: "normal", |
| alignItems: "normal", |
| alignSelf: "auto", |
| justifyContent: "normal", |
| justifyItems: "legacy", |
| justifySelf: "auto", |
| }; |
| |
| var place_content_test_cases = [ |
| { |
| alignContent: "center", |
| shorthand: "center normal", |
| }, |
| { |
| alignContent: "baseline safe right", |
| shorthand: "", |
| }, |
| { |
| justifyContent: "safe start", |
| shorthand: "normal safe start", |
| }, |
| { |
| justifyContent: "unsafe start", |
| shorthand: ["normal unsafe start"], |
| }, |
| { |
| justifyContent: "space-evenly start", |
| shorthand: "", |
| }, |
| { |
| alignContent: "start", |
| justifyContent: "end", |
| shorthand: "start end", |
| }, |
| ]; |
| |
| var place_items_test_cases = [ |
| { |
| alignItems: "center", |
| shorthand: "center legacy", |
| }, |
| { |
| alignItems: "baseline", |
| shorthand: "baseline legacy", |
| }, |
| { |
| justifyItems: "safe start", |
| shorthand: "normal safe start", |
| }, |
| { |
| justifyItems: "unsafe start", |
| shorthand: ["normal unsafe start"], |
| }, |
| { |
| justifyItems: "stretch", |
| shorthand: "normal stretch", |
| }, |
| { |
| justifyItems: "left legacy", |
| shorthand: "normal legacy left", |
| }, |
| { |
| alignItems: "stretch", |
| justifyItems: "end", |
| shorthand: "stretch end", |
| }, |
| ]; |
| |
| var place_self_test_cases = [ |
| { |
| alignSelf: "self-end safe", |
| shorthand: "", |
| }, |
| { |
| justifySelf: "unsafe start", |
| shorthand: ["auto start", "auto unsafe start"], |
| }, |
| { |
| justifySelf: "last baseline start", |
| shorthand: "", |
| }, |
| { |
| alignSelf: "baseline", |
| justifySelf: "last baseline", |
| shorthand: "baseline last baseline", |
| }, |
| ]; |
| |
| function run_tests(test_cases, shorthand, subproperties) { |
| test_cases.forEach(function(test_case) { |
| test(function() { |
| var element = document.createElement('div'); |
| document.body.appendChild(element); |
| subproperties.forEach(function(longhand) { |
| element.style[longhand] = test_case[longhand] || |
| initial_values[longhand]; |
| }); |
| if (Array.isArray(test_case.shorthand)) { |
| assert_in_array(element.style[shorthand], test_case.shorthand); |
| } else { |
| assert_equals(element.style[shorthand], test_case.shorthand); |
| } |
| }, "test shorthand serialization " + JSON.stringify(test_case)); |
| }); |
| } |
| |
| run_tests(place_content_test_cases, "placeContent", [ |
| "alignContent", "justifyContent"]); |
| run_tests(place_items_test_cases, "placeItems", [ |
| "alignItems", "justifyItems"]); |
| run_tests(place_self_test_cases, "placeSelf", [ |
| "alignSelf", "justifySelf"]); |
| |
| </script> |
| </body> |
| </html> |