summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-grid/parsing/grid-shorthand.html
blob: 9293d27631f4b3ea89c7015a73de322617890747 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Grid Layout Test: grid sets longhands</title>
<link rel="help" href="https://drafts.csswg.org/css-grid/#grid-shorthand">
<meta name="assert" content="grid supports the full grammar '<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/shorthand-testcommon.js"></script>
</head>
<body>
<script>
// <grid-template>
test_shorthand_value('grid', 'none', {
  'grid-template-rows': 'none',
  'grid-template-columns': 'none',
  'grid-template-areas': 'none',

  'grid-auto-rows': 'auto',
  'grid-auto-columns': 'auto',
  'grid-auto-flow': 'row'
});

test_shorthand_value('grid', '10px / 20%', {
  'grid-template-rows': '10px',
  'grid-template-columns': '20%',
  'grid-template-areas': 'none',

  'grid-auto-rows': 'auto',
  'grid-auto-columns': 'auto',
  'grid-auto-flow': 'row'
});

// This could theoretically be serialized as "auto-flow / 10px",
// but spec mandates the 'grid-template-*' form when the
// 'grid-auto-*' properties are all initial.
test_shorthand_value('grid', 'none / 10px', {
  'grid-template-rows': 'none',
  'grid-template-columns': '10px',
  'grid-template-areas': 'none',

  'grid-auto-rows': 'auto',
  'grid-auto-columns': 'auto',
  'grid-auto-flow': 'row'
});

test_shorthand_value('grid', 'fit-content(calc(-0.5em + 10px)) / fit-content(calc(0.5em + 10px))', {
  'grid-template-rows': 'fit-content(calc(-0.5em + 10px))',
  'grid-template-columns': 'fit-content(calc(0.5em + 10px))',
  'grid-template-areas': 'none',

  'grid-auto-rows': 'auto',
  'grid-auto-columns': 'auto',
  'grid-auto-flow': 'row'
});

test_shorthand_value('grid',
                     '[header-top] "a a a"     [header-bottom]' +
                     '  [main-top] "b b b" 1fr [main-bottom]' +
                     '           / auto 1fr auto', {
  'grid-template-rows': '[header-top] auto [header-bottom main-top] 1fr [main-bottom]',
  'grid-template-columns': 'auto 1fr auto',
  'grid-template-areas': '"a a a" "b b b"',

  'grid-auto-rows': 'auto',
  'grid-auto-columns': 'auto',
  'grid-auto-flow': 'row'
});

test_shorthand_value('grid',
                     '  "a a a"' +
                     '  "b b b" 1fr' +
                     '/ auto 1fr auto', {
  'grid-template-rows': 'auto 1fr',
  'grid-template-columns': 'auto 1fr auto',
  'grid-template-areas': '"a a a" "b b b"',

  'grid-auto-rows': 'auto',
  'grid-auto-columns': 'auto',
  'grid-auto-flow': 'row'
});

test_shorthand_value('grid',
                     ' [] "a a a"     []' +
                     ' [] "b b b" 1fr []' +
                     '  / [] auto 1fr [] auto []', {
  'grid-template-rows': 'auto 1fr',
  'grid-template-columns': 'auto 1fr auto',
  'grid-template-areas': '"a a a" "b b b"',

  'grid-auto-rows': 'auto',
  'grid-auto-columns': 'auto',
  'grid-auto-flow': 'row'
});

// <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>?
test_shorthand_value('grid',
                     '10px' +
                     ' / auto-flow dense' +
                     ' 20px', {
  'grid-template-rows': '10px',
  'grid-template-columns': 'none',
  'grid-template-areas': 'none',

  'grid-auto-rows': 'auto',
  'grid-auto-columns': '20px',
  'grid-auto-flow': 'column dense'
});

// [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>
test_shorthand_value('grid',
                     'auto-flow dense' +
                     ' 30px /' +
                     ' 40px', {
  'grid-template-rows': 'none',
  'grid-template-columns': '40px',
  'grid-template-areas': 'none',

  'grid-auto-rows': '30px',
  'grid-auto-columns': 'auto',
  'grid-auto-flow': 'dense'
});
</script>
</body>
</html>