# File Name Flags The test filename is significant in determining the type of test it contains, and enabling specific optional features. This page documents the various flags available and their meaning. In some cases flags can also be set via a directory name, such that any file that is a (recursive) descendent of the directory inherits the flag value. These are individually documented for each flag that supports it. ### Test Type These flags are preceded by a `-` and followed by a `.`, and must be the last such element in the filename, e.g. `foo-manual.html` will indicate a manual test, but `foo-manual-other.html` will not. Unlike test features, test types are mutually exclusive. `-manual` : Indicates that a test is a non-automated test. `-visual` : Indicates that a file is a visual test. ### Test Features These flags are preceded and followed by a `.` in the filename, and must themselves go after any test type flag, but are otherwise unordered. `.https` : Indicates that a test is loaded over HTTPS. `.h2` : Indicates that a test is loaded over HTTP/2. `.www` : Indicates that a test is run on the `www` subdomain. `.sub` : Indicates that a test uses the [server-side substitution](server-pipes.html#sub) feature. `.window` : (js files only) Indicates that the file generates a test in which it is run in a Window environment. `.worker` : (js files only) Indicates that the file generates a test in which it is run in a dedicated worker environment. `.any` : (js files only) Indicates that the file generates tests in which it is [run in multiple scopes](testharness). `.optional` : Indicates that a test makes assertions about optional behavior in a specification, typically marked by the [RFC 2119] "MAY" or "OPTIONAL" keywords. This flag should not be used for "SHOULD"; such requirements can be tested with regular tests, like "MUST". `.tentative` : Indicates that a test makes assertions not yet required by any specification, or in contradiction to some specification. This is useful when implementation experience is needed to inform the specification. It should be apparent in context why the test is tentative and what needs to be resolved to make it non-tentative. This flag can be enabled for an entire directory (and all its descendents), by naming the directory 'tentative'. For example, every test underneath 'foo/tentative/' will be considered tentative. It's preferable that `.window`, `.worker`, and `.any` are immediately followed by their final `.js` extension. [RFC 2119]: https://tools.ietf.org/html/rfc2119