| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/inspector-test.js"></script> |
| <script> |
| |
| function test() |
| { |
| let suite = InspectorTest.createSyncSuite("CSSProperty.findVariableNames"); |
| |
| function addTestCase({name, expression, expected, checkUsedCSSVariableNames}) |
| { |
| suite.addTestCase({ |
| name, |
| test() { |
| let variables = WI.CSSProperty.findVariableNames(expression); |
| InspectorTest.expectShallowEqual(variables, expected, `"${expression}" should contain these CSS variable names: ${JSON.stringify(expected)}.`); |
| }, |
| }); |
| } |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.Empty", |
| expression: "", |
| expected: [], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.EmptyFunction", |
| expression: "var()", |
| expected: [], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.EmptyNoFunction", |
| expression: "--one", |
| expected: [], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.Basic", |
| expression: "var(--one)", |
| expected: ["--one"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.BasicWithFallback", |
| expression: "var(--one, red)", |
| expected: ["--one"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.BasicWithVariableFallback", |
| expression: "var(--one, var(--two, red))", |
| expected: ["--one", "--two"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.Whitespace", |
| expression: "var( --one )", |
| expected: ["--one"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.Newline", |
| expression: "var(\n--one\n)", |
| expected: ["--one"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.Tab", |
| expression: "var(\t--one\t)", |
| expected: ["--one"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.Nested", |
| expression: "var(--one, var(--two, var(--three)))", |
| expected: ["--one", "--two", "--three"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.Content", |
| expression: "content: \"var(--one)\"", |
| expected: ["--one"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.Dashed", |
| expression: "var(----o--n--e)", |
| expected: ["----o--n--e"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.NaiveWhitespace", |
| expression: "var(--one --two --three)", |
| expected: ["--one"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.NaiveDataURI", |
| expression: "data:text/plain;base64,xxxvar(--one)xxx", |
| expected: ["--one"], |
| }); |
| |
| addTestCase({ |
| name: "CSSProperty.findVariableNames.NaiveMalformed", |
| expression: "var(--var(one))", |
| expected: ["--var(one"], |
| }); |
| |
| suite.runTestCasesAndFinish(); |
| } |
| </script> |
| </head> |
| <body onload="runTest();"> |
| <p>Test naive parsing of CSS variable names with CSSProperty.findVariableNames</p> |
| </body> |
| </html> |