File: grid-support-repeat-002.html

package info (click to toggle)
thunderbird 1%3A115.16.0esr-1~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,476,252 kB
  • sloc: cpp: 6,972,150; javascript: 5,209,211; ansic: 3,507,222; python: 1,137,609; asm: 432,531; xml: 205,149; java: 175,761; sh: 116,485; makefile: 22,152; perl: 13,971; objc: 12,561; yacc: 4,583; pascal: 2,840; lex: 1,720; ruby: 1,075; exp: 762; sql: 666; awk: 580; php: 436; lisp: 430; sed: 70; csh: 10
file content (70 lines) | stat: -rw-r--r-- 2,981 bytes parent folder | download | duplicates (23)
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
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Support 'repeat()' notation for 'grid-template-columns' and 'grid-template-rows' properties</title>
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
<link rel="help" href="http://www.w3.org/TR/css-grid-1/#repeat-notation" title="5.1.2 Repeating Rows and Columns: the 'repeat()' notation">
<meta name="assert" content="This test checks that 'grid-template-columns' and 'grid-template-rows' properties support 'repeat()' notation, and that their declared value serializes correctly.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#grid {
  display: grid;
  width: 800px;
  height: 600px;
  font: 10px/1 Ahem;
  justify-content: start;
  align-content: start;
}
</style>

<div id="log"></div>

<div id="grid">
  <div>GRID ITEM</div>
</div>

<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
setup({explicit_done: true});
var {style} = document.getElementById("grid");

function testGridTemplateColumnsRows(assignedValue, expectedValue = assignedValue) {
  test(function() {
      style.gridTemplateColumns = assignedValue;
      style.gridTemplateRows = assignedValue;
      assert_equals(style.gridTemplateColumns, expectedValue, "gridTemplateColumns");
      assert_equals(style.gridTemplateRows, expectedValue, "gridTemplateRows");
  }, `grid-template-columns: ${assignedValue}; and grid-template-rows: ${assignedValue};`);
}

document.fonts.ready.then(() => {
  // Valid values.
  testGridTemplateColumnsRows("repeat(1, auto)");
  testGridTemplateColumnsRows("repeat(2, auto)");
  testGridTemplateColumnsRows("repeat(2, minmax(50px, calc(50% + 50px)))");
  testGridTemplateColumnsRows("repeat(5, 10%)");
  testGridTemplateColumnsRows("max-content repeat(2, 25%) 1fr");
  testGridTemplateColumnsRows("repeat(2, min-content 50px)");
  testGridTemplateColumnsRows("repeat(2, [a] minmax(50px, 100px) [b] 25em [c])");
  testGridTemplateColumnsRows("[a] repeat(2, auto [b] 100px) [c]");
  testGridTemplateColumnsRows("[a] auto repeat(2, [b] 100px) [c]");
  testGridTemplateColumnsRows("[a] repeat(2, auto [b]) 100px [c]");
  testGridTemplateColumnsRows("[a] repeat(2, [b] 100px)");
  testGridTemplateColumnsRows("[a] repeat(2, [b] auto [c]) [d]");
  testGridTemplateColumnsRows("[a] min-content repeat(2, [b] 1fr [c] calc(10% + 20px)) [d] minmax(30em, 50em) [e]");

  // Reset values.
  style.gridTemplateColumns = "";
  style.gridTemplateRows = "";

  // Wrong values.
  testGridTemplateColumnsRows("repeat(-1, auto)", "");
  testGridTemplateColumnsRows("repeat(auto, 2)", "");
  testGridTemplateColumnsRows("repeat 2, auto", "");
  testGridTemplateColumnsRows("repeat(2 auto)", "");
  testGridTemplateColumnsRows("100px (repeat 2, auto)", "");
  testGridTemplateColumnsRows("repeat(2, 50px repeat(2, 100px))", "");
  testGridTemplateColumnsRows("100px repeat(2, [a])", "");
  done();
});
</script>