summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-page/parsing/margin-rules-001.html
blob: c4270fe606aa575b32b03c0645f634367de99af7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE html>
<link rel="author" title="Mozilla" href="https://mozilla.org">
<link rel="help" href="https://drafts.csswg.org/css-page-3/#margin-at-rules">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<style>
#test{ }
</style>
<script>
'use strict';
test(t => {
  const ruleTypes = [
    "@top-left-corner",
    "@top-left",
    "@top-center",
    "@top-right",
    "@top-right-corner",
    "@bottom-left-corner",
    "@bottom-left",
    "@bottom-center",
    "@bottom-right",
    "@bottom-right-corner",
    "@left-top",
    "@left-middle",
    "@left-bottom",
    "@right-top",
    "@right-middle",
    "@right-bottom"
  ];
  // Test that margin-rules are not valid at a top-level.
  for(let t in ruleTypes){
    test_invalid_rule(ruleTypes[t] + "{ }");
  }
  // Test that margin-rules are not valid in style rules.
  assert_equals(document.styleSheets.length, 1);
  let styleSheet = document.styleSheets[0];
  assert_equals(styleSheet.rules.length, 1);
  let rule = styleSheet.rules[0];
  for(let t in ruleTypes){
    assert_throws_dom(
        DOMException.SYNTAX_ERR,
        () => rule.insertRule(ruleTypes[t] + "{ }"),
        "Should not be able to add " + ruleTypes[t]  + " to a style rule");
  }
  // Test that margin-rules are valid inside page-rules.
  for(let t in ruleTypes){
    test_valid_rule("@page { " + ruleTypes[t] + " { } }");
  }
}, "margin-rules-001");
</script>