<!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>
