diff options
Diffstat (limited to 'www/wiki/extensions/Cite/citeParserTests.txt')
-rw-r--r-- | www/wiki/extensions/Cite/citeParserTests.txt | 603 |
1 files changed, 603 insertions, 0 deletions
diff --git a/www/wiki/extensions/Cite/citeParserTests.txt b/www/wiki/extensions/Cite/citeParserTests.txt new file mode 100644 index 00000000..e1d66d40 --- /dev/null +++ b/www/wiki/extensions/Cite/citeParserTests.txt @@ -0,0 +1,603 @@ +# Force the test runner to ensure the extension is loaded +!! hooks +ref +references +!! endhooks + +!! test +Simple <ref>, no <references/> +!! input +Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref> +!! result +Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup><ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span> +</li> +</ol> + +!! end + +!! test +Simple <ref>, with <references/> +!! input +Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref> + +<references/> +!! result +<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span> +</li> +</ol> + +!! end + + +!! article +Template:Simple template +!! text +A ''simple'' template. +!! endarticle + + +!! test +<ref> with a simple template +!! input +Templating<ref>{{simple template}}</ref> + +<references/> +!! result +<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">A <i>simple</i> template.</span> +</li> +</ol> + +!! end + +!! test +<ref> with a <nowiki> +!! input +Templating<ref><nowiki>{{simple template}}</nowiki></ref> + +<references/> +!! result +<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">{{simple template}}</span> +</li> +</ol> + +!! end + + +!! test +<ref> in a <nowiki> +!! input +Templating<nowiki><ref>{{simple template}}</ref></nowiki> + +<references/> +!! result +<p>Templating<ref>{{simple template}}</ref> +</p><p><br /> +</p> +!! end + +!! test +<ref> in a <!--comment--> +!! input +Templating<!--<ref>{{simple template}}</ref>--> + +<references/> +!! result +<p>Templating +</p><p><br /> +</p> +!! end + +!! test +<!--comment--> in a <ref> (bug 5384) +!! input +Templating<ref>Text<!--comment--></ref> + +<references/> +!! result +<p>Templating<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Text</span> +</li> +</ol> + +!! end + +!! test +<references> after <gallery> (bug 6164) +!! input +<ref>one</ref> + +<gallery>Image:Foobar.jpg</gallery> + +<references/> +!! result +<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> +</p> +<ul class="gallery mw-gallery-traditional"> + <li class="gallerybox" style="width: 155px"><div style="width: 155px"> + <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div> + <div class="gallerytext"> + </div> + </div></li> +</ul> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">one</span> +</li> +</ol> + +!! end + +!! test +{{REVISIONID}} on page with <ref> (bug 6299) +!! input +{{REVISIONID}}<ref>elite</ref> +!! result +1337<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup><ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">elite</span> +</li> +</ol> + +!! end + +!! test +{{REVISIONID}} on page without <ref> (bug 6299 sanity check) +!! input +{{REVISIONID}} +!! result +<p>1337 +</p> +!! end + +!! test +Ref with content followed by blank ref +!! input +<ref name="blank">content</ref> + +<ref name="blank"/> + +<references/> +!! result +<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">[1]</a></sup> +</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">content</span> +</li> +</ol> + +!! end + +!! test +Blank ref followed by ref with content +!! input +<ref name="blank"/> + +<ref name="blank">content</ref> + +<references/> +!! result +<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">[1]</a></sup> +</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">content</span> +</li> +</ol> + +!! end + +!! test +Regression: non-blank ref "0" followed by ref with content +!! input +<ref name="blank">0</ref> + +<ref name="blank">content</ref> + +<references/> +!! result +<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">[1]</a></sup> +</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">0 <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "blank" defined multiple times with different content</span></span> +</li> +</ol> + +!! end + +!! test +Regression sanity check: non-blank ref "1" followed by ref with content +!! input +<ref name="blank">1</ref> + +<ref name="blank">content</ref> + +<references/> +!! result +<p><sup id="cite_ref-blank_1-0" class="reference"><a href="#cite_note-blank-1">[1]</a></sup> +</p><p><sup id="cite_ref-blank_1-1" class="reference"><a href="#cite_note-blank-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-blank-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-blank_1-0">1.0</a></sup> <sup><a href="#cite_ref-blank_1-1">1.1</a></sup></span> <span class="reference-text">1 <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "blank" defined multiple times with different content</span></span> +</li> +</ol> + +!! end + +!! test +Ref names containing a number +!! input +<ref name="test123test">One</ref> +<ref name="123test">Two</ref> +<ref name="test123">Three</ref> + +<references /> +!! result +<p><sup id="cite_ref-test123test_1-0" class="reference"><a href="#cite_note-test123test-1">[1]</a></sup> +<sup id="cite_ref-123test_2-0" class="reference"><a href="#cite_note-123test-2">[2]</a></sup> +<sup id="cite_ref-test123_3-0" class="reference"><a href="#cite_note-test123-3">[3]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-test123test-1"><span class="mw-cite-backlink"><a href="#cite_ref-test123test_1-0">↑</a></span> <span class="reference-text">One</span> +</li> +<li id="cite_note-123test-2"><span class="mw-cite-backlink"><a href="#cite_ref-123test_2-0">↑</a></span> <span class="reference-text">Two</span> +</li> +<li id="cite_note-test123-3"><span class="mw-cite-backlink"><a href="#cite_ref-test123_3-0">↑</a></span> <span class="reference-text">Three</span> +</li> +</ol> + +!! end + +!! test +Erroneous refs +!! input +<ref name="0">Zero</ref> + +<ref>Also zero, but differently! (Normal ref)</ref> + +<ref /> + +<ref name="foo" name="bar" /> + +<ref name="blankwithnoreference" /> + +<references name="quasit" /> + +<references /> +!! result +<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; +name cannot be a simple integer. Use a descriptive title</span> +</p><p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> +</p><p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: The opening <code><ref></code> tag is malformed or has a bad name</span> +</p><p><sup id="cite_ref-bar_2-0" class="reference"><a href="#cite_note-bar-2">[2]</a></sup> +</p><p><sup id="cite_ref-blankwithnoreference_3-0" class="reference"><a href="#cite_note-blankwithnoreference-3">[3]</a></sup> +</p><p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><references></code> tag; +parameter "group" is allowed only. +Use <code><references /></code>, or <code><references group="..." /></code></span> +</p> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Also zero, but differently! (Normal ref)</span> +</li> +<li id="cite_note-bar-2"><span class="mw-cite-backlink"><a href="#cite_ref-bar_2-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; +no text was provided for refs named <code>bar</code></span></li> +<li id="cite_note-blankwithnoreference-3"><span class="mw-cite-backlink"><a href="#cite_ref-blankwithnoreference_3-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; +no text was provided for refs named <code>blankwithnoreference</code></span></li> +</ol> + +!! end + + +!! test +Simple <ref>, with <references/> in group +!! input +Wikipedia rocks!<ref>Proceeds of Rockology, vol. XXI</ref> +Wikipedia rocks!<ref group=note>Proceeds of Rockology, vol. XXI</ref> + +<references/> +<references group=note/> +!! result +<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> +Wikipedia rocks!<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[note 1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span> +</li> +</ol> +<ol class="references"> +<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span> +</li> +</ol> + +!! end + +!! test +Simple <ref>, with <references/> in group, with groupname in Chinese +!! input +AAA<ref group="参">ref a</ref>BBB<ref group="注">note b</ref>CCC<ref group="参">ref c</ref> + +;refs +<references group="参" /> +;notes +<references group="注" /> +!! result +<p>AAA<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[参 1]</a></sup>BBB<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[注 1]</a></sup>CCC<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">[参 2]</a></sup> +</p> +<dl><dt>refs</dt></dl> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">ref a</span> +</li> +<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">ref c</span> +</li> +</ol> +<dl><dt>notes</dt></dl> +<ol class="references"> +<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">note b</span> +</li> +</ol> + +!! end + +!! test +<ref> defined in <references> +!! input +<ref name="foo"/> + +<references> +<ref name="foo">BAR</ref> +</references> +!! result +<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="reference-text">BAR</span> +</li> +</ol> + +!! end + +!! test +<ref> defined in <references> called with #tag +!! input +<ref name="foo"/> + +{{#tag:references| +<ref name="foo">BAR</ref> +}} +!! result +<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="reference-text">BAR</span> +</li> +</ol> + +!! end + +!! test +<ref> defined in <references> error conditions +!! input +<ref name="foo" group="2"/> + +<references group="2"> +<ref name="foo"/> +<ref name="unused">BAR</ref> +<ref name="foo" group="1">bad group</ref> +<ref>BAR BAR</ref> +</references> +!! result +<p><sup id="cite_ref-foo_1-0" class="reference"><a href="#cite_note-foo-1">[2 1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-foo-1"><span class="mw-cite-backlink"><a href="#cite_ref-foo_1-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; +no text was provided for refs named <code>foo</code></span></li> +</ol> +<p><span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag with name "unused" defined in <code><references></code> is not used in prior text.</span><br /> +<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag in <code><references></code> has conflicting group attribute "1".</span><br /> +<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: <code><ref></code> tag defined in <code><references></code> has no name attribute.</span> +</p> +!! end + +!! article +MediaWiki:cite_link_label_group-klingon +!! text +wa' cha' wej loS vagh jav Soch chorgh Hut wa'maH +!! endarticle + +!! test +<ref> with custom group link with number names in Klingon +!! input +Wikipedia rocks!<ref group="klingon">Proceeds of Rockology, vol. XXI</ref> + +<references group="klingon"/> +!! result +<p>Wikipedia rocks!<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[wa']</a></sup> +</p> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Proceeds of Rockology, vol. XXI</span> +</li> +</ol> + +!! end + +!! test +Bug 31374 regression check: nested strip items +!! input +{{#tag:ref|note<ref>reference</ref>|group=Note}} +<references group=Note /> +<references /> +!! result +<p><sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[Note 1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">note<sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup></span> +</li> +</ol> +<ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">reference</span> +</li> +</ol> + +!! end + +!! test +Bug 13073 regression check: wrapped <references> +!! input +<ref> +foo +</ref> +<div><references /></div> +!! result +<p><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> +</p> +<div><ol class="references"> +<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"> +foo</span> +</li> +</ol></div> + +!! end + +!! test +<ref> with no name and no content. +!! input +Bla.<ref></ref> +!! result +<p>Bla.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; +refs with no name must have content</span> +</p> +!! end + +!! test +<ref> with an empty-string name parameter and no content. +!! input +Bla.<ref name=""></ref> +!! result +<p>Bla.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; +refs with no name must have content</span> +</p> +!! end + +!! test +<ref> with a non-empty name parameter and no content. +!! input +Bla.<ref name="void"></ref> +!! result +Bla.<sup id="cite_ref-void_1-0" class="reference"><a href="#cite_note-void-1">[1]</a></sup><ol class="references"> +<li id="cite_note-void-1"><span class="mw-cite-backlink"><a href="#cite_ref-void_1-0">↑</a></span> <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; +no text was provided for refs named <code>void</code></span></li> +</ol> + +!! end + +!! test +<ref>s with the follow parameter +!! input +Page one.<ref name="beginning">First page footnote text.</ref> + +Page two.<ref follow="beginning">Second page footnote text.</ref> + +== References == +<references /> +!! result +<p>Page one.<sup id="cite_ref-beginning_1-0" class="reference"><a href="#cite_note-beginning-1">[1]</a></sup> +</p><p>Page two. +</p> +<h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span></h2> +<ol class="references"> +<li id="cite_note-beginning-1"><span class="mw-cite-backlink"><a href="#cite_ref-beginning_1-0">↑</a></span> <span class="reference-text">First page footnote text. Second page footnote text.</span> +</li> +</ol> + +!! end + +!! test +<ref> with both name and follow parameters - invalid +!! input +Page one.<ref name="the-name" follow="the-name">This ref is invalid.</ref> +<references /> +!! result +<p>Page one.<span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; +invalid names, e.g. too many</span> +</p> +!! end + +!! test +Multiple definition (outside <references/>) +!! input +<ref name=a>abc</ref> +<ref name=a>def</ref> +<references /> +!! result +<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[1]</a></sup> +<sup id="cite_ref-a_1-1" class="reference"><a href="#cite_note-a-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-a-1"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-a_1-0">1.0</a></sup> <sup><a href="#cite_ref-a_1-1">1.1</a></sup></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "a" defined multiple times with different content</span></span> +</li> +</ol> + +!! end + +!! test +Multiple definition (inside <references/>) +!! input +<ref name=a /> +<references> +<ref name=a>abc</ref> +<ref name=a>def</ref> +</references> +!! result +<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "a" defined multiple times with different content</span></span> +</li> +</ol> + +!! end + +!! test +Multiple definition (mixed outside/inside) +!! input +<ref name=a>abc</ref> +<references> +<ref name=a>def</ref> +</references> +!! result +<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "a" defined multiple times with different content</span></span> +</li> +</ol> + +!! end + +!! test +Multiple definition (inside {{#tag:references}}) +!! input +<ref name=a /> +{{#tag:references| +<ref name=a>abc</ref> +<ref name=a>def</ref> +}} +!! result +<p><sup id="cite_ref-a_1-0" class="reference"><a href="#cite_note-a-1">[1]</a></sup> +</p> +<ol class="references"> +<li id="cite_note-a-1"><span class="mw-cite-backlink"><a href="#cite_ref-a_1-0">↑</a></span> <span class="reference-text">abc <span class="error mw-ext-cite-error" lang="en" dir="ltr">Cite error: Invalid <code><ref></code> tag; name "a" defined multiple times with different content</span></span> +</li> +</ol> + +!! end |