3976 lines
332 KiB
Text
3976 lines
332 KiB
Text
!! options
|
|
version=2
|
|
parsoid-compatible=wt2html,wt2wt
|
|
!! end
|
|
|
|
!! article
|
|
Main Page
|
|
!! text
|
|
blah blah
|
|
!! endarticle
|
|
|
|
!! article
|
|
Foo''s bar''s
|
|
!! text
|
|
Article titles can contain single quotes!
|
|
!! endarticle
|
|
|
|
!! article
|
|
Template:1x
|
|
!! text
|
|
{{{1}}}
|
|
!! endarticle
|
|
|
|
!! article
|
|
Template:image_attribs
|
|
!! text
|
|
<noinclude>
|
|
[[File:foobar.jpg|</noinclude>right|Caption text<noinclude>]]</noinclude>
|
|
!! endarticle
|
|
|
|
!! article
|
|
Template:paramtest
|
|
!! text
|
|
This is a test template with parameter {{{param}}}
|
|
!! endarticle
|
|
|
|
!! article
|
|
Template:test
|
|
!! text
|
|
This is a test template
|
|
!! endarticle
|
|
|
|
!! article
|
|
MediaWiki:bad image list
|
|
!! text
|
|
* [[File:Bad.jpg]] except [[Nasty page]]
|
|
!! endarticle
|
|
|
|
!! article
|
|
File:Redirect to foobar.jpg
|
|
!! text
|
|
#REDIRECT[[File:Foobar.jpg]]
|
|
!! endarticle
|
|
|
|
###
|
|
### Images
|
|
###
|
|
### For Parsoid-specific tests, see
|
|
### https://www.mediawiki.org/wiki/Specs/HTML#Images
|
|
|
|
!! test
|
|
Simple image
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:foobar.jpg]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Simple image redirect
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:Redirect to foobar.jpg]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid+integrated
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Serialize simple image with figure-inline wrapper
|
|
!! options
|
|
parsoid=html2wt
|
|
!! html/parsoid
|
|
<p><figure-inline class="mw-default-size" typeof="mw:File"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></figure-inline></p>
|
|
!! wikitext
|
|
[[File:Foobar.jpg]]
|
|
!! end
|
|
|
|
!! test
|
|
Simple image (using File: namespace, now canonical)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Right-aligned image
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|right]]
|
|
!! html/php
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with caption
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|right|Caption text]]
|
|
!! html/php
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption text"><img alt="Caption text" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>Caption text</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with caption, T55312 #1
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|right|Caption page stuff]]
|
|
!! html/php
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption page stuff"><img alt="Caption page stuff" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption page stuff"><img alt="Caption page stuff" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>Caption page stuff</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with caption, T55312 #2
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|right|Caption page=]]
|
|
!! html/php
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption page="><img alt="Caption page=" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption page="><img alt="Caption page=" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>Caption page=</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with caption, T55312 #3
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|right|Caption page=stuff]]
|
|
!! html/php
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption page=stuff"><img alt="Caption page=stuff" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption page=stuff"><img alt="Caption page=stuff" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>Caption page=stuff</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image caption with pipe entity
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|one | two]]
|
|
[[File:Foobar.jpg|thumb|one ''two'' | three]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>one | two</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>one <i>two</i> | three</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>one <span typeof="mw:Entity">|</span> two</figcaption></figure>
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>one <i>two</i> <span typeof="mw:Entity">|</span> three</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Bad images - basic functionality
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Bad.jpg]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Bad.jpg" title="File:Bad.jpg">File:Bad.jpg</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-badfile","message":"This image is on the bad file list."}]}'><a href="./Special:FilePath/Bad.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Bad.jpg">File:Bad.jpg</span></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Bad images - T18039: text after bad image disappears
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
Foo bar
|
|
[[File:Bad.jpg]]
|
|
Bar foo
|
|
!! html/php
|
|
<p>Foo bar
|
|
<a href="/wiki/File:Bad.jpg" title="File:Bad.jpg">File:Bad.jpg</a>
|
|
Bar foo
|
|
</p>
|
|
!! html/parsoid
|
|
<p>Foo bar
|
|
<span class="mw-default-size" typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-badfile","message":"This image is on the bad file list."}]}'><a href="./Special:FilePath/Bad.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Bad.jpg">File:Bad.jpg</span></a></span>
|
|
Bar foo</p>
|
|
!! end
|
|
|
|
!! test
|
|
Bad images - manualthumb
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumbnail=Bad.jpg|Uh oh]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:322px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg">File:Foobar.jpg</a> <div class="thumbcaption">Uh oh</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:Error mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Bad.jpg"}]],"errors":[{"key":"apierror-badfile","message":"This image is on the bad file list."}]}'><a href="./Special:FilePath/Foobar.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Foobar.jpg">File:Foobar.jpg</span></a><figcaption>Uh oh</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Bad images - in gallery
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:Bad.jpg
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional">
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;"><a href="/wiki/File:Bad.jpg" title="File:Bad.jpg">Bad.jpg</a></div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-badfile","message":"This image is on the bad file list."}]}'><a href="./Special:FilePath/Bad.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Bad.jpg" data-width="120" data-height="120">File:Bad.jpg</span></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! article
|
|
Link1
|
|
!! text
|
|
Dummy article to suppress redlinks in tests
|
|
!! end
|
|
|
|
!! article
|
|
Link2
|
|
!! text
|
|
Dummy article to suppress redlinks in tests
|
|
!! end
|
|
|
|
!! test
|
|
Allow empty links in image captions (T62753)
|
|
!! options
|
|
thumbsize=220
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|Caption [[Link1]]
|
|
[[]]
|
|
[[Link2]]
|
|
]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Caption <a href="/wiki/Link1" title="Link1">Link1</a> [[]] <a href="/wiki/Link2" title="Link2">Link2</a> </div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"Caption [[Link1]]\n[[]]\n[[Link2]]\n"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a><figcaption>Caption <a rel="mw:WikiLink" href="./Link1" title="Link1" data-parsoid='{"stx":"simple","a":{"href":"./Link1"},"sa":{"href":"Link1"}}'>Link1</a>
|
|
[[]]
|
|
<a rel="mw:WikiLink" href="./Link2" title="Link2" data-parsoid='{"stx":"simple","a":{"href":"./Link2"},"sa":{"href":"Link2"}}'>Link2</a>
|
|
</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Titles in unlinked images (T23454)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=|stuff]]
|
|
!! html/php
|
|
<p><img alt="stuff" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" title="stuff" width="1941" height="220" />
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"stuff"}'><span title="stuff"><img alt="stuff" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></span></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Link with empty target
|
|
!! wikitext
|
|
[[]]
|
|
!! html
|
|
<p>[[]]
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with link trail
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
Linktrails should not work for images: [[File:Foobar.jpg]]s
|
|
!! html/php
|
|
<p>Linktrails should not work for images: <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>s
|
|
</p>
|
|
!! html/parsoid
|
|
<p>Linktrails should not work for images: <span class="mw-default-size" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span>s</p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with empty attribute
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|right||Caption text]]
|
|
!! html/php
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption text"><img alt="Caption text" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>Caption text</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
1. Block image with individual attributes from templates
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|{{1x|137px}}|This is a caption]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:139px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" decoding="async" width="137" height="16" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is a caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"width","ak":"{{1x|137px}}"},{"ck":"caption","ak":"This is a caption"}]}' data-mw='{"attribs":[["width",{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"pi\":[[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"1x\",\"href\":\"./Template:1x\"},\"params\":{\"1\":{\"wt\":\"137px\"}},\"i\":0}}]}'>137px</span>"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="16" width="137" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"16","width":"137"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a><figcaption>This is a caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
2. Block Image with individual attributes from templates
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|{{1x|thumb}}|{{1x|137px}}|This is a caption]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:139px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" decoding="async" width="137" height="16" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is a caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb mw:ExpandedAttrs" about="#mwt3" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"{{1x|thumb}}"},{"ck":"width","ak":"{{1x|137px}}"},{"ck":"caption","ak":"This is a caption"}]}' data-mw='{"attribs":[["thumbnail",{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"pi\":[[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"1x\",\"href\":\"./Template:1x\"},\"params\":{\"1\":{\"wt\":\"thumb\"}},\"i\":0}}]}'>thumb</span>"}],["width",{"html":"<span about=\"#mwt2\" typeof=\"mw:Transclusion\" data-parsoid='{\"pi\":[[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"1x\",\"href\":\"./Template:1x\"},\"params\":{\"1\":{\"wt\":\"137px\"}},\"i\":0}}]}'>137px</span>"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="16" width="137" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"16","width":"137"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a><figcaption>This is a caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
3. Inline image with individual attributes from templates
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|{{1x|50px}}]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" width="50" height="6" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"width","ak":"{{1x|50px}}"}]}' data-mw='{"attribs":[["width",{"html":"<span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"pi\":[[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"1x\",\"href\":\"./Template:1x\"},\"params\":{\"1\":{\"wt\":\"50px\"}},\"i\":0}}]}'>50px</span>"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
## Parsoid does not provide editing support for images where templates produce multiple image attributes.
|
|
## To signal this, we add a 'mw:Placeholder' type to such images. This could change in the future.
|
|
!! test
|
|
Image with multiple attributes from the same template
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|{{image_attribs}}]]
|
|
!! html/php
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File mw:Placeholder"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption text"><img alt="Caption text" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>Caption text</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with link tails
|
|
!! options
|
|
thumbsize=220
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
123[[File:Foobar.jpg]]456
|
|
123[[File:Foobar.jpg|right]]456
|
|
123[[File:Foobar.jpg|thumb]]456
|
|
!! html/php
|
|
<p>123<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>456
|
|
</p><p>
|
|
123</p><div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div><p>456
|
|
123</p><div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div><p>456</p>
|
|
!! html/parsoid
|
|
<p>123<span class="mw-default-size" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span>456</p>
|
|
<p>123</p><figure class="mw-default-size mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption></figcaption></figure><p>456
|
|
123</p><figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
<p>456</p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with multiple captions -- only last one is accepted
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|right|Caption1 - ignored|[[Caption2]] - ignored|Caption3 - accepted]]
|
|
!! html/php
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption3 - accepted"><img alt="Caption3 - accepted" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption3 - accepted"><img alt="Caption3 - accepted" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>Caption3 - accepted</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with multiple widths -- use last
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|200px|300px|caption]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" decoding="async" width="300" height="34" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with multiple alignments -- use first (T50664)
|
|
!! options
|
|
thumbsize=220
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|left|right|center|caption]]
|
|
|
|
[[File:Foobar.jpg|middle|text-top|caption]]
|
|
!! html/php
|
|
<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" style="vertical-align: middle" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-left" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<p><span class="mw-default-size mw-valign-middle" typeof="mw:File" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with width attribute at different positions
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|200px|right|Caption]]
|
|
[[File:Foobar.jpg|right|200px|Caption]]
|
|
[[File:Foobar.jpg|right|Caption|200px]]
|
|
!! html/php
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption"><img alt="Caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>Caption</figcaption></figure>
|
|
<figure class="mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption"><img alt="Caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>Caption</figcaption></figure>
|
|
<figure class="mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Caption"><img alt="Caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>Caption</figcaption></figure>
|
|
!! end
|
|
|
|
# a sad bit of backward-compatibility
|
|
!! test
|
|
Image with size specified with pxpx (T15500, T53628)
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
cat
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! metadata
|
|
cat=Pages_with_image_sizes_containing_extra_px sort=
|
|
!! wikitext
|
|
[[File:Foobar.jpg|20pxpx]]
|
|
[[File:Foobar.jpg|200x20pxpx]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" decoding="async" width="20" height="2" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" /></a>
|
|
<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg" decoding="async" width="177" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/265px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/353px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" class="mw-file-element"/></a></span> <span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="177" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/265px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/353px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
T374311: Gallery with trailing px should not trigger double-px
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! options
|
|
parsoid=wt2html
|
|
cat
|
|
!! wikitext
|
|
<gallery widths="100px">
|
|
File:Foobar.jpg
|
|
</gallery>
|
|
!! metadata
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional">
|
|
<li class="gallerybox" style="width: 135px"><div style="width: 135px">
|
|
<div class="thumb" style="width: 130px;"><div style="margin:69.5px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg" decoding="async" width="100" height="11" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg 2x" /></a></div></div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" data-mw='{"name":"gallery","attrs":{"widths":"100px"},"body":{}}'>
|
|
<li class="gallerybox" style="width: 135px;">
|
|
<div class="thumb" style="width: 130px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="11" width="100" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg 2x" class="mw-file-element"/></a></span></div>
|
|
<div class="gallerytext"></div>
|
|
</li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Image with link parameter, wiki target
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=Main Page]]
|
|
!! html/php
|
|
<p><a href="/wiki/Main_Page" title="Main Page"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="./Main_Page" title="Main Page"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
# parsoid T51293 (part 1)
|
|
!! test
|
|
Image with link parameter, URL target
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=http://example.com/]]
|
|
!! html/php
|
|
<p><a href="http://example.com/" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
# parsoid T51293 (part 2)
|
|
!! test
|
|
Image with link parameter, protocol-less URL target
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=//example.com/]]
|
|
!! html/php
|
|
<p><a href="//example.com/" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="//example.com/"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Escaping non-block captions (T107435)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2wt"],
|
|
"changes": [
|
|
["[typeof~='mw:File']", "attr", "data-mw", "{\"caption\": \"|\"}"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|alt=123|caption]]
|
|
!! wikitext/edited
|
|
[[Image:Foobar.jpg|alt=123|<nowiki>|</nowiki>]]
|
|
!! end
|
|
|
|
!! test
|
|
Image with link parameter, wgExternalLinkTarget
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=http://example.com/]]
|
|
!! config
|
|
wgExternalLinkTarget="foobar"
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! html/php
|
|
<p><a href="http://example.com/" target="foobar" rel="nofollow noreferrer noopener"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="http://example.com/" rel="nofollow noreferrer noopener" target="foobar"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with link parameter, wgNoFollowLinks set to false
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=http://example.com/]]
|
|
!! config
|
|
wgNoFollowLinks=false
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! html/php
|
|
<p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with link parameter, wgNoFollowDomainExceptions
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=http://example.com/]]
|
|
!! config
|
|
wgNoFollowDomainExceptions=["example.com"]
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! html/php
|
|
<p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with link parameter, wgExternalLinkTarget, unnamed parameter
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=http://example.com/|Title]]
|
|
!! config
|
|
wgExternalLinkTarget="foobar"
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! html/php
|
|
<p><a href="http://example.com/" title="Title" target="foobar" rel="nofollow noreferrer noopener"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"Title"}'><a href="http://example.com/" rel="nofollow noreferrer noopener" target="foobar" title="Title"><img alt="Title" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with empty link parameter
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=]]
|
|
!! html/php
|
|
<p><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" />
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><span><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></span></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with link parameter (wiki target) and unnamed parameter
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=Main_Page|Title]]
|
|
!! html/php
|
|
<p><a href="/wiki/Main_Page" title="Title"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"Title"}'><a href="./Main_Page" title="Title"><img alt="Title" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with link parameter (URL target) and unnamed parameter
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=http://example.com/|Title]]
|
|
!! html/php
|
|
<p><a href="http://example.com/" title="Title" rel="nofollow"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"Title"}'><a href="http://example.com/" title="Title"><img alt="Title" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Thumbnail image with link parameter
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|link=http://example.com/|Title]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="http://example.com/" rel="nofollow"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>Title</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Manually-specified thumbnail image
|
|
!! options
|
|
thumbsize=220
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png|Title]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb" about="#mwt1" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption>Title</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Manually-specified thumbnail image (backwards compat)
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=html2wt
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png|Title]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption>Title</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Manually-specified thumbnail image with explicit link to wiki page
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|Title]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./Main_Page" title="Main Page"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption>Title</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Manually-specified thumbnail image with explicit link to url
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb=Thumb.png|link=http://example.com|Title]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="http://example.com" rel="nofollow"><img src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="http://example.com"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption>Title</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Manually-specified thumbnail image with explicit no link
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb=Thumb.png|link=|Title]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><img src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><span><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></span><figcaption>Title</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Manually-specified thumbnail image with explicit link and alt text
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|alt=alttext|Title]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="alttext" src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Title</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./Main_Page" title="Main Page"><img alt="alttext" resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption>Title</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with frame and link
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|frame|left|This is a test image [[Main Page]]]]
|
|
!! html/php
|
|
<div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-halign-left" typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>This is a test image <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with frame and link and explicit alt
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]|alt=Altitude]]
|
|
!! html/php
|
|
<div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Altitude" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-halign-left" typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="Altitude" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>This is a test image <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with wiki markup in implicit alt
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|testing '''bold''' in alt]]
|
|
|
|
[[Image:Foobar.jpg|alt=testing '''bold''' in alt]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="testing bold in alt"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"testing '''bold''' in alt"}]}' data-mw='{"caption":"testing <b data-parsoid='{\"dsr\":[27,37,3,3]}'>bold</b> in alt"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="testing bold in alt"><img alt="testing bold in alt" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"Image:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" about="#mwt1" data-parsoid='{"optList":[{"ck":"alt","ak":"alt=testing '''bold''' in alt"}]}' data-mw='{"attribs":[["alt",{"html":"alt=testing <b data-parsoid='{\"dsr\":[79,89,3,3]}'>bold</b> in alt","txt":"testing bold in alt"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="testing bold in alt" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"Image:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Alt image option should handle most kinds of wikitext without barfing
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|thumb|This is the image caption|alt=This is a [[link]] and a {{1x|''bold template''}}.]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="This is a link and a bold template." src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is the image caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"This is the image caption"},{"ck":"alt","ak":"alt=This is a [[link]] and a {{1x|''bold template''}}."}]}' data-mw='{"attribs":[["alt",{"html":"alt=This is a <a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[65,73,2,2]}'>link</a> and a <i about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid='{\"dsr\":[80,104,null,null],\"pi\":[[{\"k\":\"1\"}]]}' data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"1x\",\"href\":\"./Template:1x\"},\"params\":{\"1\":{\"wt\":\"&apos;&apos;bold template&apos;&apos;\"}},\"i\":0}}]}'>bold template</i>.","txt":"This is a link and a bold template."}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="This is a link and a bold template." resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"20","width":"180"},"sa":{"resource":"Image:Foobar.jpg"}}' class="mw-file-element"/></a><figcaption>This is the image caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Ampersand in alt attribute (T206940)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|alt=&amp;]]
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<gallery>
|
|
File:Foobar.jpg|alt=&amp;
|
|
</gallery>
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="&amp;" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</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="&amp;" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" about="#mwt1" data-mw='{"attribs":[["alt",{"html":"alt=<span typeof=\"mw:Entity\" data-parsoid='{\"src\":\"&amp;amp;\",\"srcContent\":\"&amp;\",\"dsr\":[22,27,null,null]}'>&amp;</span>amp;","txt":"&amp;"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="&amp;" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt5" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;">
|
|
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File mw:ExpandedAttrs" data-mw='{"attribs":[["alt",{"html":"alt=<span typeof=\"mw:Entity\" data-parsoid='{\"src\":\"&amp;amp;\",\"srcContent\":\"&amp;\",\"dsr\":[109,114,null,null]}'>&amp;</span>amp;","txt":"&amp;"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="&amp;" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div>
|
|
<div class="gallerytext"></div>
|
|
</li>
|
|
</ul>
|
|
!! end
|
|
|
|
## FIXME: The inconsistency in the gallery extension on the php side is T49646
|
|
# Parsoid test is only wt2html because it inserts <nowiki> around the
|
|
# alt text when serializing (which is fine).
|
|
!! test
|
|
Link with encoded pipe in alt option
|
|
!! options
|
|
parsoid=wt2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|alt=http://testing.123?4=5|6|caption]]
|
|
|
|
[[File:Foobar.jpg|alt=http://testing.123?4=5|6|caption]]
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<gallery>
|
|
File:Foobar.jpg|alt=http://testing.123?4=5|6|caption
|
|
File:Foobar.jpg|alt=http://testing.123?4=5|6|caption
|
|
</gallery>
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="http://testing.123?4=5|6" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p><p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="http://testing.123?4=5|6" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</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="http://testing.123?4=5%7C6%7Ccaption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
<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="http://testing.123?4=5%7C6%7Ccaption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" about="#mwt1" data-parsoid='{"optList":[{"ck":"alt","ak":"alt=http://testing.123?4=5&#x7C;6"},{"ck":"caption","ak":"caption"}]}' data-mw='{"attribs":[["alt",{"html":"alt=<a rel=\"mw:ExtLink\" href=\"http://testing.123?4=5%7C6\" class=\"external free\" data-parsoid='{\"stx\":\"url\",\"a\":{\"href\":\"http://testing.123?4=5%7C6\"},\"sa\":{\"href\":\"http://testing.123?4=5&amp;#x7C;6\"},\"dsr\":[22,51,0,0]}'>http://testing.123?4=5%7C6</a>","txt":"http://testing.123?4=5|6"}]],"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="http://testing.123?4=5|6" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" about="#mwt1" data-parsoid='{"optList":[{"ck":"alt","ak":"alt=http://testing.123?4=5&vert;6"},{"ck":"caption","ak":"caption"}]}' data-mw='{"attribs":[["alt",{"html":"alt=<a rel=\"mw:ExtLink\" href=\"http://testing.123?4=5%7C6\" class=\"external free\" data-parsoid='{\"stx\":\"url\",\"a\":{\"href\":\"http://testing.123?4=5%7C6\"},\"sa\":{\"href\":\"http://testing.123?4=5&amp;vert;6\"},\"dsr\":[22,51,0,0]}'>http://testing.123?4=5%7C6</a>","txt":"http://testing.123?4=5|6"}]],"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="http://testing.123?4=5|6" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt5" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File mw:ExpandedAttrs" data-parsoid='{"optList":[{"ck":"width","ak":"120x120px"},{"ck":"none","ak":"none"},{"ck":"alt","ak":"alt=http://testing.123?4=5&#x7C;6"},{"ck":"caption","ak":"caption"}]}' data-mw='{"attribs":[["alt",{"html":"alt=<a rel=\"mw:ExtLink\" href=\"http://testing.123?4=5%7C6\" class=\"external free\" data-parsoid='{\"stx\":\"url\",\"a\":{\"href\":\"http://testing.123?4=5%7C6\"},\"sa\":{\"href\":\"http://testing.123?4=5&amp;#x7C;6\"},\"dsr\":[200,229,0,0]}'>http://testing.123?4=5%7C6</a>","txt":"http://testing.123?4=5|6"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="http://testing.123?4=5|6" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext">caption</div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File mw:ExpandedAttrs" data-parsoid='{"optList":[{"ck":"width","ak":"120x120px"},{"ck":"none","ak":"none"},{"ck":"alt","ak":"alt=http://testing.123?4=5&vert;6"},{"ck":"caption","ak":"caption"}]}' data-mw='{"attribs":[["alt",{"html":"alt=<a rel=\"mw:ExtLink\" href=\"http://testing.123?4=5%7C6\" class=\"external free\" data-parsoid='{\"stx\":\"url\",\"a\":{\"href\":\"http://testing.123?4=5%7C6\"},\"sa\":{\"href\":\"http://testing.123?4=5&amp;vert;6\"},\"dsr\":[137,166,0,0]}'>http://testing.123?4=5%7C6</a>","txt":"http://testing.123?4=5|6"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="http://testing.123?4=5|6" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext">caption</div>
|
|
</li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Italics markup in alt attribute (T206940)
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|alt=''x''|caption]]
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<gallery>
|
|
File:Foobar.jpg|alt=''x''|caption
|
|
</gallery>
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="x" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</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" title="caption"><img alt="x" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">caption</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" about="#mwt1" data-parsoid='{"optList":[{"ck":"alt","ak":"alt=''x''"},{"ck":"caption","ak":"caption"}]}' data-mw='{"attribs":[["alt",{"html":"alt=<i data-parsoid='{\"dsr\":[22,27,2,2]}'>x</i>","txt":"x"}]],"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="x" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt5" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File mw:ExpandedAttrs" data-mw='{"attribs":[["alt",{"html":"alt=<i data-parsoid='{\"dsr\":[113,118,2,2]}'>x</i>","txt":"x"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="x" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div>
|
|
<div class="gallerytext">caption</div>
|
|
</li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Nowiki markup in alt attribute (edited html, no data-parsoid) (T206940)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|alt=<nowiki>''x''</nowiki>|caption]]
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<gallery>
|
|
File:Foobar.jpg|alt=<nowiki>''x''</nowiki>|caption
|
|
</gallery>
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="''x''" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</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" title="caption"><img alt="''x''" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">caption</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" about="#mwt3" data-mw='{"attribs":[["alt",{"html":"alt=<span typeof=\"mw:Nowiki\" data-parsoid='{\"dsr\":[22,44,8,9]}'>''x''</span>","txt":"''x''"}]],"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="''x''" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt9" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;">
|
|
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File mw:ExpandedAttrs" data-mw='{"attribs":[["alt",{"html":"alt=<span typeof=\"mw:Nowiki\" data-parsoid='{\"dsr\":[130,152,8,9]}'>''x''</span>","txt":"''x''"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="''x''" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div>
|
|
<div class="gallerytext">caption</div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Ampersand in link attribute (edited html, no data-parsoid) (T206940)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=Foo_&_bar]]
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<gallery>
|
|
File:Foobar.jpg|link=Foo_&_bar
|
|
</gallery>
|
|
!! html/php
|
|
<p><a href="/wiki/Foo_%26_bar" title="Foo & bar"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</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/Foo_%26_bar" title="Foo & bar"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="./Foo_&_bar" title="Foo & bar"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;">
|
|
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./Foo_&_bar" title="Foo & bar"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div>
|
|
<div class="gallerytext"></div>
|
|
</li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Italics markup in link attribute (T206940)
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Foo''s bar''s]]
|
|
|
|
<!-- Note that "italics" are stripped, even though this is a valid page title -->
|
|
[[File:Foobar.jpg|link=Foo''s bar''s|caption1]]
|
|
|
|
[[File:Foobar.jpg|link=''Main Page''|caption2]]
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<gallery>
|
|
File:Foobar.jpg|link=Foo''s bar''s|caption1
|
|
File:Foobar.jpg|link=''Main Page''|caption2
|
|
</gallery>
|
|
!! html/php
|
|
<p><a href="/wiki/Foo%27%27s_bar%27%27s" title="Foo''s bar''s">Foo''s bar''s</a>
|
|
</p><p><a href="/wiki/Foos_bars" title="caption1"><img alt="caption1" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p><p><a href="/wiki/Main_Page" title="caption2"><img alt="caption2" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</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/Foos_bars" title="caption1"><img alt="caption1" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">caption1</div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page" title="caption2"><img alt="caption2" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">caption2</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<p><a rel="mw:WikiLink" href="./Foo''s_bar''s" title="Foo''s bar''s">Foo''s bar''s</a></p>
|
|
|
|
<!-- Note that "italics" are stripped, even though this is a valid page title -->
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"link","ak":"link=Foo''s bar''s"},{"ck":"caption","ak":"caption1"}]}' data-mw='{"caption":"caption1"}'><a href="./Foos_bars" title="caption1" data-parsoid='{"a":{"href":"./Foos_bars"},"sa":{"href":"link=Foo''s bar''s"}}'><img alt="caption1" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"link","ak":"link=''Main Page''"},{"ck":"caption","ak":"caption2"}]}' data-mw='{"caption":"caption2"}'><a href="./Main_Page" title="caption2" data-parsoid='{"a":{"href":"./Main_Page"},"sa":{"href":"link=''Main Page''"}}'><img alt="caption2" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;">
|
|
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./Foos_bars" title="caption1"><img alt="caption1" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div>
|
|
<div class="gallerytext">caption1</div>
|
|
</li>
|
|
<li class="gallerybox" style="width: 155px;">
|
|
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./Main_Page" title="caption2"><img alt="caption2" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div>
|
|
<div class="gallerytext">caption2</div>
|
|
</li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Nowiki markup in link attribute (edited html, no data-parsoid) (T206940)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=Foo<nowiki>''s_bar''</nowiki>s|caption]]
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<gallery>
|
|
File:Foobar.jpg|link=Foo<nowiki>''s_bar''</nowiki>s|caption
|
|
</gallery>
|
|
!! html/php
|
|
<p><a href="/wiki/Foo%27%27s_bar%27%27s" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</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/Foo%27%27s_bar%27%27s" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">caption</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"caption"}'><a href="./Foo''s_bar''s" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;">
|
|
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./Foo''s_bar''s" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div>
|
|
<div class="gallerytext">caption</div>
|
|
</li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
HTML entity prefix in link markup (T209236)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=https://example.com?foo¶ms=bar]]
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<gallery>
|
|
File:Foobar.jpg|link=https://example.com?foo¶ms=bar
|
|
</gallery>
|
|
!! html/php
|
|
<p><a href="https://example.com?foo&params=bar" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</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="https://example.com?foo&params=bar" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="https://example.com?foo&params=bar"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<!-- consistency with gallery extension -->
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;">
|
|
<div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="https://example.com?foo&params=bar"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div>
|
|
<div class="gallerytext"></div>
|
|
</li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Image link markup is not generated when redundant (T108504) - encoded href
|
|
!! options
|
|
parsoid=html2wt,wt2wt
|
|
language=sr
|
|
!! wikitext
|
|
[[Датотека:Foobar.jpg]]
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="./%D0%94%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:Foobar.jpg"><img resource="./Датотека:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="178" width="172"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with table with attributes in caption
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|
|
|
{| class="123" |
|
|
|- class="456" |
|
|
| ha
|
|
|}
|
|
]]
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"\n{| class=\"123\" |\n|- class=\"456\" |\n| ha\n|}\n"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>
|
|
<table class="123">
|
|
<tbody><tr class="456" data-parsoid='{"startTagSrc":"|-"}'>
|
|
<td> ha</td></tr>
|
|
</tbody></table>
|
|
</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with table with rows from templates in caption
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|
|
|
{|
|
|
{{1x|{{!}} hi}}
|
|
|}
|
|
]]
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"\n{|\n{{1x|{{!}} hi}}\n|}\n"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>
|
|
<table>
|
|
<tbody about="#mwt4" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"{{!}} hi"}},"i":0}}]}'><tr><td> hi</td></tr></tbody>
|
|
</table>
|
|
</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with nested tables in caption
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|Foo<br />
|
|
{|
|
|
|
|
|
{|
|
|
|z
|
|
|}
|
|
|}
|
|
]]
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"Foo<br />\n{|\n|\n{|\n|z\n|}\n|}\n"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>Foo<br data-parsoid='{"stx":"html","selfClose":true}'/>
|
|
<table>
|
|
<tbody><tr><td>
|
|
<table>
|
|
<tbody><tr><td>z</td></tr>
|
|
</tbody></table></td></tr>
|
|
</tbody></table>
|
|
</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with heading and horizontal rule in caption
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
wgParserEnableLegacyHeadingDOM=false
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|
|
|
===Testing===
|
|
123
|
|
--------------
|
|
]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div> <div class="mw-heading mw-heading3"><h3 id="Testing">Testing</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&action=edit&section=1" title="Edit section: Testing">edit</a><span class="mw-editsection-bracket">]</span></span></div> 123 <hr /> </div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"\n===Testing===\n123\n--------------\n"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>
|
|
<h3 id="Testing">Testing</h3>
|
|
123
|
|
<hr data-parsoid='{"extra_dashes":10}'/>
|
|
</figcaption></figure>
|
|
!! end
|
|
|
|
###################
|
|
# Conflicting image format options.
|
|
# First option specified should 'win'.
|
|
# All three cases in each test should be identical.
|
|
|
|
!! test
|
|
Image with 'frameless' first.
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|frameless|caption]]
|
|
|
|
[[File:Foobar.jpg|frameless|frame|caption]]
|
|
|
|
[[File:Foobar.jpg|frameless|thumb|caption]]
|
|
|
|
[[File:Foobar.jpg|frameless|thumbnail=Thumb.png|caption]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
|
|
</p><p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
|
|
</p><p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
|
|
</p><p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
|
|
<p><span class="mw-default-size" typeof="mw:File/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
|
|
<p><span class="mw-default-size" typeof="mw:File/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
|
|
<p><span class="mw-default-size" typeof="mw:File/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with 'frame' first.
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|frame|caption]]
|
|
[[File:Foobar.jpg|frame|frameless|caption]]
|
|
[[File:Foobar.jpg|frame|thumb|caption]]
|
|
[[File:Foobar.jpg|frame|thumbnail=Thumb.png|caption]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption">caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with 'thumb' first.
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|caption]]
|
|
[[File:Foobar.jpg|thumb|frameless|caption]]
|
|
[[File:Foobar.jpg|thumb|frame|caption]]
|
|
[[File:Foobar.jpg|thumb|thumbnail=Thumb.png|caption]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image with 'thumbnail=' first.
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png|caption]]
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png|frameless|caption]]
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png|frame|caption]]
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png|thumb|caption]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
###################
|
|
# Image sizing.
|
|
# See https://www.mediawiki.org/wiki/Help:Images#Size_and_frame
|
|
# and https://phabricator.wikimedia.org/T64258
|
|
# Foobar has actual size of 1941x220
|
|
# 1. Thumbs & frameless always reduce, can't be enlarged unless it's
|
|
# a scalable format.
|
|
# 2. Framed & manual images always ignore size options; always
|
|
# render at original size.
|
|
# 3. "Unspecified format" and border are the only types which can be
|
|
# enlarged.
|
|
# 4. The srcset attribute doesn't occur if image is being enlarged
|
|
|
|
!! test
|
|
Image: unspecified format and border enlarge
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|2000px]]
|
|
|
|
[[File:Foobar.jpg|border|2000px]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="2000" height="227" /></a>
|
|
</p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="2000" height="227" class="thumbborder" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="227" width="2000" class="mw-file-element"/></a></span></p>
|
|
<p><span class="mw-image-border" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="227" width="2000" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image: "unspecified format" and border reduce
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|1000px]]
|
|
|
|
[[File:Foobar.jpg|border|1000px]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" decoding="async" width="1000" height="113" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" /></a>
|
|
</p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" decoding="async" width="1000" height="113" class="thumbborder" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="113" width="1000" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
<p><span class="mw-image-border" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="113" width="1000" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image: thumbs reduce
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|50px]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:52px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" width="50" height="6" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image: bitmap thumbs can't be enlarged past original size, but vector can.
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|2000px]]
|
|
|
|
[[File:Foobar.svg|thumb|2000px]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:2002px;"><a href="/wiki/File:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" decoding="async" width="2000" height="1500" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div></div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
<figure typeof="mw:File/Thumb"><a href="./File:Foobar.svg" class="mw-file-description"><img resource="./File:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" decoding="async" data-file-width="240" data-file-height="180" data-file-type="drawing" height="1500" width="2000" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image: frameless can reduce in size
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|frameless|50px]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" width="50" height="6" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File/Frameless"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image: bitmap frameless can't be enlarged past original size, but vector can
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|frameless|2000px]]
|
|
|
|
[[File:Foobar.svg|frameless|2000px]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p><p><a href="/wiki/File:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" decoding="async" width="2000" height="1500" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File/Frameless"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
<p><span typeof="mw:File/Frameless"><a href="./File:Foobar.svg" class="mw-file-description"><img resource="./File:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/2000px-Foobar.svg.png" decoding="async" data-file-width="240" data-file-height="180" data-file-type="drawing" height="1500" width="2000" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/3000px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/4000px-Foobar.svg.png 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image: framed images are always unscaled.
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
[[File:Foobar.jpg|frame]]
|
|
|
|
[[File:Foobar.jpg|frame|50px]]
|
|
|
|
[[File:Foobar.jpg|frame|50x50px]]
|
|
|
|
[[File:Foobar.jpg|frame|2000px]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="thumbimage" /></a> <div class="thumbcaption"></div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
<figure typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
<figure typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
<figure typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image: manualthumb images are always unscaled.
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png]]
|
|
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png|50px]]
|
|
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png|50x50px]]
|
|
|
|
[[File:Foobar.jpg|thumbnail=Thumb.png|2000px]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img alt="Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img alt="Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img alt="Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg"><img alt="Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
|
|
<figure typeof="mw:File/Thumb" data-mw='{"attribs":[["manualthumb",{"txt":"Thumb.png"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Bogus sizes during html2wt
|
|
!! options
|
|
parsoid=html2wt
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/10px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" width="bogus"/></a></span></p>
|
|
<p><span typeof="mw:File"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/10px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" width="10px"/></a></span></p>
|
|
!! wikitext
|
|
[[File:Foobar.jpg]]
|
|
|
|
[[File:Foobar.jpg|10x10px]]
|
|
!! end
|
|
|
|
###################
|
|
|
|
!! test
|
|
Link to image page- image page normally doesn't exist, hence edit link
|
|
Add test with existing image page
|
|
#<p><a href="/wiki/File:Test" title="Image:Test">Image:test</a>
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[:Image:test]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=File:Test&action=edit&redlink=1" class="new" title="File:Test (page does not exist)">Image:test</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><a rel="mw:WikiLink" href="./File:Test?action=edit&redlink=1" title="File:Test" class="new" typeof="mw:LocalizedAttrs" data-parsoid='{"stx":"simple","a":{"href":"./File:Test"},"sa":{"href":":Image:test"}}' data-mw-i18n='{"title":{"lang":"x-page","key":"red-link-title","params":["File:Test"]}}'>Image:test</a></p>
|
|
!! end
|
|
|
|
!! test
|
|
T20784 Link to non-existent image page with caption should use caption as link text
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[:Image:test|caption]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=File:Test&action=edit&redlink=1" class="new" title="File:Test (page does not exist)">caption</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><a rel="mw:WikiLink" href="./File:Test?action=edit&redlink=1" title="File:Test" class="new" typeof="mw:LocalizedAttrs" data-parsoid='{"stx":"piped","a":{"href":"./File:Test"},"sa":{"href":":Image:test"}}' data-mw-i18n='{"title":{"lang":"x-page","key":"red-link-title","params":["File:Test"]}}'>caption</a></p>
|
|
!! end
|
|
|
|
!! test
|
|
Frameless image caption with a free URL
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|http://example.com]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="http://example.com"><img alt="http://example.com" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"http://example.com"}]}' data-mw='{"caption":"<a rel=\"mw:ExtLink\" href=\"http://example.com\" class=\"external free\" data-parsoid='{\"stx\":\"url\",\"dsr\":[18,36,0,0]}'>http://example.com</a>"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="http://example.com"><img alt="http://example.com" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Thumbnail image caption with a free URL
|
|
!! options
|
|
thumbsize=220
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|http://example.com]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com" class="external free">http://example.com</a></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Thumbnail image caption with a free URL and explicit alt
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|http://example.com|alt=Alteration]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Alteration" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="Alteration" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com" class="external free">http://example.com</a></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
SVG thumbnails with no language set
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.svg|thumb|caption]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" decoding="async" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.svg" class="mw-file-description"><img resource="./File:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" decoding="async" data-file-width="240" data-file-height="180" data-file-type="drawing" height="135" width="180" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
SVG thumbnails with language de
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.svg|lang=de|thumb|caption]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=File:Foobar.svg&lang=de" class="image"><img src="http://example.com/images/thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png" decoding="async" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg?lang=de" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.svg?lang=de" class="mw-file-description"><img resource="./File:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/langde-180px-Foobar.svg.png" decoding="async" lang="de" data-file-width="240" data-file-height="180" data-file-type="drawing" height="135" width="180" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langde-270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
SVG thumbnails with invalid language code
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.svg|thumb|caption|lang=invalid:language:code]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.svg" class="image"><img src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" decoding="async" width="180" height="135" class="thumbimage" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.svg" class="internal" title="Enlarge"></a></div>lang=invalid:language:code</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"caption"},{"ck":"bogus","ak":"lang=invalid:language:code"}]}' data-mw='{"attribs":[["bogus",{"txt":"invalid:language:code"}]]}'><a href="./File:Foobar.svg" class="mw-file-description"><img resource="./File:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/180px-Foobar.svg.png" decoding="async" data-file-width="240" data-file-height="180" data-file-type="drawing" height="135" width="180" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/270px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
SVG thumbnails in page language
|
|
!! options
|
|
title=Rupage
|
|
language=ru
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Файл:Foobar.svg]] [[Файл:Foobar.svg|lang=en]]
|
|
!! html/php
|
|
<p><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/langru-240px-Foobar.svg.png" decoding="async" width="240" height="180" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langru-360px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langru-480px-Foobar.svg.png 2x" /></a> <a href="/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Foobar.svg&lang=en" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/240px-Foobar.svg.png" decoding="async" width="240" height="180" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/480px-Foobar.svg.png 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="./Файл:Foobar.svg" class="mw-file-description"><img resource="./Файл:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/langru-240px-Foobar.svg.png" decoding="async" data-file-width="240" data-file-height="180" data-file-type="drawing" height="180" width="240" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langru-360px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langru-480px-Foobar.svg.png 2x" class="mw-file-element"/></a></span> <span class="mw-default-size" typeof="mw:File"><a href="./Файл:Foobar.svg?lang=en" class="mw-file-description"><img resource="./Файл:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/240px-Foobar.svg.png" decoding="async" lang="en" data-file-width="240" data-file-height="180" data-file-type="drawing" height="180" width="240" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/480px-Foobar.svg.png 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
SVG thumbnails in page language not present in the file
|
|
!! options
|
|
title=Depage
|
|
language=de
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Datei:Foobar.svg]] [[Datei:Foobar.svg|sprache=ru]]
|
|
!! html/php
|
|
<p><a href="/wiki/Datei:Foobar.svg" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/240px-Foobar.svg.png" decoding="async" width="240" height="180" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/480px-Foobar.svg.png 2x" /></a> <a href="/index.php?title=Datei:Foobar.svg&lang=ru" class="image"><img alt="Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/langru-240px-Foobar.svg.png" decoding="async" width="240" height="180" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langru-360px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langru-480px-Foobar.svg.png 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="./Datei:Foobar.svg" class="mw-file-description"><img resource="./Datei:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/240px-Foobar.svg.png" decoding="async" data-file-width="240" data-file-height="180" data-file-type="drawing" height="180" width="240" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/360px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/480px-Foobar.svg.png 2x" class="mw-file-element"/></a></span> <span class="mw-default-size" typeof="mw:File"><a href="./Datei:Foobar.svg?lang=ru" class="mw-file-description"><img resource="./Datei:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/langru-240px-Foobar.svg.png" decoding="async" lang="ru" data-file-width="240" data-file-height="180" data-file-type="drawing" height="180" width="240" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langru-360px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langru-480px-Foobar.svg.png 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
T3887: A ISBN with a thumbnail
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|ISBN 1235467890]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a href="/wiki/Special:BookSources/1235467890" class="internal mw-magiclink-isbn">ISBN 1235467890</a></div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption><a href="./Special:BookSources/1235467890" rel="mw:WikiLink">ISBN 1235467890</a></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
T3887: A RFC with a thumbnail
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|This is RFC 12354]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is <a class="external mw-magiclink-rfc" rel="nofollow" href="https://tools.ietf.org/html/rfc12354">RFC 12354</a></div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>This is <a href="https://tools.ietf.org/html/rfc12354" rel="mw:ExtLink" class="external mw-magiclink">RFC 12354</a></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
T3887: A mailto link with a thumbnail
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|Please mailto:nobody@example.com]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Please <a rel="nofollow" class="external free" href="mailto:nobody@example.com">mailto:nobody@example.com</a></div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>Please <a rel="mw:ExtLink" href="mailto:nobody@example.com" class="external free">mailto:nobody@example.com</a></figcaption></figure>
|
|
!! end
|
|
|
|
# Pending resolution to T2368
|
|
!! test
|
|
T2648: Frameless image caption with a link
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|text with a [[link]] in it]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[link]] in it"}]}' data-mw='{"caption":"text with a <a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[30,38,2,2]}'>link</a> in it"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="text with a link in it"><img alt="text with a link in it" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
T2648: Frameless image caption with a link (suffix)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|text with a [[link]]foo in it]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a linkfoo in it"><img alt="text with a linkfoo in it" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[link]]foo in it"}]}' data-mw='{"caption":"text with a <a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./Link\"},\"sa\":{\"href\":\"link\"},\"dsr\":[30,41,2,5],\"tail\":\"foo\"}'>linkfoo</a> in it"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="text with a linkfoo in it"><img alt="text with a linkfoo in it" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
T2648: Frameless image caption with an interwiki link
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|text with a [[MeatBall:Link]] in it]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a MeatBall:Link in it"><img alt="text with a MeatBall:Link in it" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[MeatBall:Link]] in it"}]}' data-mw='{"caption":"text with a <a rel=\"mw:WikiLink/Interwiki\" href=\"http://www.usemod.com/cgi-bin/mb.pl?Link\" title=\"meatball:Link\" class=\"extiw\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"http://www.usemod.com/cgi-bin/mb.pl?Link\"},\"sa\":{\"href\":\"MeatBall:Link\"},\"isIW\":true,\"dsr\":[30,47,2,2]}'>MeatBall:Link</a> in it"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="text with a MeatBall:Link in it"><img alt="text with a MeatBall:Link in it" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
T2648: Frameless image caption with a piped interwiki link
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|text with a [[MeatBall:Link|link]] in it]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"text with a [[MeatBall:Link|link]] in it"}]}' data-mw='{"caption":"text with a <a rel=\"mw:WikiLink/Interwiki\" href=\"http://www.usemod.com/cgi-bin/mb.pl?Link\" title=\"meatball:Link\" class=\"extiw\" data-parsoid='{\"stx\":\"piped\",\"a\":{\"href\":\"http://www.usemod.com/cgi-bin/mb.pl?Link\"},\"sa\":{\"href\":\"MeatBall:Link\"},\"isIW\":true,\"dsr\":[30,52,16,2]}'>link</a> in it"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="text with a link in it"><img alt="text with a link in it" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
T107474: Frameless image caption with <nowiki>
|
|
!! wikitext
|
|
[[File:Foobar.jpg|<nowiki>text with a [[MeatBall:Link|link]] in it</nowiki>]]
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"<nowiki>text with a [[MeatBall:Link|link]] in it</nowiki>"}]}' data-mw='{"caption":"<span typeof=\"mw:Nowiki\" data-parsoid='{\"dsr\":[18,75,8,9]}'>text with a [[MeatBall:Link|link]] in it</span>"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="text with a [[MeatBall:Link|link]] in it"><img alt="text with a [[MeatBall:Link|link]] in it" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Escape HTML special chars in image alt text
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|& < > "]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="& < > ""><img alt="& < > "" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"& < > \""}]}' data-mw='{"caption":"&amp; &lt; > \""}'><a href="./File:Foobar.jpg" class="mw-file-description" title='& < > "'><img alt='& < > "' resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Escape HTML special chars in image alt text with LanguageConverter
|
|
!! options
|
|
language=zh
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|& < > "]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="& < > ""><img alt="& < > "" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"& < > \""}]}' data-mw='{"caption":"&amp; &lt; > \""}'><a href="./File:Foobar.jpg" class="mw-file-description" title='& < > "'><img alt='& < > "' resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Entities in file name and attributes
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:7%25 solution.gif|manualthumb=7%25 solution.gif|link=7%25 solution|[[7%25 solution]]]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=Special:Upload&wpDestFile=7%25_solution.gif" class="new" title="File:7% solution.gif">7% solution</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Error mw:File" data-parsoid='{"optList":[{"ck":"bogus","ak":"manualthumb=7%25 solution.gif"},{"ck":"link","ak":"link=7%25 solution"},{"ck":"caption","ak":"[[7%25 solution]]"}]}' data-mw='{"attribs":[["link",{"txt":"7%25 solution"}]],"caption":"<a rel=\"mw:WikiLink\" href=\"./7%25_solution\" title=\"7% solution\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./7%25_solution\"},\"sa\":{\"href\":\"7%25 solution\"},\"dsr\":[74,91,2,2]}'>7% solution</a>","errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/7%25_solution.gif"><span class="mw-file-element mw-broken-media" resource="./File:7%25_solution.gif" data-parsoid='{"a":{"resource":"./File:7%25_solution.gif"},"sa":{"resource":"File:7%25 solution.gif"}}'>7% solution</span></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
T2499: Alt text should have Ӓ, not &1234;
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|♀]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="♀"><img alt="♀" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"&#9792;"}]}' data-mw='{"caption":"<span typeof=\"mw:Entity\" data-parsoid='{\"src\":\"&amp;#9792;\",\"srcContent\":\"♀\",\"dsr\":[18,25,null,null]}'>♀</span>"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="♀"><img alt="♀" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Broken image caption with link
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|thumb|This is a broken caption. But [[Main Page|this]] is just an ordinary link.
|
|
!! html/php
|
|
<p>[[Image:Foobar.jpg|thumb|This is a broken caption. But <a href="/wiki/Main_Page" title="Main Page">this</a> is just an ordinary link.
|
|
</p>
|
|
!! html/parsoid
|
|
<p>[[Image:Foobar.jpg|thumb|This is a broken caption. But <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">this</a> is just an ordinary link.</p>
|
|
!! end
|
|
|
|
!! test
|
|
Image caption containing another image
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|This is a caption with another [[File:Thumb.png|image]] inside it!]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is a caption with another <a href="/wiki/File:Thumb.png" class="image" title="image"><img alt="image" src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" /></a> inside it!</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>This is a caption with another <span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"image"}'><a href="./File:Thumb.png" class="mw-file-description" title="image"><img alt="image" resource="./File:Thumb.png" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a></span> inside it!</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image: caption containing a newline
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|This
|
|
*is some text]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="This *is some text"><img alt="This *is some text" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"This\n*is some text"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="This
|
|
*is some text"><img alt="This
|
|
*is some text" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!!end
|
|
|
|
## The leading space should not trigger nowiki escaping in wt2wt mode
|
|
!! test
|
|
Image: caption containing leading space
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb| bar]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div> bar</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption> bar</figcaption></figure>
|
|
!! end
|
|
|
|
# html/php output not have newlines after table, td, th, etc. because
|
|
# Linker::makeThumbLink2() replaces the newlines with spaces since
|
|
# the table is inside a caption.
|
|
# FIXME: Verify if that circa 2004 fix is still required.
|
|
!! test
|
|
Image: caption containing a table
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|thumb|200px|This is an example image thumbnail caption with a table
|
|
{|
|
|
!Foo!!Bar
|
|
|-
|
|
|Foo1||Bar1
|
|
|}
|
|
and some more text.]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This is an example image thumbnail caption with a table <table> <tbody><tr> <th>Foo</th> <th>Bar </th></tr> <tr> <td>Foo1</td> <td>Bar1 </td></tr></tbody></table> and some more text.</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>This is an example image thumbnail caption with a table
|
|
<table>
|
|
<tbody>
|
|
<tr><th>Foo</th><th>Bar</th></tr>
|
|
<tr>
|
|
<td>Foo1</td>
|
|
<td>Bar1</td></tr></tbody></table>and some more text.</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
T5090: External links other than http: in image captions
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|200x200px|This caption has [irc://example.net irc] and [https://example.com Secure] ext links in it.]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>This caption has <a rel="nofollow" class="external text" href="irc://example.net">irc</a> and <a rel="nofollow" class="external text" href="https://example.com">Secure</a> ext links in it.</div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>This caption has <a rel="mw:ExtLink" href="irc://example.net" class="external text">irc</a> and <a rel="mw:ExtLink" href="https://example.com" class="external text">Secure</a> ext links in it.</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Custom class
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:foobar.jpg|a|class=b]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="a"><img alt="a" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" class="b" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size b" typeof="mw:File" data-mw='{"caption":"a"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="a"><img alt="a" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Localized image handling (1).
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
language=es
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Archivo:Foobar.jpg|izquierda|enlace=foo|caption]]
|
|
!! html/php
|
|
<div class="floatleft"><a href="/wiki/Foo" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-left" typeof="mw:File"><a href="./Foo" title="caption"><img alt="caption" resource="./Archivo:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Localized image handling (2).
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=wt2html,wt2wt,html2html
|
|
language=es
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Archivo:Foobar.jpg|miniatura|izquierda|enlace=foo|caption]]
|
|
!! html/php
|
|
<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/Foo" title="Foo"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/Archivo:Foobar.jpg" class="internal" title="Aumentar"></a></div>caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-left" typeof="mw:File/Thumb"><a href="./Foo" title="Foo"><img resource="./Archivo:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Localized image handling (3).
|
|
!! options
|
|
language=fa
|
|
parsoid=html2wt
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></figure>
|
|
!! wikitext
|
|
[[File:Foobar.jpg|بندانگشتی]]
|
|
!! end
|
|
|
|
!! test
|
|
"border", "frameless" and "class" attributes on an image.
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|frameless|border|class=extra|caption]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="extra thumbborder" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size mw-image-border extra" typeof="mw:File/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
# Note that 'right' is the default alignment, despite the misspelled 'righ' below
|
|
!! test
|
|
Invalid image attributes (T64500)
|
|
!! options
|
|
thumbsize=220
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|float|left|caption]]
|
|
|
|
[[File:Foobar.jpg|thumb|righ|caption]]
|
|
|
|
[[File:Foobar.jpg|bogus1|thumb|bogus2|left|bogus3|caption]]
|
|
!! html/php
|
|
<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-left" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure class="mw-default-size mw-halign-left" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! article
|
|
File:Barfoo.jpg
|
|
!! text
|
|
#REDIRECT [[File:Barfoo.jpg]]
|
|
!! endarticle
|
|
|
|
# FIXME: Parsoid should run this test -- but we'd need to teach the
|
|
# mockAPI about the redirected Barfoo.jpg image.
|
|
!! test
|
|
Redirected image
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:Barfoo.jpg]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Barfoo.jpg" class="mw-redirect" title="File:Barfoo.jpg">File:Barfoo.jpg</a>
|
|
</p>
|
|
!! end
|
|
|
|
## FIXME: Parsoid needs to learn about this flag.
|
|
!! test
|
|
Missing image with uploads disabled
|
|
!! options
|
|
wgEnableUploads=0
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobaz.jpg]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobaz.jpg" title="File:Foobaz.jpg">File:Foobaz.jpg</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Foobaz.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Foobaz.jpg">File:Foobaz.jpg</span></a></span></p>
|
|
!! end
|
|
|
|
# Parsoid-specific testing for images
|
|
# https://www.mediawiki.org/wiki/Specs/HTML#Images
|
|
# Currently imperfect due to a flaw in the Parsoid testrunner
|
|
# Work in progress
|
|
# THESE TESTS SHOULD BE MOVED UP and merged with the php-specific
|
|
# image tests.
|
|
|
|
!! test
|
|
Parsoid-specific image handling - simple image with size and middle alignment
|
|
!! wikitext
|
|
[[File:Foobar.jpg|middle|50px]]
|
|
!! html/parsoid
|
|
<p><span class="mw-valign-middle" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - simple image with size, middle alignment, non-standard namespace alias
|
|
!! options
|
|
parsoid=wt2wt,wt2html,html2html
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|middle|50px]]
|
|
!! html/parsoid
|
|
<p><span class="mw-valign-middle" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - simple image with size and middle alignment (existing content)
|
|
!! wikitext
|
|
[[File:Foobar.jpg|50px|middle]]
|
|
!! html/parsoid
|
|
<p><span class="mw-valign-middle" typeof="mw:File" data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"middle","ak":"middle"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - simple image with size and middle alignment and non-standard namespace name
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|50px|middle]]
|
|
!! html/parsoid
|
|
<p><span class="mw-valign-middle" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - simple image with both sizes, a baseline alignment, and a caption
|
|
!! wikitext
|
|
[[File:Foobar.jpg|500x10px|baseline|caption]]
|
|
!! html/parsoid
|
|
<p><span class="mw-valign-baseline" typeof="mw:File" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"500x10px"},{"ck":"baseline","ak":"baseline"},{"ck":"caption","ak":"caption"}],"size":"500x10"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/89px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="10" width="89" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/133px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"10","width":"89"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - simple image with border and size spec
|
|
!! wikitext
|
|
[[File:Foobar.jpg|50px|border|caption]]
|
|
!! html/parsoid
|
|
<p><span class="mw-image-border" typeof="mw:File" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}]}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - thumbnail with halign, valign, and caption
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
[[File:Foobar.jpg|left|baseline|thumb|caption content]]
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-left" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption content</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - thumbnail with halign, valign, and caption (existing content)
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|left|baseline|caption content]]
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-left" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"left","ak":"left"},{"ck":"baseline","ak":"baseline"},{"ck":"caption","ak":"caption content"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption content</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - thumbnail with specific size, halign, valign, and caption
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|right|middle|thumb|50x50px|caption]]
|
|
!! html/parsoid
|
|
<figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - thumbnail with specific size, halign, valign, and caption (existing content)
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|50x50px|right|middle|caption]]
|
|
!! html/parsoid
|
|
<figure class="mw-halign-right" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"width","ak":"50x50px"},{"ck":"right","ak":"right"},{"ck":"middle","ak":"middle"},{"ck":"caption","ak":"caption"}],"size":"50x50"}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="6" width="50" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - framed image with specific size and caption (size is ignored)
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
[[File:Foobar.jpg|frame|500x50px|caption]]
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - framed image with specific size, halign, valign, and caption (size is ignored)
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! wikitext
|
|
[[File:Foobar.jpg|left|baseline|frame|500x50px|caption]]
|
|
!! html/parsoid
|
|
<figure class="mw-halign-left" typeof="mw:File/Frame"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - frameless image with specific size, border, and caption
|
|
!! wikitext
|
|
[[File:Foobar.jpg|frameless|442x50px|border|caption]]
|
|
!! html/parsoid
|
|
<p><span class="mw-image-border" typeof="mw:File/Frameless" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"frameless","ak":"frameless"},{"ck":"width","ak":"442x50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}],"size":"442x50"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="50" width="442" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/662px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/883px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"50","width":"442"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - simple image with a formatted caption
|
|
!! wikitext
|
|
[[File:Foobar.jpg|<table><tr><td>a</td><td>b</td></tr><tr><td>c</td></tr></table>]]
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"<table><tr><td>a</td><td>b</td></tr><tr><td>c</td></tr></table>"}]}' data-mw='{"caption":"<table data-parsoid='{\"stx\":\"html\",\"dsr\":[18,81,7,8]}'><tbody data-parsoid='{\"dsr\":[25,73,0,0]}'><tr data-parsoid='{\"stx\":\"html\",\"dsr\":[25,54,4,5]}'><td data-parsoid='{\"stx\":\"html\",\"dsr\":[29,39,4,5]}'>a</td><td data-parsoid='{\"stx\":\"html\",\"dsr\":[39,49,4,5]}'>b</td></tr><tr data-parsoid='{\"stx\":\"html\",\"dsr\":[54,73,4,5]}'><td data-parsoid='{\"stx\":\"html\",\"dsr\":[58,68,4,5]}'>c</td></tr></tbody></table>"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="abc"><img alt="abc" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - caption with a template in it
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|200x23px|This caption has a {{1x|transclusion}} in it.]]
|
|
!! html/parsoid
|
|
<figure typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>This caption has a <span about="#mwt1" typeof="mw:Transclusion" data-mw="{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}">transclusion</span> in it.</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - caption with unbalanced tags in it
|
|
!! options
|
|
parsoid=wt2html,wt2wt,html2html
|
|
!! wikitext
|
|
foo
|
|
[[File:Foobar.jpg|thumb|200x200px|This caption has a <center>unbalanced tag in it.]]
|
|
bar
|
|
!! html/parsoid
|
|
<p>foo</p>
|
|
<figure typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="23" width="200" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>This caption has a <center>unbalanced tag in it.</center></figcaption></figure>
|
|
<p>bar</p>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - empty caption (1)
|
|
!! options
|
|
parsoid=wt2html,wt2wt
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|]]
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
# empty captions don't get serialized unless we're in the "round trip" case
|
|
!! test
|
|
Parsoid-specific image handling - empty caption (2)
|
|
!! options
|
|
parsoid=html2wt
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb">
|
|
<a href="./File:Foobar.jpg">
|
|
<img resource="./File:Foobar.jpg"
|
|
src="http://example.com/images/3/3a/Foobar.jpg"
|
|
decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap"
|
|
height="25" width="220"/>
|
|
</a>
|
|
<figcaption></figcaption>
|
|
</figure>
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb]]
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - whitespace caption
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb| ]]
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption> </figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Parsoid-specific image handling - lang option
|
|
!! wikitext
|
|
foo
|
|
[[File:Foobar.svg|lang=de|caption]]
|
|
bar
|
|
!! html/parsoid
|
|
<p>foo
|
|
<span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"caption"}'><a href="./File:Foobar.svg?lang=de" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.svg" src="http://example.com/images/thumb/f/ff/Foobar.svg/langde-240px-Foobar.svg.png" decoding="async" lang="de" data-file-width="240" data-file-height="180" data-file-type="drawing" height="180" width="240" srcset="http://example.com/images/thumb/f/ff/Foobar.svg/langde-360px-Foobar.svg.png 1.5x, http://example.com/images/thumb/f/ff/Foobar.svg/langde-480px-Foobar.svg.png 2x" data-parsoid='{"a":{"resource":"./File:Foobar.svg","lang":"de","height":"180","width":"240"},"sa":{"resource":"File:Foobar.svg","lang":"lang=de"}}' class="mw-file-element"/></a></span>
|
|
bar</p>
|
|
!! end
|
|
|
|
!! test
|
|
File containing double quotes and spaces
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Cool "Gator".png]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=Special:Upload&wpDestFile=Cool_%22Gator%22.png" class="new" title="File:Cool "Gator".png">File:Cool "Gator".png</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Cool_%22Gator%22.png"><span class="mw-file-element mw-broken-media" resource='./File:Cool_"Gator".png' data-parsoid='{"a":{"resource":"./File:Cool_\"Gator\".png"},"sa":{"resource":"File:Cool \"Gator\".png"}}'>File:Cool "Gator".png</span></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
File containing single quotes
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foo's ''italic'' bar.jpg]]
|
|
[[File:Foo's ''italic'' bar.jpg|Foo's ''italic'' bar]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=Special:Upload&wpDestFile=Foo%27s_%27%27italic%27%27_bar.jpg" class="new" title="File:Foo's ''italic'' bar.jpg">File:Foo's <i>italic</i> bar.jpg</a>
|
|
<a href="/index.php?title=Special:Upload&wpDestFile=Foo%27s_%27%27italic%27%27_bar.jpg" class="new" title="File:Foo's ''italic'' bar.jpg">Foo's italic bar</a>
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Broken image links with HTML captions (T41700)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Nonexistent|<script></script>]]
|
|
[[File:Nonexistent|100x100px|<script></script>]]
|
|
[[File:Nonexistent|<]]
|
|
[[File:Nonexistent|a<i>b</i>c]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><script></script></a>
|
|
<a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><script></script></a>
|
|
<a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent"><</a>
|
|
<a href="/index.php?title=Special:Upload&wpDestFile=Nonexistent" class="new" title="File:Nonexistent">abc</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Error mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"<script></script>"}]}' data-mw='{"caption":"&lt;script>&lt;/script>","errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent" data-parsoid='{"a":{"resource":"./File:Nonexistent"},"sa":{"resource":"File:Nonexistent"}}'><script></script></span></a></span>
|
|
<span typeof="mw:Error mw:File" data-parsoid='{"optList":[{"ck":"width","ak":"100x100px"},{"ck":"caption","ak":"<script></script>"}]}' data-mw='{"caption":"&lt;script>&lt;/script>","errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent" data-width="100" data-height="100" data-parsoid='{"a":{"resource":"./File:Nonexistent"},"sa":{"resource":"File:Nonexistent"}}'><script></script></span></a></span>
|
|
<span class="mw-default-size" typeof="mw:Error mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"&lt;"}]}' data-mw='{"caption":"<span typeof=\"mw:Entity\" data-parsoid='{\"src\":\"&amp;lt;\",\"srcContent\":\"&lt;\",\"dsr\":[107,111,null,null]}'>&lt;</span>","errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent" data-parsoid='{"a":{"resource":"./File:Nonexistent"},"sa":{"resource":"File:Nonexistent"}}'><</span></a></span>
|
|
<span class="mw-default-size" typeof="mw:Error mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"a<i>b</i>c"}]}' data-mw='{"caption":"a<i data-parsoid='{\"stx\":\"html\",\"dsr\":[134,142,3,4]}'>b</i>c","errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent" data-parsoid='{"a":{"resource":"./File:Nonexistent"},"sa":{"resource":"File:Nonexistent"}}'>abc</span></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Media in wikilink
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Test|[[File:Foobar.jpg]]]]
|
|
!! html/php
|
|
<p>[[Test|<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>]]
|
|
</p>
|
|
!! html/parsoid
|
|
<p>[[Test|<span class="mw-default-size" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span>]]</p>
|
|
!! end
|
|
|
|
!! article
|
|
No link
|
|
!! text
|
|
Dummy article to suppress redlinks in tests
|
|
!! end
|
|
|
|
!! test
|
|
Template with thumb image (with link in description)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
{{paramtest|param=[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]}}
|
|
!! html/php
|
|
<p>This is a test template with parameter </p><div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&wpDestFile=Noimage.png" class="new" title="File:Noimage.png">File:Noimage.png</a> <div class="thumbcaption"><a href="/wiki/No_link" title="No link">link</a> <a href="/wiki/No_link" title="No link">caption</a></div></div></div>
|
|
!! html/parsoid
|
|
<p about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"param","named":true}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"paramtest","href":"./Template:Paramtest"},"params":{"param":{"wt":"[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]"}},"i":0}}]}'>This is a test template with parameter </p><figure class="mw-default-size" typeof="mw:Error mw:File/Thumb" about="#mwt1" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Noimage.png"><span class="mw-file-element mw-broken-media" resource="./File:Noimage.png" data-width="180">File:Noimage.png</span></a><figcaption><a rel="mw:WikiLink" href="./No_link" title="No link">link</a> <a rel="mw:WikiLink" href="./No_link" title="No link">caption</a></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
T3219 URL next to image (good)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
http://example.com [[File:Foobar.jpg]]
|
|
!! html/php
|
|
<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><a rel="mw:ExtLink" href="http://example.com" class="external free">http://example.com</a> <span class="mw-default-size" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!!end
|
|
|
|
!! test
|
|
T3219 URL next to image (broken)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
http://example.com[[File:Foobar.jpg]]
|
|
!! html/php
|
|
<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><a rel="mw:ExtLink" href="http://example.com" class="external free">http://example.com</a><span class="mw-default-size" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!!end
|
|
|
|
!! test
|
|
Image link to nonexistent file (T3850 - good)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:No_such.jpg]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=Special:Upload&wpDestFile=No_such.jpg" class="new" title="File:No such.jpg">File:No such.jpg</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/No_such.jpg"><span class="mw-file-element mw-broken-media" resource="./File:No_such.jpg">File:No such.jpg</span></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
:Image link to nonexistent file (T3850 - bad)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[:Image:No such.jpg]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=File:No_such.jpg&action=edit&redlink=1" class="new" title="File:No such.jpg (page does not exist)">Image:No such.jpg</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><a rel="mw:WikiLink" href="./File:No_such.jpg?action=edit&redlink=1" title="File:No such.jpg" class="new" typeof="mw:LocalizedAttrs" data-parsoid='{"stx":"simple","a":{"href":"./File:No_such.jpg"},"sa":{"href":":Image:No such.jpg"}}' data-mw-i18n='{"title":{"lang":"x-page","key":"red-link-title","params":["File:No such.jpg"]}}'>Image:No such.jpg</a></p>
|
|
!! end
|
|
|
|
!! test
|
|
Fuzz testing: image with bogus manual thumbnail
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:foobar.jpg|thumbnail= ]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;">Error creating thumbnail: <div class="thumbcaption"></div></div></div>
|
|
!! html/parsoid
|
|
<figure typeof="mw:Error mw:File/Thumb" data-parsoid='{"optList":[{"ck":"manualthumb","ak":"thumbnail= "}]}' data-mw='{"attribs":[["manualthumb",{"txt":""}]],"errors":[{"key":"apierror-invalidtitle","message":"Invalid thumbnail title.","params":{"name":""}}]}'><a href="./Special:FilePath/Foobar.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Foobar.jpg" data-parsoid='{"a":{"resource":"./File:Foobar.jpg"},"sa":{"resource":"Image:foobar.jpg"}}'>File:Foobar.jpg</span></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery with valid attributes
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery type="123" summary="345">
|
|
File:File:Foobar.jpg
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional" type="123">
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">File:Foobar.jpg</div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" type="123" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{"type":"123","summary":"345"},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/File:Foobar.jpg"><span class="mw-file-element mw-broken-media" resource="./File:File:Foobar.jpg" data-width="120" data-height="120">File:File:Foobar.jpg</span></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
## Parsoid thinks the "centre" here is a property, not a caption.
|
|
!! test
|
|
Gallery
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2html"]
|
|
}
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
image1.png |
|
|
image2.gif|||||
|
|
|
|
image3|
|
|
image4 |300px| centre
|
|
image5.svg| http://///////
|
|
[[x|xx]]]]
|
|
* image6
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional">
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">Image1.png</div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">Image2.gif</div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">Image3</div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">Image4</div>
|
|
<div class="gallerytext"> centre</div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">Image5.svg</div>
|
|
<div class="gallerytext"> <a rel="nofollow" class="external free" href="http://///////">http://///////</a></div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">* image6</div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Image1.png"><span class="mw-file-element mw-broken-media" resource="./File:Image1.png" data-width="120" data-height="120">File:Image1.png</span></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Image2.gif"><span class="mw-file-element mw-broken-media" resource="./File:Image2.gif" data-width="120" data-height="120">File:Image2.gif</span></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Image3"><span class="mw-file-element mw-broken-media" resource="./File:Image3" data-width="120" data-height="120">File:Image3</span></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Image4"><span class="mw-file-element mw-broken-media" resource="./File:Image4" data-width="120" data-height="120">File:Image4</span></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Image5.svg"><span class="mw-file-element mw-broken-media" resource="./File:Image5.svg" data-width="120" data-height="120">http://///////</span></a></span></div><div class="gallerytext"> <a rel="mw:ExtLink" href="http://///////" class="external free">http://///////</a></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/*_image6"><span class="mw-file-element mw-broken-media" resource="./File:*_image6" data-width="120" data-height="120">File:* image6</span></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery (with options, html)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery widths="70px" heights="40px" perrow="2" caption="Foo [[Main Page]]">
|
|
File:Nonexistent.jpg|caption
|
|
File:Nonexistent.jpg
|
|
image:foobar.jpg|some '''caption''' [[Main Page]]
|
|
image:foobar.jpg
|
|
image:foobar.jpg|alt=This is a foo-bar.|blabla.
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional" style="max-width: 226px;">
|
|
<li class="gallerycaption">Foo <a href="/wiki/Main_Page" title="Main Page">Main Page</a></li>
|
|
<li class="gallerybox" style="width: 105px"><div style="width: 105px">
|
|
<div class="thumb" style="height: 70px;">Nonexistent.jpg</div>
|
|
<div class="gallerytext">caption</div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 105px"><div style="width: 105px">
|
|
<div class="thumb" style="height: 70px;">Nonexistent.jpg</div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 105px"><div style="width: 105px">
|
|
<div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image" title="some caption Main Page"><img alt="some caption Main Page" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" decoding="async" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
|
|
<div class="gallerytext">some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 105px"><div style="width: 105px">
|
|
<div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" decoding="async" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 105px"><div style="width: 105px">
|
|
<div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image" title="blabla."><img alt="This is a foo-bar." src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" decoding="async" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
|
|
<div class="gallerytext">blabla.</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" style="max-width: 226px;" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{"widths":"70px","heights":"40px","perrow":"2"},"body":{}}'>
|
|
<li class="gallerycaption">Foo <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></li>
|
|
<li class="gallerybox" style="width: 105px;"><div class="thumb" style="height: 70px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent.jpg" data-width="70" data-height="40">caption</span></a></span></div><div class="gallerytext">caption</div></li>
|
|
<li class="gallerybox" style="width: 105px;"><div class="thumb" style="height: 70px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent.jpg" data-width="70" data-height="40">File:Nonexistent.jpg</span></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="some caption Main Page"><img alt="some caption Main Page" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"8","width":"70"},"sa":{"resource":"image:foobar.jpg"}}' class="mw-file-element"/></a></span></div><div class="gallerytext">some <b>caption</b> <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></div></li>
|
|
<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"8","width":"70"},"sa":{"resource":"image:foobar.jpg"}}' class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="blabla."><img alt="This is a foo-bar." resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"8","width":"70"},"sa":{"resource":"image:foobar.jpg"}}' class="mw-file-element"/></a></span></div><div class="gallerytext">blabla.</div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery (without px units)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery widths="70" heights="40">
|
|
File:Foobar.jpg
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional">
|
|
<li class="gallerybox" style="width: 105px"><div style="width: 105px">
|
|
<div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" decoding="async" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{"widths":"70","heights":"40"},"body":{}}'>
|
|
<li class="gallerybox" style="width: 105px;"><div class="thumb" style="width: 100px; height: 70px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="8" width="70" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery (with invalid units)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery widths="70em" heights="40em">
|
|
File:Foobar.jpg
|
|
</gallery>
|
|
!! html/php
|
|
<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" decoding="async" 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>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{"widths":"70em","heights":"40em"},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery with link that has fragment
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2html", "html2html"]
|
|
}
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
image:foobar.jpg|link=Main_Page
|
|
image:foobar.jpg|link=Main_Page#section
|
|
image:foobar.jpg|link=Main Page#section|caption
|
|
</gallery>
|
|
!! html/php
|
|
<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/Main_Page" title="Main Page"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page#section" title="Main Page"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page#section" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">caption</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./Main_Page" title="Main Page"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./Main_Page#section" title="Main Page"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./Main_Page#section" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext">caption</div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery with template inside caption
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery caption="{{1x|hi}}">
|
|
File:Foobar.jpg|{{1x|ho}}
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional">
|
|
<li class="gallerycaption">hi</li>
|
|
<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" title="ho"><img alt="ho" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">ho</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt6" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerycaption"><span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"hi"}},"i":0}}]}'>hi</span></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="ho"><img alt="ho" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"><span about="#mwt5" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"ho"}},"i":0}}]}'>ho</span></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! article
|
|
Link
|
|
!! text
|
|
Dummy article to suppress redlinks in tests
|
|
!! end
|
|
|
|
# Ugh! The +standalone/+integrated repetition is because of the {{ns:-1}} wikitext that
|
|
# renders as "-1" in standalone mode and "Special" in integrated mode.
|
|
!! test
|
|
Gallery with wikitext inside gallery caption
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2html", "html2html"]
|
|
}
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery caption="# This should not be a list item
|
|
|
|
Text '''bold''' [[link]] {{ns:-1}}
|
|
|
|
[[File:Foobar.jpg|thumb|File in gallery caption]]">
|
|
File:Foobar.jpg|Image caption
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional">
|
|
<li class="gallerycaption"># This should not be a list item Text <b>bold</b> <a href="/wiki/Link" title="Link">link</a> Special <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>File in gallery caption</div></div></div></li>
|
|
<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" title="Image caption"><img alt="Image caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">Image caption</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid+standalone
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt4" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerycaption"># This should not be a list item Text <b>bold</b> <a rel="mw:WikiLink" href="./Link" title="Link" data-parsoid='{"stx":"simple","a":{"href":"./Link"},"sa":{"href":"link"}}'>link</a> <span about="#mwt3" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":[{"template":{"target":{"wt":"ns:-1","function":"ns"},"params":{},"i":0}}]}'>-1</span> <figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"File in gallery caption"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"20","width":"180"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a><figcaption>File in gallery caption</figcaption></figure></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File" data-parsoid='{"optList":[{"ck":"width","ak":"120x120px"},{"ck":"caption","ak":"Image caption"}]}'><a href="./File:Foobar.jpg" class="mw-file-description" title="Image caption"><img alt="Image caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"14","width":"120"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></div><div class="gallerytext">Image caption</div></li>
|
|
</ul>
|
|
!! html/parsoid+integrated
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerycaption"># This should not be a list item Text <b>bold</b> <a rel="mw:WikiLink" href="./Link" title="Link">link</a> <span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"ns:-1","function":"ns"},"params":{},"i":0}}]}'>Special</span> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>File in gallery caption</figcaption></figure></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Image caption"><img alt="Image caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext">Image caption</div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery with wikitext inside caption
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:Foobar.jpg|alt=galleryalt|[[File:Foobar.jpg|alt=inneralt|20x20px|desc]]
|
|
File:Foobar.jpg|alt=galleryalt|{{Test|unamedParam|alt=param}}
|
|
</gallery>
|
|
!! html/php
|
|
<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="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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"><a href="/wiki/File:Foobar.jpg" class="image" title="desc"><img alt="inneralt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" decoding="async" width="20" height="2" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" /></a></div>
|
|
</div></li>
|
|
<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" title="This is a test template"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">This is a test template</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt6" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="galleryalt" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"><span typeof="mw:File" data-mw='{"caption":"desc"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="desc"><img alt="inneralt" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" class="mw-file-element"/></a></span></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="This is a test template"><img alt="galleryalt" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"><span about="#mwt4" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"Test","href":"./Template:Test"},"params":{"1":{"wt":"unamedParam"},"alt":{"wt":"param"}},"i":0}}]}'>This is a test template</span></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery with wikitext incl bogus HTML tag (T237318)
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:Foobar.jpg|</ref>
|
|
</gallery>
|
|
!! html/php
|
|
<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" title="</ref>"><img alt="</ref>" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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"></ref></div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="</ref>"><img alt="</ref>" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></ref></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery (with showfilename option)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery showfilename="">
|
|
File:Nonexistent.jpg|caption
|
|
File:Nonexistent.jpg
|
|
File:Foobar.jpg|some '''caption''' [[Main Page]]
|
|
File:Foobar.jpg
|
|
File:Redirect to foobar.jpg
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional">
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
|
|
<div class="gallerytext"><a href="/wiki/File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">Nonexistent.jpg</a>
|
|
caption</div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
|
|
<div class="gallerytext"><a href="/wiki/File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">Nonexistent.jpg</a>
|
|
</div>
|
|
</div></li>
|
|
<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" title="some caption Main Page"><img alt="some caption Main Page" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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"><a href="/wiki/File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">Foobar.jpg</a>
|
|
some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div>
|
|
</div></li>
|
|
<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" decoding="async" 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"><a href="/wiki/File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">Foobar.jpg</a>
|
|
</div>
|
|
</div></li>
|
|
<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="Redirect to foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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"><a href="/wiki/File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">Foobar.jpg</a>
|
|
</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid+integrated
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{"showfilename":""},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent.jpg" data-width="120" data-height="120">caption</span></a></span></div><div class="gallerytext"><a href="./File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">File:Nonexistent.jpg</a>caption</div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent.jpg" data-width="120" data-height="120">File:Nonexistent.jpg</span></a></span></div><div class="gallerytext"><a href="./File:Nonexistent.jpg" class="galleryfilename galleryfilename-truncate" title="File:Nonexistent.jpg">File:Nonexistent.jpg</a></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="some caption Main Page"><img alt="some caption Main Page" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"><a href="./File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">File:Foobar.jpg</a>some <b>caption</b> <a rel="mw:WikiLink" href="./Main_Page" title="Main Page">Main Page</a></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"><a href="./File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">File:Foobar.jpg</a></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"><a href="./File:Foobar.jpg" class="galleryfilename galleryfilename-truncate" title="File:Foobar.jpg">File:Foobar.jpg</a></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
## Should Parsoid be preserving these variations? See T151367
|
|
!! test
|
|
Gallery (with namespace-less filenames)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2html", "html2html"]
|
|
}
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:Nonexistent.jpg
|
|
Nonexistent.jpg
|
|
image:foobar.jpg
|
|
foobar.jpg
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional">
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="height: 150px;">Nonexistent.jpg</div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
<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" decoding="async" 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>
|
|
<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" decoding="async" 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>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent.jpg" data-width="120" data-height="120">File:Nonexistent.jpg</span></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Nonexistent.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Nonexistent.jpg" data-width="120" data-height="120">File:Nonexistent.jpg</span></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery override link with wikilink (T36852)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:Foobar.jpg|link=Wikilink|alt=galleryalt
|
|
</gallery>
|
|
!! html/php
|
|
<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/Wikilink" title="Wikilink"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./Wikilink" title="Wikilink"><img alt="galleryalt" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery override link with absolute external link (T36852)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:Foobar.jpg|alt=galleryalt|link=http://www.example.org
|
|
</gallery>
|
|
!! html/php
|
|
<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="http://www.example.org" rel="nofollow"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File" data-parsoid='{"optList":[{"ck":"alt","ak":"alt=galleryalt"},{"ck":"link","ak":"link=http://www.example.org"},{"ck":"width","ak":"120x120px"}]}'><a href="http://www.example.org"><img alt="galleryalt" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
## Putting the caption at the end here runs into T49646 on the php side
|
|
## so reducing the modes this runs in Parsoid
|
|
!! test
|
|
Gallery override link with absolute external link with LanguageConverter
|
|
!! options
|
|
language=zh
|
|
parsoid=wt2html,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:foobar.jpg|caption|alt=galleryalt|link=http://www.example.org
|
|
</gallery>
|
|
!! html/php
|
|
<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="http://www.example.org" title="caption" rel="nofollow"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">caption</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="http://www.example.org" title="caption"><img alt="galleryalt" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext">caption</div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery override link with malicious javascript (T36852)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2html", "html2html"]
|
|
}
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:Foobar.jpg|alt=galleryalt|link=" onclick="alert('malicious javascript code!');
|
|
</gallery>
|
|
!! html/php
|
|
<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/%22_onclick%3D%22alert(%27malicious_javascript_code!%27);" title="" onclick="alert('malicious javascript code!');"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./"_onclick="alert('malicious_javascript_code!');" title="" onclick="alert('malicious javascript code!');"><img alt="galleryalt" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery with invalid title as link (T45964)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2html", "html2html"]
|
|
}
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:Foobar.jpg|link=<
|
|
</gallery>
|
|
!! html/php
|
|
<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" decoding="async" 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>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File" data-parsoid='{"optList":[{"ck":"link","ak":"link=<"},{"ck":"width","ak":"120x120px"}]}' data-mw='{"attribs":[["link",{"txt":"<"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Serialize gallery without attrs in data-mw
|
|
!! options
|
|
parsoid={
|
|
"modes": ["html2wt"]
|
|
}
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","body":{}}'>
|
|
<li class="gallerycaption">123</li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Test.png"><span class="mw-file-element mw-broken-media" resource="./File:Test.png" data-width="120" data-height="120">File:Test.png</span></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! wikitext
|
|
<gallery caption="123">
|
|
File:Test.png
|
|
</gallery>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery with class and style attributes
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery class="center" style="text-align: center;">
|
|
File:Foobar.jpg
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-traditional center" style="text-align: center;">
|
|
<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" decoding="async" 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>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional center" style="text-align: center;" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{"class":"center","style":"text-align: center;"},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery in nolines mode
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery mode="nolines" showfilenames="yes" caption="No Lines!">
|
|
File:Foobar.jpg|foo
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-nolines">
|
|
<li class="gallerycaption">No Lines!</li>
|
|
<li class="gallerybox" style="width: 125px"><div style="width: 125px">
|
|
<div class="thumb" style="width: 120px;"><div style="margin:0px auto;"><a href="/wiki/File:Foobar.jpg" class="image" title="foo"><img alt="foo" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">foo</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-nolines" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{"mode":"nolines","showfilenames":"yes"},"body":{}}'>
|
|
<li class="gallerycaption">No Lines!</li>
|
|
<li class="gallerybox" style="width: 125px;"><div class="thumb" style="width: 120px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="foo"><img alt="foo" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext">foo</div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery in slideshow mode
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery mode="slideshow" showthumbnails="">
|
|
File:Foobar.jpg
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-slideshow" data-showthumbnails="1">
|
|
<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" decoding="async" 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>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-slideshow" data-showthumbnails="1" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{"mode":"slideshow","showthumbnails":""},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery in packed mode
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery mode="packed">
|
|
File:Foobar.jpg
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-packed">
|
|
<li class="gallerybox" style="width: 1061.3333333333px"><div style="width: 1061.3333333333px">
|
|
<div class="thumb" style="width: 1059.3333333333px;"><div style="margin:0px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1589px-Foobar.jpg" decoding="async" width="1060" height="120" srcset="http://example.com/images/3/3a/Foobar.jpg 1.5x" /></a></div></div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-packed" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{"mode":"packed"},"body":{}}'>
|
|
<li class="gallerybox" style="width: 1061.3333333333px;"><div class="thumb" style="width: 1059.3333333333px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1589px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="120" width="1060" srcset="http://example.com/images/3/3a/Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery in packed-overlay mode
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery mode="packed-overlay" showfilenames="yes" caption="Packed Overlay!">
|
|
File:Foobar.jpg|foo
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-packed-overlay">
|
|
<li class="gallerycaption">Packed Overlay!</li>
|
|
<li class="gallerybox" style="width: 1061.3333333333px"><div style="width: 1061.3333333333px">
|
|
<div class="thumb" style="width: 1059.3333333333px;"><div style="margin:0px auto;"><a href="/wiki/File:Foobar.jpg" class="image" title="foo"><img alt="foo" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1589px-Foobar.jpg" decoding="async" width="1060" height="120" srcset="http://example.com/images/3/3a/Foobar.jpg 1.5x" /></a></div></div>
|
|
<div class="gallerytextwrapper" style="width: 1040px"><div class="gallerytext">foo</div>
|
|
</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-packed-overlay" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{"mode":"packed-overlay","showfilenames":"yes"},"body":{}}'>
|
|
<li class="gallerycaption">Packed Overlay!</li>
|
|
<li class="gallerybox" style="width: 1061.3333333333px;"><div class="thumb" style="width: 1059.3333333333px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="foo"><img alt="foo" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1589px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="120" width="1060" srcset="http://example.com/images/3/3a/Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" class="mw-file-element"/></a></span></div><div class="gallerytextwrapper" style="width: 1040px;"><div class="gallerytext">foo</div></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Gallery in packed-hover mode
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery mode="packed-hover" showfilenames="yes" caption="Packed Hover!">
|
|
File:Foobar.jpg|foo
|
|
</gallery>
|
|
!! html/php
|
|
<ul class="gallery mw-gallery-packed-hover">
|
|
<li class="gallerycaption">Packed Hover!</li>
|
|
<li class="gallerybox" style="width: 1061.3333333333px"><div style="width: 1061.3333333333px">
|
|
<div class="thumb" style="width: 1059.3333333333px;"><div style="margin:0px auto;"><a href="/wiki/File:Foobar.jpg" class="image" title="foo"><img alt="foo" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1589px-Foobar.jpg" decoding="async" width="1060" height="120" srcset="http://example.com/images/3/3a/Foobar.jpg 1.5x" /></a></div></div>
|
|
<div class="gallerytextwrapper" style="width: 1040px"><div class="gallerytext">foo</div>
|
|
</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-packed-hover" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{"mode":"packed-hover","showfilenames":"yes"},"body":{}}'>
|
|
<li class="gallerycaption">Packed Hover!</li>
|
|
<li class="gallerybox" style="width: 1061.3333333333px;"><div class="thumb" style="width: 1059.3333333333px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="foo"><img alt="foo" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1589px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="120" width="1060" srcset="http://example.com/images/3/3a/Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" class="mw-file-element"/></a></span></div><div class="gallerytextwrapper" style="width: 1040px;"><div class="gallerytext">foo</div></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Serialize gallery image captions on a line
|
|
!! options
|
|
parsoid={
|
|
"modes": ["html2wt"]
|
|
}
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext"><p>hi</p><p>ho</p></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120"/></a></span></div><div class="gallerytext">hi<br />ho</div></li>
|
|
</ul>
|
|
!! wikitext
|
|
<gallery>
|
|
File:Foobar.jpg| hi ho
|
|
File:Foobar.jpg|hi<br />ho
|
|
</gallery>
|
|
!! end
|
|
|
|
!! test
|
|
Centre-aligned image
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:foobar.jpg|centre]]
|
|
!! html/php
|
|
<div class="center"><div class="floatnone"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-center" typeof="mw:File" data-parsoid='{"optList":[{"ck":"center","ak":"centre"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"Image:foobar.jpg"}}' class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
None-aligned image
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:foobar.jpg|none]]
|
|
!! html/php
|
|
<div class="floatnone"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-none" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"Image:foobar.jpg"}}' class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Width + Height sized image (using px) (height is ignored)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:foobar.jpg|640x480px]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" decoding="async" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File" data-parsoid='{"optList":[{"ck":"width","ak":"640x480px"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="73" width="640" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"73","width":"640"},"sa":{"resource":"Image:foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Width-sized image (using px, no following whitespace)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:foobar.jpg|640px]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" decoding="async" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File" data-parsoid='{"optList":[{"ck":"width","ak":"640px"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="73" width="640" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"73","width":"640"},"sa":{"resource":"Image:foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Width-sized image (using px, with following whitespace - test regression from r39467)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:foobar.jpg|640px ]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" decoding="async" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File" data-parsoid='{"optList":[{"ck":"width","ak":"640px "}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="73" width="640" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"73","width":"640"},"sa":{"resource":"Image:foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Width-sized image (using px, with preceding whitespace - test regression from r39467)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Image:foobar.jpg| 640px]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" decoding="async" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File" data-parsoid='{"optList":[{"ck":"width","ak":" 640px"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="73" width="640" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"73","width":"640"},"sa":{"resource":"Image:foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with page parameter
|
|
!! options
|
|
djvu
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:LoremIpsum.djvu]]
|
|
|
|
[[File:LoremIpsum.djvu|page=2]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:LoremIpsum.djvu" class="image"><img alt="LoremIpsum.djvu" src="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page1-2480px-LoremIpsum.djvu.jpg" decoding="async" width="2480" height="3508" srcset="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page1-3720px-LoremIpsum.djvu.jpg 1.5x, http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page1-4960px-LoremIpsum.djvu.jpg 2x" /></a>
|
|
</p><p><a href="/index.php?title=File:LoremIpsum.djvu&page=2" class="image"><img alt="LoremIpsum.djvu" src="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-2480px-LoremIpsum.djvu.jpg" decoding="async" width="2480" height="3508" srcset="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-3720px-LoremIpsum.djvu.jpg 1.5x, http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-4960px-LoremIpsum.djvu.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File"><a href="./File:LoremIpsum.djvu" class="mw-file-description"><img resource="./File:LoremIpsum.djvu" src="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page1-2480px-LoremIpsum.djvu.jpg" decoding="async" data-file-width="2480" data-file-height="3508" data-file-type="office" height="3508" width="2480" srcset="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page1-3720px-LoremIpsum.djvu.jpg 1.5x, http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page1-4960px-LoremIpsum.djvu.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
<p><span class="mw-default-size" typeof="mw:File" data-mw='{"attribs":[["page",{"txt":"2"}]]}'><a href="./File:LoremIpsum.djvu?page=2" class="mw-file-description"><img resource="./File:LoremIpsum.djvu" src="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-2480px-LoremIpsum.djvu.jpg" decoding="async" data-file-width="2480" data-file-height="3508" data-file-type="office" height="3508" width="2480" srcset="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-3720px-LoremIpsum.djvu.jpg 1.5x, http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-4960px-LoremIpsum.djvu.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with page parameter generated by a template
|
|
!! options
|
|
djvu
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:LoremIpsum.djvu|page={{1x|2}}]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=File:LoremIpsum.djvu&page=2" class="image"><img alt="LoremIpsum.djvu" src="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-2480px-LoremIpsum.djvu.jpg" decoding="async" width="2480" height="3508" srcset="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-3720px-LoremIpsum.djvu.jpg 1.5x, http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-4960px-LoremIpsum.djvu.jpg 2x" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" data-mw='{"attribs":[["page",{"html":"page=<span typeof=\"mw:Transclusion\" data-mw='{\"parts\":[{\"template\":{\"target\":{\"wt\":\"1x\",\"href\":\"./Template:1x\"},\"params\":{\"1\":{\"wt\":\"2\"}},\"i\":0}}]}'>2</span>","txt":"2"}]]}'><a href="./File:LoremIpsum.djvu?page=2" class="mw-file-description"><img resource="./File:LoremIpsum.djvu" src="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-2480px-LoremIpsum.djvu.jpg" decoding="async" data-file-width="2480" data-file-height="3508" data-file-type="office" height="3508" width="2480" srcset="http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-3720px-LoremIpsum.djvu.jpg 1.5x, http://example.com/images/thumb/5/5f/LoremIpsum.djvu/page2-4960px-LoremIpsum.djvu.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image with modified page parameter; serialize data-mw not href query
|
|
!! options
|
|
djvu
|
|
parsoid={
|
|
"modes": ["wt2wt", "selser"],
|
|
"changes": [
|
|
["a[href]", "attr", "href", "./File:LoremIpsum.djvu?page=3"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[File:LoremIpsum.djvu|page 2]]
|
|
|
|
[[File:LoremIpsum.djvu|page {{1x|2}}]]
|
|
!! wikitext/edited
|
|
[[File:LoremIpsum.djvu|page 2]]
|
|
|
|
[[File:LoremIpsum.djvu|page {{1x|2}}]]
|
|
!! end
|
|
|
|
!! test
|
|
Image with modified page parameter; serialize data-mw not href query (2)
|
|
!! options
|
|
djvu
|
|
parsoid={
|
|
"modes": ["wt2wt", "selser"],
|
|
"changes": [
|
|
["span", "attr", "data-mw", "{}"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[File:LoremIpsum.djvu|page 2]]
|
|
|
|
[[File:LoremIpsum.djvu|page {{1x|2}}]]
|
|
!! wikitext/edited
|
|
[[File:LoremIpsum.djvu]]
|
|
|
|
[[File:LoremIpsum.djvu]]
|
|
!! end
|
|
|
|
# Images with the "|" character in external URLs in comment tags; Eats half the comment, leaves unmatched "</a>" tag.
|
|
!! test
|
|
Images with the "|" character in the comment
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|An [http://test/?param1=|left|¶m2=|x external] URL]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>An <a rel="nofollow" class="external text" href="http://test/?param1=%7Cleft%7C&param2=%7Cx">external</a> URL</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>An <a rel="mw:ExtLink" href="http://test/?param1=%7Cleft%7C&param2=%7Cx" class="external text" data-parsoid='{"a":{"href":"http://test/?param1=%7Cleft%7C&param2=%7Cx"},"sa":{"href":"http://test/?param1=|left|&param2=|x"}}'>external</a> URL</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
T146305: Don't break image parsing if language converter markup is in the caption.
|
|
!! options
|
|
language=sr
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Датотека:Foobar.jpg|thumb|-{R|caption:}-]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/%D0%94%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/%D0%94%D0%B0%D1%82%D0%BE%D1%82%D0%B5%D0%BA%D0%B0:Foobar.jpg" class="internal" title="Повећајте"></a></div>caption:</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"}]}'><a href="./Датотека:Foobar.jpg" class="mw-file-description"><img resource="./Датотека:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption><span typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"caption:"}}' data-parsoid='{"fl":["R"]}'></span></figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
T146305: Don't break image parsing if nested language converter markup is in the caption.
|
|
!! options
|
|
language=zh htmlVariantLanguage=zh-Hans-CN
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|-{|zh-cn:blog (hk: -{zh-hans|WEBJOURNAL}-, tw: -{zh-hans|WEBLOG}-)}-]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="放大"></a></div>blog (hk: WEBJOURNAL, tw: WEBLOG)</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption><span typeof="mw:LanguageVariant" data-mw-variant='{"twoway":[{"l":"zh-cn","t":"blog (hk: <span typeof=\"mw:LanguageVariant\" data-mw-variant='{\"filter\":{\"l\":[\"zh-hans\"],\"t\":\"WEBJOURNAL\"}}' data-parsoid='{\"fl\":[\"zh-hans\"],\"dsr\":[43,65,2,2]}'></span>, tw: <span typeof=\"mw:LanguageVariant\" data-mw-variant='{\"filter\":{\"l\":[\"zh-hans\"],\"t\":\"WEBLOG\"}}' data-parsoid='{\"fl\":[\"zh-hans\"],\"dsr\":[71,89,2,2]}'></span>)"}]}'></span></figcaption></figure>
|
|
!! end
|
|
|
|
# XXX html2wt disabled because rich markup in alt is not preserved.
|
|
!! test
|
|
Don't break gallery if language converter markup is inside.
|
|
!! options
|
|
language=zh
|
|
parsoid=wt2html,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<gallery>
|
|
File:Foobar.jpg|alt=-{R|bat}-|[[File:foobar.jpg|20px|desc|alt=-{R|foo}-|-{R|bar}-]]
|
|
File:Foobar.jpg|alt=galleryalt|{{Test|unamedParam|alt=-{R|param}-}}
|
|
</gallery>
|
|
!! html/php
|
|
<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="bat" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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"><a href="/wiki/File:Foobar.jpg" class="image" title="bar"><img alt="foo" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" decoding="async" width="20" height="2" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" /></a></div>
|
|
</div></li>
|
|
<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" title="This is a test template"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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">This is a test template</div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt6" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File mw:ExpandedAttrs" data-mw='{"attribs":[["alt",{"html":"alt=<span typeof=\"mw:LanguageVariant\" data-mw-variant='{\"disabled\":{\"t\":\"bat\"}}' data-parsoid='{\"fl\":[\"R\"],\"dsr\":[84,93,null,2]}'></span>","txt":""}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"><span typeof="mw:File mw:ExpandedAttrs" about="#mwt3" data-mw='{"attribs":[["alt",{"html":"alt=<span typeof=\"mw:LanguageVariant\" data-mw-variant='{\"disabled\":{\"t\":\"foo\"}}' data-parsoid='{\"fl\":[\"R\"],\"dsr\":[58,67,null,2]}'></span>","txt":""}]],"caption":"<span typeof=\"mw:LanguageVariant\" data-mw-variant='{\"disabled\":{\"t\":\"bar\"}}' data-parsoid='{\"fl\":[\"R\"],\"dsr\":[68,77,null,2]}'></span>"}'><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="2" width="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" class="mw-file-element"/></a></span></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="This is a test template"><img alt="galleryalt" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" class="mw-file-element"/></a></span></div><div class="gallerytext"><span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"Test","href":"./Template:Test"},"params":{"1":{"wt":"unamedParam"},"alt":{"wt":"-{R|param}-"}},"i":0}}]}'>This is a test template</span></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Free external link invading image caption
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|http://x|hello]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>hello</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"bogus","ak":"http://x"},{"ck":"caption","ak":"hello"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>hello</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Special characters in embedded file links (T29679)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Contains & ampersand.jpg]]
|
|
[[File:Does not exist.jpg|Title with & ampersand]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=Special:Upload&wpDestFile=Contains_%26_ampersand.jpg" class="new" title="File:Contains & ampersand.jpg">File:Contains & ampersand.jpg</a>
|
|
<a href="/index.php?title=Special:Upload&wpDestFile=Does_not_exist.jpg" class="new" title="File:Does not exist.jpg">Title with & ampersand</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Error mw:File" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Contains_&_ampersand.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Contains_&_ampersand.jpg" data-parsoid='{"a":{"resource":"./File:Contains_&_ampersand.jpg"},"sa":{"resource":"File:Contains & ampersand.jpg"}}'>File:Contains & ampersand.jpg</span></a></span>
|
|
<span class="mw-default-size" typeof="mw:Error mw:File" data-mw='{"caption":"Title with &amp; ampersand","errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Does_not_exist.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Does_not_exist.jpg" data-parsoid='{"a":{"resource":"./File:Does_not_exist.jpg"},"sa":{"resource":"File:Does not exist.jpg"}}'>Title with & ampersand</span></a></span></p>
|
|
!! end
|
|
|
|
# T65642/T68749: Formatting elt fixup around images.
|
|
# We know wt2wt will fail, but we expect selser to pass.
|
|
# Due to the nature of our testing, wt2wt and selser tests will enter the
|
|
# banned list and we'll catch selser regressions based on changes to the
|
|
# banned list entries for selser tests.
|
|
!! test
|
|
1. Treebuilder fixup of formatting elt
|
|
!! options
|
|
parsoid=wt2html,wt2wt
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
{|
|
|
|
|
|
<small>
|
|
[[Image:Foobar.jpg|right|Test]]
|
|
</small>
|
|
|}
|
|
!! html/php
|
|
<table>
|
|
<tbody><tr>
|
|
<td>
|
|
<p><small>
|
|
</small></p><small>
|
|
<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Test"><img alt="Test" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a></div>
|
|
</small><p><small></small>
|
|
</p>
|
|
</td></tr></tbody></table>
|
|
!! html/parsoid
|
|
<table>
|
|
<tbody><tr><td>
|
|
<p><small data-parsoid='{"stx":"html","autoInsertedEnd":true}'></small></p><small data-parsoid='{"stx":"html","autoInsertedEnd":true,"autoInsertedStart":true}'>
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description" title="Test"><img alt="Test" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a><figcaption>Test</figcaption></figure></small>
|
|
<p><small data-parsoid='{"stx":"html","autoInsertedStart":true}'></small></p></td></tr>
|
|
</tbody></table>
|
|
!! end
|
|
|
|
!! test
|
|
2. Treebuilder fixup of formatting elt
|
|
!! options
|
|
parsoid=wt2html,wt2wt
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
'''foo[[File:Foobar.jpg|thumb|caption]]bar'''
|
|
|
|
<small>[[Image:Foobar.jpg|right|300px]]</small>
|
|
!! html/php
|
|
<p><b>foo</b></p><b><div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div></b><p><b>bar</b>
|
|
</p><small><div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" decoding="async" width="300" height="34" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" /></a></div></small>
|
|
!! html/parsoid
|
|
<p><b>foo</b></p><b><figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure></b><p><b>bar</b></p>
|
|
|
|
<small><figure class="mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption></figcaption></figure></small>
|
|
!! end
|
|
|
|
!! test
|
|
3. Treebuilder fixup of formatting elt
|
|
!! options
|
|
parsoid=wt2html,wt2wt
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
<small>'''foo[[File:Foobar.jpg|thumb|caption]]bar'''</small>
|
|
!! html/php
|
|
<p><small><b>foo</b></small></p><small><b><div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div></b></small><p><small><b>bar</b></small></p>
|
|
!! html/parsoid
|
|
<p><small><b>foo</b></small></p><small><b><figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure></b></small><p><small><b>bar</b></small></p>
|
|
!! end
|
|
|
|
!! test
|
|
4. Treebuilder fixup of formatting elt: formatting tags around captionless images
|
|
!! options
|
|
parsoid=wt2html,wt2wt
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
'''<small>[[Image:Foobar.jpg|right|300px]]</small>'''
|
|
!! html/php
|
|
<b><small><div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" decoding="async" width="300" height="34" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" /></a></div></small></b>
|
|
!! html/parsoid
|
|
<b><small><figure class="mw-halign-right" typeof="mw:File"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption></figcaption></figure></small></b>
|
|
!! end
|
|
|
|
!! test
|
|
Image: Modifying size of an image (1)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2wt"],
|
|
"changes": [
|
|
["img[height]", "attr", "height", "22"],
|
|
["img[width]", "attr", "width", "200"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|230x230px]]
|
|
!! wikitext/edited
|
|
[[Image:Foobar.jpg|200x200px]]
|
|
!!end
|
|
|
|
!! test
|
|
Image: Modifying size of an image (2)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2wt"],
|
|
"changes": [
|
|
["img[height]", "attr", "height", "100"],
|
|
["img[width]", "attr", "width", "500"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|230x230px]]
|
|
!! wikitext/edited
|
|
[[Image:Foobar.jpg|500x500px]]
|
|
!!end
|
|
|
|
# Change in size is ignored so long as class='mw-default-size'
|
|
!! test
|
|
Image: Modifying size of an image (3)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2wt"],
|
|
"changes": [
|
|
["figure[class]", "removeClass", "mw-default-size"],
|
|
["figure img", "attr", "height", "19"],
|
|
["figure img", "attr", "width", "170"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|thumb]]
|
|
!! wikitext/edited
|
|
[[Image:Foobar.jpg|thumb|170x170px]]
|
|
!!end
|
|
|
|
!! test
|
|
Image: Modifying alignment of an image (T50665)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2wt"],
|
|
"changes": [
|
|
["figure[class]", "removeClass", "mw-halign-right"],
|
|
["figure[class]", "addClass", "mw-halign-left"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|thumb|caption|right]]
|
|
!! wikitext/edited
|
|
[[Image:Foobar.jpg|thumb|caption|left]]
|
|
!! end
|
|
|
|
!! test
|
|
Image: Modifying mw-default-size of an frameless image (T64805)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2wt"],
|
|
"changes": [
|
|
["figure.mw-default-size", "removeClass", "mw-default-size"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|frameless|right]]
|
|
!! wikitext/edited
|
|
[[Image:Foobar.jpg|frameless|right|180x180px]]
|
|
!! end
|
|
|
|
!! test
|
|
Image: Modifying valign of an image (T51221)
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2wt"],
|
|
"changes": [
|
|
["*[typeof=\"mw:File\"]", "removeClass", "mw-valign-middle"],
|
|
["*[typeof=\"mw:File\"]", "addClass", "mw-valign-text-top"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[File:Foobar.jpg|20px|middle]]
|
|
!! wikitext/edited
|
|
[[File:Foobar.jpg|20px|text-top]]
|
|
!! end
|
|
|
|
!! test
|
|
Image: Modifying alt attribute of an image (T58400)
|
|
!! options
|
|
disabled
|
|
parsoid={
|
|
"modes": ["wt2wt"],
|
|
"changes": [
|
|
["img[alt]", "attr", "alt", "some alternate edited text"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|some caption|alt=some alternate text]]
|
|
!! wikitext/edited
|
|
[[File:Foobar.jpg|thumb|some caption|alt=some alternate edited text]]
|
|
!!end
|
|
|
|
!! test
|
|
Image: Modifying caption of an image
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2wt"],
|
|
"changes": [
|
|
["figcaption", "text", "new caption"]
|
|
]
|
|
}
|
|
!! wikitext
|
|
[[Image:Foobar.jpg|thumb|original caption]]
|
|
!! wikitext/edited
|
|
[[Image:Foobar.jpg|thumb|new caption]]
|
|
!!end
|
|
|
|
!! test
|
|
Image: empty alt attribute (T50924)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|alt=|thumb|bar]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>bar</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img alt="" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>bar</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image: new attributes should be serialized in wiki's language for RTL languages (T53852)
|
|
!! options
|
|
parsoid=html2wt
|
|
language=ar
|
|
disabled
|
|
!! html/parsoid
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File/Thumb"><a href="./Imagen:Foobar.jpg"><img resource="./Imagen:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180"/></a></figure>
|
|
!! wikitext
|
|
[[Imagen:Foobar.jpg|derecha|miniaturadeimagen]]
|
|
!! end
|
|
|
|
!! test
|
|
Image: Block level image should have \n before and after
|
|
!! wikitext
|
|
123
|
|
[[File:Foobar.jpg|right|thumb|150x150px]]
|
|
456
|
|
!! html/parsoid
|
|
<p>123</p>
|
|
<figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="17" width="150" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/225px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
<p>456</p>
|
|
!! end
|
|
|
|
!! test
|
|
Image: New block level image should have \n before and after (existing content)
|
|
!! wikitext
|
|
123
|
|
[[File:Foobar.jpg|right|thumb|150x150px]]
|
|
456
|
|
!! html/parsoid
|
|
<p>123</p>
|
|
<figure class="mw-halign-right" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"right","ak":"right"},{"ck":"thumbnail","ak":"thumb"},{"ck":"width","ak":"150x150px"}]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="17" width="150" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/225px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"17","width":"150"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
<p>456</p>
|
|
!! end
|
|
|
|
!! test
|
|
Image: upright option (parsoid)
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|upright|caption]]
|
|
[[File:Foobar.jpg|thumb|upright=0.5|caption]]
|
|
[[File:Foobar.jpg|thumb|500x500px|upright=0.5|caption]]
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="16" width="140" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/210px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/280px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/90px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="10" width="90" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/135px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
<figure typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/500px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="57" width="500" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/750px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>caption</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Image: upright option is ignored on inline and frame images (parsoid)
|
|
!! wikitext
|
|
[[File:Foobar.jpg|500x500px|upright=0.5|caption]]
|
|
!! html/parsoid
|
|
<p><span typeof="mw:File" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="caption"><img alt="caption" resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/500px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="57" width="500" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/750px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg 2x" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image: in template parameter with empty parameter
|
|
!! wikitext
|
|
{{1x|[[File:Foobar.jpg|link=]]}}
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Transclusion mw:File" about="#mwt1" data-mw='{"parts":[{"template":{"target":{"wt":"1x","href":"./Template:1x"},"params":{"1":{"wt":"[[File:Foobar.jpg|link=]]"}},"i":0}}]}'><span><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></span></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Image: from basic HTML (1)
|
|
!! options
|
|
parsoid=html2wt
|
|
!! html/parsoid
|
|
<span typeof="mw:File">
|
|
<img src="./File:Foobar.jpg" width=100 height=100 alt="Alt">
|
|
</span>
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=|alt=Alt|100x100px]]
|
|
!! end
|
|
|
|
!! test
|
|
Image: from basic HTML (2)
|
|
!! options
|
|
parsoid=html2wt
|
|
!! html/parsoid
|
|
<img src="./File:Foobar.jpg" width=100 height=100 alt="Alt">
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=|alt=Alt|100x100px]]
|
|
!! end
|
|
|
|
!! test
|
|
Image: from basic HTML (3)
|
|
!! options
|
|
parsoid=html2wt
|
|
!! html/parsoid
|
|
<a href="Main"><img src="./File:Foobar.jpg" width=100 height=100 alt="Alt"></a>
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=Main|alt=Alt|100x100px]]
|
|
!! end
|
|
|
|
!! test
|
|
Image: from basic HTML (4)
|
|
!! options
|
|
parsoid=html2wt
|
|
!! html/parsoid
|
|
<img src="./File:Foobar.jpg">
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=]]
|
|
!! end
|
|
|
|
!! test
|
|
Image: Invalid title as link
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=<]]
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="link=<"><img alt="link=<" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"link","ak":"link=<"}]}' data-mw='{"attribs":[["link",{"txt":"<"}]]}'><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! article
|
|
Test"123
|
|
!! text
|
|
Dummy article to suppress redlinks in tests
|
|
!! end
|
|
|
|
## Roundtripping the gallery here without normalization needs T252246 / T252246
|
|
!! test
|
|
Percent decode titles in the link option (T216003#7836261)
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[Test%22123]]
|
|
[[File:Foobar.jpg|link=Test%22123]]
|
|
[[File:Foobar.jpg|link=[[Test%22123]]]]
|
|
|
|
<gallery>
|
|
File:Foobar.jpg|link=Test%22123
|
|
File:Foobar.jpg|link=[[Test%22123]]
|
|
</gallery>
|
|
!! html/php
|
|
<p><a href="/wiki/Test%22123" title="Test"123">Test"123</a>
|
|
<a href="/wiki/Test%22123" title="Test"123"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
<a href="/wiki/Test%22123" title="Test"123"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</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/Test%22123" title="Test"123"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
<li class="gallerybox" style="width: 155px"><div style="width: 155px">
|
|
<div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Test%22123" title="Test"123"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" 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>
|
|
!! html/parsoid
|
|
<p><a rel="mw:WikiLink" href='./Test"123' title='Test"123' data-parsoid='{"stx":"simple","a":{"href":"./Test\"123"},"sa":{"href":"Test%22123"}}'>Test"123</a>
|
|
<span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"link","ak":"link=Test%22123"}]}'><a href='./Test"123' title='Test"123'><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span>
|
|
<span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"link","ak":"link=[[Test%22123]]"}]}'><a href='./Test"123' title='Test"123'><img resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></p>
|
|
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt3" data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File" data-parsoid='{"optList":[{"ck":"width","ak":"120x120px"},{"ck":"link","ak":"link=Test%22123"}]}'><a href='./Test"123' title='Test"123'><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"14","width":"120"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File" data-parsoid='{"optList":[{"ck":"width","ak":"120x120px"},{"ck":"link","ak":"link=[[Test%22123]]"}]}'><a href='./Test"123' title='Test"123'><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" 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" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"14","width":"120"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|
|
|
|
!! test
|
|
Various link types in alt and link options
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|link=[[Main Page]]|alt=[[Main Page]]|caption]]
|
|
|
|
[[File:Foobar.jpg|link=[[Media:Thumb.png]]|alt=[[Media:Thumb.png]]|caption]]
|
|
|
|
[[File:Foobar.jpg|link=[[wikipedia:Foo]]|alt=[[wikipedia:Foo]]|caption]]
|
|
!! html/php
|
|
<p><a href="/wiki/Main_Page" title="caption"><img alt="Main Page" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p><p><a href="/wiki/Media:Thumb.png" title="caption"><img alt="Media:Thumb.png" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p><p><a href="http://en.wikipedia.org/wiki/Foo" title="caption"><img alt="wikipedia:Foo" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" about="#mwt1" data-mw='{"attribs":[["alt",{"html":"alt=<a rel=\"mw:WikiLink\" href=\"./Main_Page\" title=\"Main Page\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"./Main_Page\"},\"sa\":{\"href\":\"Main Page\"},\"dsr\":[41,216,2,2]}'>Main Page</a>","txt":"Main Page"}]],"caption":"caption"}'><a href="./Main_Page" title="caption" data-parsoid='{"a":{"href":"./Main_Page"},"sa":{"href":"link=[[Main Page]]"}}'><img alt="Main Page" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" about="#mwt3" data-mw='{"attribs":[["alt",{"html":"alt=<a rel=\"mw:MediaLink\" href=\"http://example.com/images/e/ea/Thumb.png\" resource=\"./Media:Thumb.png\" title=\"Thumb.png\" data-parsoid='{\"a\":{\"resource\":\"./Media:Thumb.png\"},\"sa\":{\"resource\":\"Media:Thumb.png\"},\"dsr\":[113,216,null,null]}'>Media:Thumb.png</a>","txt":"Media:Thumb.png"}]],"caption":"caption"}'><a href="./Media:Thumb.png" title="caption" data-parsoid='{"a":{"href":"./Media:Thumb.png"},"sa":{"href":"link=[[Media:Thumb.png]]"}}'><img alt="Media:Thumb.png" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
|
|
<p><span class="mw-default-size" typeof="mw:File mw:ExpandedAttrs" about="#mwt2" data-mw='{"attribs":[["alt",{"html":"alt=<a rel=\"mw:WikiLink/Interwiki\" href=\"http://en.wikipedia.org/wiki/Foo\" title=\"wikipedia:Foo\" class=\"extiw\" data-parsoid='{\"stx\":\"simple\",\"a\":{\"href\":\"http://en.wikipedia.org/wiki/Foo\"},\"sa\":{\"href\":\"wikipedia:Foo\"},\"isIW\":true,\"dsr\":[189,216,2,2]}'>wikipedia:Foo</a>","txt":"wikipedia:Foo"}]],"caption":"caption"}'><a href="http://en.wikipedia.org/wiki/Foo" title="caption" data-parsoid='{"a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"link=[[wikipedia:Foo]]"}}'><img alt="wikipedia:Foo" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! end
|
|
|
|
!! test
|
|
Magic links inside image captions (autolinked)
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|http://example.com]]
|
|
[[File:Foobar.jpg|thumb|RFC 1234]]
|
|
[[File:Foobar.jpg|thumb|PMID 1234]]
|
|
[[File:Foobar.jpg|thumb|ISBN 123456789x]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a class="external mw-magiclink-rfc" rel="nofollow" href="https://tools.ietf.org/html/rfc1234">RFC 1234</a></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a></div></div></div>
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div><a href="/wiki/Special:BookSources/123456789X" class="internal mw-magiclink-isbn">ISBN 123456789x</a></div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com" class="external free">http://example.com</a></figcaption></figure>
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption><a href="https://tools.ietf.org/html/rfc1234" rel="mw:ExtLink" class="external mw-magiclink">RFC 1234</a></figcaption></figure>
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption><a href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract" rel="mw:ExtLink" class="external mw-magiclink">PMID 1234</a></figcaption></figure>
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption><a href="./Special:BookSources/123456789X" rel="mw:WikiLink">ISBN 123456789x</a></figcaption></figure>
|
|
!! end
|
|
|
|
## FIXME: Parsoid isn't recognizing an Interwiki here in standalone mode
|
|
!! test
|
|
Interwiki links inside image captions
|
|
!! options
|
|
language=de
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|right|[[:Wikipedia:Foo]] bar]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/Datei:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/Datei:Foobar.jpg" class="internal" title="vergrößern"></a></div><a href="http://en.wikipedia.org/wiki/Foo" class="extiw" title="wikipedia:Foo">Wikipedia:Foo</a> bar</div></div></div>
|
|
!! html/parsoid+standalone
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"right","ak":"right"},{"ck":"caption","ak":"[[:Wikipedia:Foo]] bar"}]}'><a href="./Datei:Foobar.jpg" class="mw-file-description"><img resource="./Datei:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./Datei:Foobar.jpg","height":"20","width":"180"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a><figcaption><a rel="mw:WikiLink" href="./Wikipedia:Foo?action=edit&redlink=1" title="Wikipedia:Foo" class="new" typeof="mw:LocalizedAttrs" data-parsoid='{"stx":"simple","a":{"href":"./Wikipedia:Foo"},"sa":{"href":":Wikipedia:Foo"}}' data-mw-i18n='{"title":{"lang":"x-page","key":"red-link-title","params":["Wikipedia:Foo"]}}'>Wikipedia:Foo</a> bar</figcaption></figure>
|
|
!! html/parsoid+integrated
|
|
<figure class="mw-default-size mw-halign-right" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"right","ak":"right"},{"ck":"caption","ak":"[[:Wikipedia:Foo]] bar"}]}'><a href="./Datei:Foobar.jpg" class="mw-file-description"><img resource="./Datei:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./Datei:Foobar.jpg","height":"20","width":"180"},"sa":{"resource":"File:Foobar.jpg"}}' class="mw-file-element"/></a><figcaption><a rel="mw:WikiLink/Interwiki" href="http://en.wikipedia.org/wiki/Foo" title="wikipedia:Foo" class="extiw">Wikipedia:Foo</a> bar</figcaption></figure>
|
|
!! end
|
|
|
|
## Don't necessarily expect this to roundtrip, but run serialization to catch crashers
|
|
!! test
|
|
File in link scenarios
|
|
!! options
|
|
parsoid={
|
|
"modes": ["wt2html","html2wt"],
|
|
"suppressErrors": true
|
|
}
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[http://www.google.com [[File:Foobar.jpg|123]]]
|
|
|
|
[http://www.google.com [[File:Foobar.jpg|thumb|123]]]
|
|
!! html/php
|
|
<p><a rel="nofollow" class="external text" href="http://www.google.com"></a><a href="/wiki/File:Foobar.jpg" class="image" title="123"><img alt="123" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
<a rel="nofollow" class="external text" href="http://www.google.com"></a><div class="thumb tright"><a rel="nofollow" class="external text" href="http://www.google.com"></a><div class="thumbinner" style="width:182px;"><a rel="nofollow" class="external text" href="http://www.google.com"></a><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>123</div></div></div>
|
|
!! html/parsoid
|
|
<p><a rel="mw:ExtLink" href="http://www.google.com" class="external text"><span class="mw-default-size" typeof="mw:File" data-parsoid='{"optList":[{"ck":"caption","ak":"123"}]}' data-mw='{"caption":"123"}'></span></a><a href="./File:Foobar.jpg" class="mw-file-description" title="123" data-parsoid='{"misnested":true}'><img alt="123" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"220","width":"1941"},"sa":{"resource":"File:Foobar.jpg"},"misnested":true}' class="mw-file-element"/></a></p>
|
|
|
|
<a rel="mw:ExtLink" href="http://www.google.com" class="external autonumber"></a><figure class="mw-default-size" typeof="mw:File/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"123"}]}'><a rel="mw:ExtLink" href="http://www.google.com" class="external autonumber"></a><a href="./File:Foobar.jpg" class="mw-file-description" data-parsoid='{"misnested":true}'><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"20","width":"180"},"sa":{"resource":"File:Foobar.jpg"},"misnested":true}' class="mw-file-element"/></a><figcaption data-parsoid='{"misnested":true}'>123</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Thumbnail output
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Thumb.png|thumb]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Thumb.png" class="image"><img alt="Thumb.png" src="http://example.com/images/e/ea/Thumb.png" decoding="async" width="135" height="135" class="thumbimage" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Thumb.png" class="internal" title="Enlarge"></a></div></div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Thumb.png" class="mw-file-description"><img resource="./File:Thumb.png" src="http://example.com/images/e/ea/Thumb.png" decoding="async" data-file-width="135" data-file-height="135" data-file-type="bitmap" height="135" width="135" class="mw-file-element"/></a><figcaption></figcaption></figure>
|
|
!! end
|
|
|
|
## The bogus option here isn't going to roundtrip
|
|
!! test
|
|
File with caption with pipe in extension tag attribute
|
|
!! options
|
|
parsoid=wt2html,html2html
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|Test <nowiki bogus="attri|bute"/> 123]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>Test 123</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>Test <span typeof="mw:Nowiki"></span> 123</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
File with table in caption with extra table attribute spaces
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Foobar.jpg|thumb|
|
|
{|
|
|
|-
|
|
|hi
|
|
|}
|
|
]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div> <table> <tbody><tr> <td>hi </td></tr></tbody></table> </div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Foobar.jpg" class="mw-file-description"><img resource="./File:Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" class="mw-file-element"/></a><figcaption>
|
|
<table>
|
|
<tbody><tr data-parsoid='{"startTagSrc":"|-"}'>
|
|
<td>hi</td></tr>
|
|
</tbody></table>
|
|
</figcaption></figure>
|
|
!! end
|
|
|
|
## Parsoid uses the alt as the link text, legacy parser uses the caption
|
|
!! test
|
|
Broken inline media with a caption and an alt
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Broken.jpg|alt=An alternative text description.|A caption for the media.]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=Special:Upload&wpDestFile=Broken.jpg" class="new" title="File:Broken.jpg">A caption for the media.</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Error mw:File" data-mw='{"attribs":[["alt",{"txt":"An alternative text description."}]],"caption":"A caption for the media.","errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Broken.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Broken.jpg">An alternative text description.</span></a></span></p>
|
|
!! end
|
|
|
|
## Parsoid uses the alt as the link text, legacy parser doesn't use either
|
|
!! test
|
|
Broken block media with a caption and an alt
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Broken.jpg|alt=An alternative text description.|thumb|A caption for the media.]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&wpDestFile=Broken.jpg" class="new" title="File:Broken.jpg">File:Broken.jpg</a> <div class="thumbcaption">A caption for the media.</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:Error mw:File/Thumb" data-mw='{"attribs":[["alt",{"txt":"An alternative text description."}]],"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Broken.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Broken.jpg" data-width="180">An alternative text description.</span></a><figcaption>A caption for the media.</figcaption></figure>
|
|
!! end
|
|
|
|
## Caption set as the link text, similar to alt on images
|
|
!! test
|
|
Broken inline media with a caption
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Broken.jpg|A caption for the media.]]
|
|
!! html/php
|
|
<p><a href="/index.php?title=Special:Upload&wpDestFile=Broken.jpg" class="new" title="File:Broken.jpg">A caption for the media.</a>
|
|
</p>
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:Error mw:File" data-mw='{"caption":"A caption for the media.","errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Broken.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Broken.jpg">A caption for the media.</span></a></span></p>
|
|
!! end
|
|
|
|
## Neither implementation uses the caption as link text since it's already visible in the figcaption/thumbcaption, similar to alt on images
|
|
!! test
|
|
Broken block media with a caption
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! wikitext
|
|
[[File:Broken.jpg|thumb|A caption for the media.]]
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&wpDestFile=Broken.jpg" class="new" title="File:Broken.jpg">File:Broken.jpg</a> <div class="thumbcaption">A caption for the media.</div></div></div>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:Error mw:File/Thumb" data-mw='{"errors":[{"key":"apierror-filedoesnotexist","message":"This image does not exist."}]}'><a href="./Special:FilePath/Broken.jpg"><span class="mw-file-element mw-broken-media" resource="./File:Broken.jpg" data-width="180">File:Broken.jpg</span></a><figcaption>A caption for the media.</figcaption></figure>
|
|
!! end
|
|
|
|
!! test
|
|
Collect media metadata
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! options
|
|
showmedia
|
|
!! wikitext
|
|
[[File:Foobar.jpg|123]]
|
|
!! metadata
|
|
images=Foobar.jpg
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"123"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="123"><img alt="123" resource="./File:Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="123"><img alt="123" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! end
|
|
|
|
# Parsoid currently includes the fragment in the resource attribute, but
|
|
# this may change in the future: T374893
|
|
!! test
|
|
Fragment in media filename
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! options
|
|
showmedia
|
|
!! wikitext
|
|
[[File:Foobar.jpg#fragment|123]]
|
|
!! metadata
|
|
images=Foobar.jpg
|
|
!! html/parsoid
|
|
<p><span class="mw-default-size" typeof="mw:File" data-mw='{"caption":"123"}'><a href="./File:Foobar.jpg" class="mw-file-description" title="123"><img alt="123" resource="./File:Foobar.jpg#fragment" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941" class="mw-file-element"/></a></span></p>
|
|
!! html/php
|
|
<p><a href="/wiki/File:Foobar.jpg" class="image" title="123"><img alt="123" src="http://example.com/images/3/3a/Foobar.jpg" decoding="async" width="1941" height="220" /></a>
|
|
</p>
|
|
!! end
|
|
|
|
!! test
|
|
Entities in media filenames
|
|
!! config
|
|
wgParserEnableLegacyMediaDOM=true
|
|
!! options
|
|
showmedia
|
|
!! wikitext
|
|
[[File:Hi-ho.jpg|thumb]]
|
|
|
|
<gallery>
|
|
Hi-ho.jpg
|
|
File:Hi-ho.jpg
|
|
</gallery>
|
|
!! metadata
|
|
images=Hi-ho.jpg
|
|
!! html/php
|
|
<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Hi-ho.jpg" class="image"><img alt="Hi-ho.jpg" src="http://example.com/images/thumb/9/9d/Hi-ho.jpg/180px-Hi-ho.jpg" decoding="async" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/9/9d/Hi-ho.jpg/270px-Hi-ho.jpg 1.5x, http://example.com/images/thumb/9/9d/Hi-ho.jpg/360px-Hi-ho.jpg 2x" /></a> <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Hi-ho.jpg" class="internal" title="Enlarge"></a></div></div></div></div>
|
|
<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:Hi-ho.jpg" class="image"><img alt="Hi-ho.jpg" src="http://example.com/images/thumb/9/9d/Hi-ho.jpg/120px-Hi-ho.jpg" decoding="async" width="120" height="14" srcset="http://example.com/images/thumb/9/9d/Hi-ho.jpg/180px-Hi-ho.jpg 1.5x, http://example.com/images/thumb/9/9d/Hi-ho.jpg/240px-Hi-ho.jpg 2x" /></a></div></div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
<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:Hi-ho.jpg" class="image"><img alt="Hi-ho.jpg" src="http://example.com/images/thumb/9/9d/Hi-ho.jpg/120px-Hi-ho.jpg" decoding="async" width="120" height="14" srcset="http://example.com/images/thumb/9/9d/Hi-ho.jpg/180px-Hi-ho.jpg 1.5x, http://example.com/images/thumb/9/9d/Hi-ho.jpg/240px-Hi-ho.jpg 2x" /></a></div></div>
|
|
<div class="gallerytext"></div>
|
|
</div></li>
|
|
</ul>
|
|
!! html/parsoid
|
|
<figure class="mw-default-size" typeof="mw:File/Thumb"><a href="./File:Hi-ho.jpg" class="mw-file-description"><img resource="./File:Hi-ho.jpg" src="http://example.com/images/thumb/9/9d/Hi-ho.jpg/180px-Hi-ho.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="20" width="180" srcset="http://example.com/images/thumb/9/9d/Hi-ho.jpg/270px-Hi-ho.jpg 1.5x, http://example.com/images/thumb/9/9d/Hi-ho.jpg/360px-Hi-ho.jpg 2x" class="mw-file-element" data-parsoid='{"a":{"resource":"./File:Hi-ho.jpg","height":"20","width":"180"},"sa":{"resource":"File:Hi&#45;ho.jpg"}}'/></a><figcaption></figcaption></figure>
|
|
|
|
<ul class="gallery mw-gallery-traditional" typeof="mw:Extension/gallery" about="#mwt2" data-parsoid='{"dsr":[30,83,9,10]}' data-mw='{"name":"gallery","attrs":{},"body":{}}'>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Hi-ho.jpg" class="mw-file-description"><img resource="./File:Hi-ho.jpg" src="http://example.com/images/thumb/9/9d/Hi-ho.jpg/120px-Hi-ho.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" srcset="http://example.com/images/thumb/9/9d/Hi-ho.jpg/180px-Hi-ho.jpg 1.5x, http://example.com/images/thumb/9/9d/Hi-ho.jpg/240px-Hi-ho.jpg 2x" class="mw-file-element" data-parsoid='{"a":{"resource":"./File:Hi-ho.jpg","height":"14","width":"120"},"sa":{"resource":"Hi&#45;ho.jpg"}}'/></a></span></div><div class="gallerytext"></div></li>
|
|
<li class="gallerybox" style="width: 155px;"><div class="thumb" style="width: 150px; height: 150px;"><span typeof="mw:File"><a href="./File:Hi-ho.jpg" class="mw-file-description"><img resource="./File:Hi-ho.jpg" src="http://example.com/images/thumb/9/9d/Hi-ho.jpg/120px-Hi-ho.jpg" decoding="async" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="14" width="120" srcset="http://example.com/images/thumb/9/9d/Hi-ho.jpg/180px-Hi-ho.jpg 1.5x, http://example.com/images/thumb/9/9d/Hi-ho.jpg/240px-Hi-ho.jpg 2x" class="mw-file-element" data-parsoid='{"a":{"resource":"./File:Hi-ho.jpg","height":"14","width":"120"},"sa":{"resource":"File:Hi&#45;ho.jpg"}}'/></a></span></div><div class="gallerytext"></div></li>
|
|
</ul>
|
|
!! end
|