| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <link rel="help" href="https://drafts.csswg.org/css-env-1/"> | |
| <title>Test env() syntax</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <style> | |
| div { background-color: rgb(0, 128, 0); } | |
| </style> | |
| </head> | |
| <body> | |
| <script> | |
| // This value is expected if the syntax is valid. | |
| const envWorkingValue = "rgba(0, 0, 0, 0)"; | |
| // This value is expected if the syntax is invalid. | |
| const pageDefaultValue = "rgb(0, 128, 0)"; | |
| // This value is used to test fallback values. | |
| const blueValue = "rgb(0, 0, 255)"; | |
| const testCases = [ | |
| { style: "", expectedPropertyValue: pageDefaultValue }, | |
| { style: "background-color: env(test)", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: ENV(test)", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env(test) !important", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env(test, 10px)", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env(test, blue)", expectedPropertyValue: blueValue }, | |
| { style: "background-color: env(test, env(another))", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env(test, env(another, blue))", expectedPropertyValue: blueValue }, | |
| { style: "background-color: env(-test)", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env(--test)", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env(10px)", expectedPropertyValue: pageDefaultValue }, | |
| { style: "background-color: env(env(test))", expectedPropertyValue: pageDefaultValue }, | |
| { style: "background-color: env( test)", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env(test )", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env( test )", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env(test /**/, blue)", expectedPropertyValue: blueValue }, | |
| { style: "background-color: env(test, {})", expectedPropertyValue: envWorkingValue }, | |
| { style: "background-color: env(test, {)", expectedPropertyValue: pageDefaultValue }, | |
| ]; | |
| testCases.forEach((testcase) => { | |
| test(() => { | |
| const elem = document.createElement("div"); | |
| const style = window.getComputedStyle(elem); | |
| document.body.appendChild(elem); | |
| elem.style.cssText = testcase.style; | |
| assert_equals(style.getPropertyValue("background-color"), testcase.expectedPropertyValue); | |
| }, testcase.style + " " + testcase.expectedPropertyValue); | |
| }); | |
| </script> | |
| </body> | |
| </html> |