Wikipedia:Template sandbox and test cases: Difference between revisions

Content deleted Content added
No edit summary
Tags: Mobile edit Mobile web edit
Manual formatting: <syntaxhighlight lang="wikitext">
 
(16 intermediate revisions by 12 users not shown)
Line 1:
{{short description|WikimediaTemplate projecthow-to pageguide}}
{{pp-semi-indef|small=yes}}
{{Wikipedia how to|WP:TEMPTEST|WP:TESTCASE|WP:TESTCASES}}
{{short description|Wikimedia project page}}
{{see also|Wikipedia:Lua#Unit testing}}
{{Wikipedia how to|WP:TEMPTEST|WP:TESTCASE|WP:TESTCASES}}
 
[[Help:Template|Templates]] are a very powerful feature of the [[MediaWiki]] software used for [[Wikipedia]], but mistakes can be easily made, even by experienced users. ComplexEdits to complex templates should therefore be accompaniedcarried byout in [[Sandbox (software development)|sandboxes]] and accompanied by [[test case]]s to prevent bugs. Temporary sandboxes [[Template:X1|X1]]-[[Template:X20|X20]] or the [[Template:Template_sandbox|Template Sandbox]] may be useful places to try new experiments or for users new to template development.
 
For the development of entirely new templates, user sandboxes are appropriate.
 
== Sandbox and testcases subpage naming ==
Most protected templates already have a sandbox subpage and testcases subpage. The names of these pages are default. At the bottom of each template's page are links to create\/edit the template's sandbox and testcases pages.
 
For example, here are the subpages for '''{{tl|FlagIOCmedalist}}''':
Line 27 ⟶ 30:
 
== How to create /sandbox and /testcases subpages ==
{{tip|Use "create" and "mirror" links at the bottom of documentation box to create /sandbox and /testcases subpages automatically.}}
# Suppose your template is named <code>Template:X</code>. Create a subpage with the name <code>Template:X/sandbox</code>. If the main template is using the {{tl|documentation}} template, you can do this from a link at the bottom of the blue documentation box on the template main page. Or you can type it into the search box, or directly into the URL bar of your browser. Note that "/sandbox" is all lowercase.
# Copy the entire contents of the main template, including <code><nowiki><noinclude></nowiki></code> tags and the {{tl|documentation}} template if present, paste it into the edit window of the /sandbox subpage, and save the page. Your edit summary should be something like "<code><nowiki>create sandbox version of [[Template:X]]"</nowiki></code>.
#* Note: if you use the "mirror" link at the bottom of the blue documentation box, tags like <code><nowiki><noinclude></nowiki></code>, and their contents, will be missing. It's best just to copy and paste manually.
# Create another subpage with the name <code>Template:X/testcases</code>. This page is only linked from the bottom of the blue documentation box if it actually exists, so to create it you will need to create it by typing the page name into the search box or into the URL bar of your browser. Again, note that "/testcases" is all lowercase, and all one word.
# Put the {{tl|testcases notice}} template at the top of the page, add some test cases (see below), and save the page.
Line 57 ⟶ 60:
 
This format works well for banner templates and for lengthy text, e.g. citations. Note that you can format these kinds of test automatically using [[Template:Test case]] and other similar templates.
<syntaxhighlight lang="wikitext">
 
== ''Descriptive title'' ==
&nbsp;
* &lt;<code&gt;&lt;><nowiki&gt;&#123;&#123;''>{{template''&#124;''|param1''=''value1''&#124;''|param2''=''value2''&#125;&#125;&lt;}}</nowiki&gt;&lt;></code&gt;>
&nbsp;
<nowiki>'''Main'''</nowiki>
&nbsp;
&#123;&#123;''{{template''&#124;''|param1''=''value1''&#124;''|param2''=''value2''&#125;&#125;}}
&nbsp;
<nowiki>'''Sandbox'''</nowiki>
&nbsp;
&#123;&#123;''{{template''/sandbox&#124;''|param1''=''value1''&#124;''|param2''=''value2''&#125;&#125;}}
</syntaxhighlight>
 
Each value of ''template'', ''param1'', ''value1'' etc. must be identical.
 
For templates that use the "float" CSS attribute, you will need to use the {{tl|clear}} template to stop the results from bunching together:
<syntaxhighlight lang="wikitext">
 
== ''Descriptive title'' ==
&nbsp;
* &lt;<code&gt;&lt;><nowiki&gt;&#123;&#123;''>{{template''&#124;''|param1''=''value1''&#124;''|param2''=''value2''&#125;&#125;&lt;}}</nowiki&gt;&lt;></code&gt;>
&nbsp;
<nowiki>'''Main'''</nowiki>
&nbsp;
&#123;&#123;''{{template''&#124;''|param1''=''value1''&#124;''|param2''=''value2''&#125;&#125;}}
&nbsp;
{{clear}}
&#123;&#123;clear&#125;&#125;
&nbsp;
<nowiki>'''Sandbox'''</nowiki>
&nbsp;
&#123;&#123;''{{template''/sandbox&#124;''|param1''=''value1''&#124;''|param2''=''value2''&#125;&#125;}}
&nbsp;
{{clear}}
&#123;&#123;clear&#125;&#125;
</syntaxhighlight>
 
==== Wikitable ====
 
Line 95 ⟶ 98:
 
Start the table like this:
<syntaxhighlight lang="wikitext">
&#123;&#124;{| class="wikitable"
|-
! Code
! Main
! Sandbox
 
<nowiki><!-- Each new test case can be added like this: --></nowiki>
&#123;&#124; class="wikitable"
 
&#124;-
|-
! Code
| <code><nowiki>{{template|param1=value1|param2=value2}}</nowiki></code>
! Main
| {{template|param1=value1|param2=value2}}
! Sandbox
| &#123;&#123;''{{template''/sandbox&#124;''|param1''=''value1''&#124;''|param2''=''value2''&#125;&#125;}}
 
<nowiki><!-- Each new test case can be added like this: --></nowiki>
<nowiki><!-- Finish the table like this: --></nowiki>
 
|-
|}
| [[Template:Codenowiki|&lt;code&gt;&lt;nowiki&gt;]]&#123;&#123;''template''&#124;''param1''=''value1''&#124;''param2''=''value2''&#125;&#125;[[Template:Codenowiki|&lt;/nowiki&gt;&lt;/code&gt;]]
</syntaxhighlight>
| &#123;&#123;''template''&#124;''param1''=''value1''&#124;''param2''=''value2''&#125;&#125;
| &#123;&#123;''template''/sandbox&#124;''param1''=''value1''&#124;''param2''=''value2''&#125;&#125;
<nowiki><!-- Finish the table like this: --></nowiki>
&#124;&#125;
 
=== Automatic formatting ===
Line 134 ⟶ 138:
 
; Basic format
: [[Template:Quote]], [[Template:Quote/sandbox]], and [[Template:Quote/testcases]], and [[Template:Unicode_chart/footer/sandbox]]
; Wikitable
: [[Template:Diff]], [[Template:Diff/sandbox]] and [[Template:Diff/testcases]]
Line 150 ⟶ 154:
 
{{Wikipedia technical help|collapsed}}
[[Category:Wikipedia templatestemplate administration|{{PAGENAME}}Sandbox and test cases]]