summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/docs/css-naming.md
blob: c508ac33fdd827badda7df613fc82d0bb43256fd (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
CSS tests require a specific naming convention. This is also a good,
but not mandatory, style to use for other tests.

## File Name

The file name format is ```test-topic-###.ext``` where `test-topic`
somewhat describes the test, `###` is a zero-filled number used to
keep the file names unique, and `ext` is typically either
`html` or `xht`.

Test filenames must also be globally unique. There cannot be multiple
tests with the same filename, even if they are in different parent
directories. For example, having both
`/css-values-3/foo-001.html` and `/css-variables-1/foo-001.html`
would not be allowed. This restriction is in place because some tools
that use the CSS tests dump all of the test files into a single
directory, which would cause all but one of the tests with the same
filename to be clobbered and accidentally skipped.

### test-topic

`test-topic` is a short identifier that describes the test. The
`test-topic` should avoid conjunctions, articles, and prepositions.
It is a file name, not an English phrase: it should be as concise
as possible.

Examples:
```
    margin-collapsing-###.ext
    border-solid-###.ext
    float-clear-###.ext
```

### `###`

`###` is a zero-filled number used to keep the file names unique when
files have the same test-topic name.

Note: The number format is limited to 999 cases. If you go over this
number it is recommended that you reevaluate your test-topic name.

For example, in the case of margin-collapsing there are multiple
cases so each case could have the same test-topic but different
numbers:

```
    margin-collapsing-001.xht
    margin-collapsing-002.xht
    margin-collapsing-003.xht
```

There may also be a letter affixed after the number, which can be
used to indicate variants of a test.

For example, ```float-wrap-001l.xht``` and ```float-wrap-001r.xht```
might be left and right variants of a float test.

If tests using both the unsuffixed number and the suffixed number
exist, the suffixed tests must be subsets of the unsuffixed test.

For example, if ```bidi-004``` and ```bidi-004a``` both exist,
```bidi-004a``` must be a subset of ```bidi-004```.

If the unsuffixed test is strictly the union of the suffixed tests,
i.e. covers all aspects of the suffixed tests (such that a user agent
passing the unsuffixed test will, by design, pass all the suffixed
tests), then the unsuffixed test should be marked with the combo flag.

If ```bidi-004a``` and ```bidi-004b``` cover all aspects of ```bidi-
004``` (except their interaction), then bidi-004 should be given the
combo flag.

### ext

`ext` is the file extension or format of the file.
For XHTML test files, it should be `xht`.
For HTML (non-XML) test files, it should be `html`.