| <!doctype html> |
| <title>CSS Syntax Test: handle at-rules in declaration lists</title> |
| <link rel="help" href="https://drafts.csswg.org/css-syntax/#consume-list-of-declarations"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <style id="test_sheet"> |
| </style> |
| <script> |
| function parseRule(rule_text) { |
| let sheet = test_sheet.sheet; |
| if (sheet.cssRules.length != 0) |
| sheet.deleteRule(0); |
| sheet.insertRule(rule_text); |
| return sheet.cssRules[0]; |
| } |
| |
| test(() => { |
| let rule = parseRule(` |
| div { |
| @at {} |
| color: green; |
| } |
| `); |
| assert_equals(rule.style.color, "green"); |
| }, "Allow @-rule with block inside style rule"); |
| |
| test(() => { |
| let rule = parseRule(` |
| div { |
| @at at; |
| color: green; |
| } |
| `); |
| assert_equals(rule.style.color, "green"); |
| }, "Allow @-rule with semi-colon inside style rule"); |
| |
| test(() => { |
| let rule = parseRule(` |
| @page { |
| @at {} |
| margin-top: 20px; |
| } |
| `); |
| assert_equals(rule.style.marginTop, "20px"); |
| }, "Allow @-rule with block inside page rule"); |
| |
| test(() => { |
| let rule = parseRule(` |
| @page { |
| @at at; |
| margin-top: 20px; |
| } |
| `); |
| assert_equals(rule.style.marginTop, "20px"); |
| }, "Allow @-rule with semi-colon inside page rule"); |
| |
| test(() => { |
| let rule = parseRule(` |
| @font-face { |
| @at {} |
| font-family: myfont; |
| } |
| `); |
| assert_equals(rule.style.fontFamily, "myfont"); |
| }, "Allow @-rule with block inside font-face rule"); |
| |
| test(() => { |
| let rule = parseRule(` |
| @font-face { |
| @at at; |
| font-family: myfont; |
| } |
| `); |
| assert_equals(rule.style.fontFamily, "myfont"); |
| }, "Allow @-rule with semi-colon inside font-face rule"); |
| </script> |