- These tests assume you are using a wiki with $wgCapitalLinks set to true (the default setting). Else tests like A1 and A2 will produce different results, as the first letter won't be capitalized automatically. You can still use these tests, but you will have to carefully evaluate the results yourself, as some of the instructions will not be applicable.
- Tests should be done with FlexForm extension setting create-seo-titles set to true as well as false. Note that create-seo-titles is only applied to input from formfields that is inserted in mwwrite of a create, not to hardcoded values in mwwrite. Therefore most of these tests (except for D) should have the same results with create-seo-titles set to true or false.
- To execute the tests, copy the content shown below to a page on your wiki. The content contains test instructions as well as forms to test different _create options.
- After you finish testing, delete the created test pages. You can for example find these in your contributions or use the Semantic MediaWiki query to get a list of pages and delete them through Special:DeleteBatch.
A. next_available test
- Test each create multiple times
- Verify that the created page gets a new number each time, i.e. "Test page1" then "Test page2" then "Test page3" etc.
- Tests A1, A2, A3, A4 and A6 (with namespace option "(Main)") should result in similar pagetitles
- note: with create-seo-titles set to true, A4 will produce a different pagetitle, for example "Test-page1"
- Tests A5 and A6 (with namespace options "template" and "Template") should result in similar pagetitles
- note: you might see "Template" in the created page in a different language, if your user preference is set to a language other than English
A1. Test_page
<form>
<_create mwwrite="Test_page" mwtemplate="Test" mwoption="next_available" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
A2. test_page
<form>
<_create mwwrite="test_page" mwtemplate="Test" mwoption="next_available" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
A3. :Test_page
<form>
<_create mwwrite=":Test_page" mwtemplate="Test" mwoption="next_available" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
A4. Test page
<form>
<_create mwwrite="Test page" mwtemplate="Test" mwoption="next_available" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
A5. Template:test_page
<form>
<_create mwwrite="Template:test_page" mwtemplate="Test" mwoption="next_available" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
A6. [namespace]:Test_page
<form>
<_create mwwrite="[namespace]:Test_page" mwtemplate="Test" mwoption="next_available" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<div>
<select name="namespace" placeholder="Choose a namespace" required="required">
<option value="">(Main)</option>
<option value="Template" >Template</option>
<option value="template">template</option>
</select>
</div>
<input type="submit" />
</form>
B. add_random test
- Test each create multiple times
- Verify that the created page gets a new number each time, i.e. "Test page1759998954" then "Test page1759998946" etc.
- note: the numbers are not fully random as they are based on timestamp, but each create should result in a unique number.
- Tests B1, B2, B3 and B5 (with namespace option "(Main)") should result in similar pagetitles
- Tests B4 and B5 (with namespace options "template" and "Template") should result in similar pagetitles
- note: you might see "Template" in the created page in a different language, if your user preference is set to a language other than English
B1. Test_page
<form>
<_create mwwrite="Test_page" mwtemplate="Test" mwoption="add_random" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
B2. test_page
<form>
<_create mwwrite="test_page" mwtemplate="Test" mwoption="add_random" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
B3. :Test_page
<form>
<_create mwwrite=":Test_page" mwtemplate="Test" mwoption="add_random" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
B4. Template:test_page
<form>
<_create mwwrite="Template:test_page" mwtemplate="Test" mwoption="add_random" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
B5. [namespace]:Test_page
<form>
<_create mwwrite="[namespace]:Test_page" mwtemplate="Test" mwoption="add_random" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<div>
<select name="namespace" placeholder="Choose a namespace" required="required">
<option value="">(Main)</option>
<option value="Template" >Template</option>
<option value="template">template</option>
</select>
</div>
<input type="submit" />
</form>
B6. Test_page/
<form>
<_create mwwrite="Test_page/" mwtemplate="Test" mwoption="add_random" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
B7. Test_page-
<form>
<_create mwwrite="Test_page-" mwtemplate="Test" mwoption="add_random" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
C. range tests
- Test each create multiple times
- C1 should create titles "Test_page/2019000", "Test_page/2019001", "Test_page/2019002" etc.
- C2 should create titles "Test_page/1", "Test_page/2", "Test_page/3" etc.
- C3 should create titles "Test_page/0001", "Test_page/0002", "Test_page/0003" etc.
- C3 should create titles "Template:Test_page/0001", "Template:Test_page/0002", "Template:Test_page/0003" etc.
- note: you might see "Template" in the created page in a different language, if your user preference is set to a language other than English
C1. Test_page/range:2019000-2019999
<form>
<_create mwwrite="Test_page/" mwtemplate="Test" mwoption="range:2019000-2019999" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
C2. Test_page/range:1-9999
<form>
<_create mwwrite="Test_page/" mwtemplate="Test" mwoption="range:1-9999" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
C3. Test_page/range:1-9999 with mwleadingzero
<form>
<_create mwwrite="Test_page/" mwtemplate="Test" mwoption="range:1-9999" mwleadingzero mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
C4. template:Test_page/range:1-9999 with mwleadingzero
<form>
<_create mwwrite="template:Test_page/" mwtemplate="Test" mwoption="range:1-9999" mwleadingzero mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
D. create-seo-titles test
- The create should result a page title where values from input fields are cleaned up. Symbols and spaces are replace with "-" and all letters are lower case (except for the first one if $wgCapitalLinks is set to true)
- D1 should give an error message as it's an invalid pagetitle: "Could not create page Test#@*( PAge. Invalid title."
- D2 should create "Test page/test-page" (or invalid title when create-seo-titles is set to false)
- D3 should create "Test-page" (or invalid title when create-seo-titles is set to false)
D1. Test_#@*( PAge
<form>
<_create mwwrite="Test_#@*( PAge" mwtemplate="Test" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="submit" />
</form>
D2. Test page/[Title]
<form>
<_create mwwrite="Test page/[Title]" mwtemplate="Test" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="text" name="Title" value="Test_#@*( PAge" />
<input type="submit" />
</form>
D3. [Title]
<form>
<_create mwwrite="[Title]" mwtemplate="Test" mwfollow />
<input type="text" name="Content" value="{{#time:r|now||l}}" />
<input type="text" name="Title" value="test_#@*( PAge" />
<input type="submit" />
</form>
Potentially useful Semantic MediaWiki query to find created pages (if you are using SMW)
{{#ask:[[~*Test page*]]
|?=Page
|?#-=Page
|?Modification date
|sort=Modification date
|order=desc
}}