Template:Test case/doc

This template generates a test case for two or more templates. Each template is called with the same parameters, and the test case can be displayed in various different formats.

All parameters passed to this template are passed through to the test-case templates, with the exception of parameters starting with an underscore character ("_"), which are reserved for internal use.

If no templates are specified explicitly, the module uses the base page of the current page as the first template, and its /sandbox subpage as the second template. If only one template is specified explicitly, its /sandbox subpage is used as the second template.

Usage
Basic syntax

Common syntax

The following options will work with all different test case formats.

Some test case formats accept additional parameters as well. See their sections for documentation.

Default
The default test case format looks like this:

It doesn't have any extra parameters.

Columns
The columns format arranges the test cases side by side in a table. This is useful for comparing long and thin templates such as infoboxes. It has the following extra parameters:

Example

Rows
The rows format arranges the test cases in rows in a table. It has the following extra parameters:

Example

Inline
Notice: inline usage currently broken

The inline format is for test cases that can be displayed entirely on one line. If used with templates that display on multiple lines it may produce unexpected results. It doesn't have any extra parameters.

Examples (using Template:3x)

Default:

With _showcode:

Note: As this format starts with a bullet, a newline will always be inserted at the start of the template output due to bug 14974.

Collapsible test cases
You can use yes with any format to turn it into a collapsible test case. If all the template outputs are the same the test case is collapsed and given a green heading. If any of the template outputs differ, the test case is expanded and given a yellow heading. You can set a custom title for collapsible test cases with the _title parameter.

Examples

With _showcode

 * Usage


 * Output

With _showcode, using a nowiki invocation via _code

 * Usage


 * Output

With _showcode and _collapsible

 * Usage


 * Output

Technical limitations
The template has the following known technical limitations:
 * An error will be generated if processing the entire page takes more than 10 seconds. This is an intentional limit in the Scribunto extension that runs Module:Template test case, on which this template is based. If a test cases page takes more than 10 seconds to load, you may need to split it up into different pages.
 * When generating the template code used with _showcode whitespace in named parameters is ignored, numbered parameters like 1 may be incorrectly displayed as positional parameters, and duplicate parameters are ignored. This is due to how template parameters are processed before they are passed to Module:Template test case.
 * When using a template invocation inside nowiki tags with the _code parameter, the HTML entities,   and   are converted to the literal characters &lt;, &gt; and &quot;. This is due to the way nowiki tags work.
 * For collapsible test cases, all text inside extension tags (e.g.,  ,   and  ) is treated as equal. These tags are converted to strip markers before they are passed to the template, and all strip markers include a random string as they have to be unique. Even if strip markers were unstripped before being compared, the same wikitext would not be guaranteed to result in exactly the same unstripped code. So this module ignores the content of strip markers for the purposes of testing equality. This has the unwanted side effect that, e.g.   is treated as equal to  , but should be adequate for most uses.