!! Version 2 # Force the test runner to ensure the extension is loaded !! hooks maplink !! endhooks !! test <maplink> !! wikitext <maplink /> <maplink latitude=10 longitude=20 zoom=13 text='Foo & bar'/> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map////en">0°0′0″N 0°0′0″E</a> <a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/13/10/20/en" data-zoom="13" data-lat="10" data-lon="20">Foo & bar</a> </p> !! end !! test <maplink> - HTML sanitization !! wikitext <maplink latitude=10 longitude=20 zoom=13 text='<&'/> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/13/10/20/en" data-zoom="13" data-lat="10" data-lon="20"><&</a> </p> !! end !! test <maplink> - counters and markers !! wikitext <maplink latitude=10.123 longitude=20.456 zoom=13 text='Foo'> { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "marker-symbol": "-number" } } </maplink> <maplink latitude=10 longitude=20 zoom=13> { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "marker-symbol": "-number" } } </maplink> <maplink latitude=10 longitude=20 zoom=13> { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "marker-symbol": "-letter" } } </maplink> <maplink latitude=10 longitude=20 zoom=13 mapstyle=osm> { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "marker-symbol": "-letter" } } </maplink> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/13/10.123/20.456/en" data-zoom="13" data-lat="10.123" data-lon="20.456" data-overlays="["_83116cf234d349c9a28ff94255a598843fe4304d"]">Foo</a> </p><p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/13/10/20/en" data-zoom="13" data-lat="10" data-lon="20" data-overlays="["_71c9ddc35eae0a234381347ca4b7440cae1c4edd"]">2</a> </p><p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/13/10/20/en" data-zoom="13" data-lat="10" data-lon="20" data-overlays="["_9226ee438e3c59edfcd19e81452d7c2ba7e1d841"]">A</a> </p><p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm" href="/wiki/Special:Map/13/10/20/en" data-zoom="13" data-lat="10" data-lon="20" data-overlays="["_37e6b9ac695579cb73066fa218a00fc6ed01a04d"]">B</a> </p> !! end !! test <maplink> - autolabelling with coordinates !! wikitext <maplink latitude=10 longitude=20 zoom=13 /> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/13/10/20/en" data-zoom="13" data-lat="10" data-lon="20">10°0′0″N 20°0′0″E</a> </p> !! end !! test <maplink> - class parameter !! wikitext <maplink zoom=0 latitude=0 longitude=0 class="" text="Empty class - do nothing"/> <maplink zoom=0 latitude=0 longitude=0 class=" " text="Whitespace only class - do nothing"/> <maplink zoom=0 latitude=0 longitude=0 class="Valid-link_class_123" text="Valid class"/> <maplink zoom=0 latitude=0 longitude=0 class="class1 class2" text="Multiple classes aren't allowed for now"/> <maplink zoom=0 latitude=0 longitude=0 class="-Invalid-cl@ss-symbols"/> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0">Empty class - do nothing</a> <a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0">Whitespace only class - do nothing</a> <a class="mw-kartographer-maplink Valid-link_class_123" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0">Valid class</a> </p> <div class="mw-kartographer-error"><maplink>: Attribute "class" has an invalid value</div> <div class="mw-kartographer-error"><maplink>: Attribute "class" has an invalid value</div> !! end !! test <mapframe> !! wikitext <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480/> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 align=left/> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 align=center/> <mapframe latitude=10 longitude=20 zoom=13 width=50% height=480 align=right/> <mapframe latitude=10 longitude=20 zoom=13 width=100% height=480/> <mapframe latitude=10 longitude=20 zoom=13 width=full height=480/> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480/> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 lang=he/> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 lang=xyz/> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 align=left frameless /> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 align=center frameless /> <mapframe latitude=10 longitude=20 zoom=13 width=50% height=480 align=right frameless /> <mapframe latitude=10 longitude=20 zoom=13 width=100% height=480 frameless /> <mapframe latitude=10 longitude=20 zoom=13 width=full height=480 frameless /> !! html <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 640px;"><a class="mw-kartographer-map" style="width: 640px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="640" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480.png?lang=en" alt="" width="640" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480@2x.png?lang=en 2x" /></a><div class="thumbcaption"></div></div></div> <div class="mw-kartographer-container thumb tleft"><div class="thumbinner" style="width: 640px;"><a class="mw-kartographer-map" style="width: 640px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="640" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480.png?lang=en" alt="" width="640" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480@2x.png?lang=en 2x" /></a><div class="thumbcaption"></div></div></div> <div class="mw-kartographer-container thumb tnone center"><div class="thumbinner" style="width: 640px;"><a class="mw-kartographer-map" style="width: 640px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="640" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480.png?lang=en" alt="" width="640" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480@2x.png?lang=en 2x" /></a><div class="thumbcaption"></div></div></div> <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 300px;"><a class="mw-kartographer-map" style="width: 300px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="300" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,300x480.png?lang=en" alt="" width="300" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,300x480@2x.png?lang=en 2x" /></a><div class="thumbcaption"></div></div></div> <div class="mw-kartographer-container mw-kartographer-full thumb tnone"><div class="thumbinner" style="width: 100%;"><a class="mw-kartographer-map" style="width: 100%; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="100%" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480.png?lang=en" alt="" width="800" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480@2x.png?lang=en 2x" /></a><div class="thumbcaption"></div></div></div> <div class="mw-kartographer-container mw-kartographer-full thumb tnone"><div class="thumbinner" style="width: 100%;"><a class="mw-kartographer-map" style="width: 100%; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="full" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480.png?lang=en" alt="" width="800" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480@2x.png?lang=en 2x" /></a><div class="thumbcaption"></div></div></div> <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 640px;"><a class="mw-kartographer-map" style="width: 640px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="640" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480.png?lang=en" alt="" width="640" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480@2x.png?lang=en 2x" /></a><div class="thumbcaption"></div></div></div> <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 640px;"><a class="mw-kartographer-map" style="width: 640px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="640" data-height="480" data-zoom="13" data-lat="10" data-lon="20" data-lang="he" href="/wiki/Special:Map/13/10/20/he"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480.png?lang=he" alt="" width="640" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480@2x.png?lang=he 2x" /></a><div class="thumbcaption"></div></div></div> <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 640px;"><a class="mw-kartographer-map" style="width: 640px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="640" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480.png?lang=en" alt="" width="640" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480@2x.png?lang=en 2x" /></a><div class="thumbcaption"></div></div></div> <p><a class="mw-kartographer-map mw-kartographer-container floatleft" style="width: 640px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="640" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480.png?lang=en" alt="" width="640" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480@2x.png?lang=en 2x" /></a> <a class="mw-kartographer-map mw-kartographer-container center" style="width: 640px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="640" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480.png?lang=en" alt="" width="640" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480@2x.png?lang=en 2x" /></a> <a class="mw-kartographer-map mw-kartographer-container floatright" style="width: 300px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="300" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,300x480.png?lang=en" alt="" width="300" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,300x480@2x.png?lang=en 2x" /></a> <a class="mw-kartographer-map mw-kartographer-container mw-kartographer-full" style="width: 100%; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="100%" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480.png?lang=en" alt="" width="800" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480@2x.png?lang=en 2x" /></a> <a class="mw-kartographer-map mw-kartographer-container mw-kartographer-full" style="width: 100%; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="full" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480.png?lang=en" alt="" width="800" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480@2x.png?lang=en 2x" /></a> </p> !! end !! test <mapframe> with a caption !! wikitext <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 text="Foo is a '''bar'''" /> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 align=left text="Foo is a <b>bar</b>" /> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 align=center text="Foo is a <script>" /> <mapframe latitude=10 longitude=20 zoom=13 width=50% height=480 align=right frameless text="Frameless gets cynically ignored here" /> <mapframe latitude=10 longitude=20 zoom=13 width=100% height=480 text="Foo is a [https://example.com bar]" /> <mapframe latitude=10 longitude=20 zoom=13 width=full height=480 text="<div>Muhaha</div>" /> !! html <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 640px;"><a class="mw-kartographer-map" style="width: 640px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="640" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480.png?lang=en" alt="" width="640" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,640x480@2x.png?lang=en 2x" /></a><div class="thumbcaption">Foo is a <b>bar</b></div></div></div> <p><mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 align=left text="Foo is a <b>bar</b>" /> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 align=center text="Foo is a <script>" /> </p> <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 300px;"><a class="mw-kartographer-map" style="width: 300px; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="300" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,300x480.png?lang=en" alt="" width="300" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,300x480@2x.png?lang=en 2x" /></a><div class="thumbcaption">Frameless gets cynically ignored here</div></div></div> <div class="mw-kartographer-container mw-kartographer-full thumb tnone"><div class="thumbinner" style="width: 100%;"><a class="mw-kartographer-map" style="width: 100%; height: 480px;" data-mw="interface" data-style="osm-intl" data-width="100%" data-height="480" data-zoom="13" data-lat="10" data-lon="20" href="/wiki/Special:Map/13/10/20/en"><img src="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480.png?lang=en" alt="" width="800" height="480" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,13,10,20,800x480@2x.png?lang=en 2x" /></a><div class="thumbcaption">Foo is a <a rel="nofollow" class="external text" href="https://example.com">bar</a></div></div></div><p> <mapframe latitude=10 longitude=20 zoom=13 width=full height=480 text="</p><div>Muhaha</div><p>" /></p> !! end !! test Error messages !! wikitext <maplink latitude=10 longitude=fail text=Derp>>Derp goes here</maplink> <mapframe latitude=10 longitude=20 zoom=13 width=" 640 " height=480 align=crap mapstyle=derp /> <mapframe latitude=10 longitude=20 zoom=13 width=% height=480/> <mapframe latitude=10 longitude=20 zoom=13 width=0% height=480/> <mapframe latitude=10 longitude=20 zoom=13 width=05% height=480/> <mapframe latitude=10 longitude=20 zoom=13 width=300% height=480/> <mapframe latitude=10 longitude=20 zoom=13 width=640 height=480 align=crap mapstyle=derp> { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "title": "Foo bar", "marker-symbol": "museum", "marker-size": "medium", "marker-color": "fail" } } </mapframe> <mapframe width=200 height=200 latitude=100/> <mapframe width=200 height=200 longitude=100/> !! html <div class="mw-kartographer-error"><p><maplink> problems: </p> <ul><li>Couldn't parse JSON: Syntax error</li> <li>Attribute "longitude" has an invalid value</li></ul></div> <div class="mw-kartographer-error"><p><mapframe> problems: </p> <ul><li>Attribute "mapstyle" has an invalid value</li> <li>Attribute "align" has an invalid value</li></ul></div> <div class="mw-kartographer-error"><mapframe>: Attribute "width" has an invalid value</div> <div class="mw-kartographer-error"><mapframe>: Attribute "width" has an invalid value</div> <div class="mw-kartographer-error"><mapframe>: Attribute "width" has an invalid value</div> <div class="mw-kartographer-error"><mapframe>: Attribute "width" has an invalid value</div> <div class="mw-kartographer-error"><p><mapframe> problems: </p> <ul><li>The JSON content is not valid GeoJSON+simplestyle. The first validation error is on the element "/0/query": "The property query is required".</li> <li>Attribute "mapstyle" has an invalid value</li> <li>Attribute "align" has an invalid value</li></ul></div> <div class="mw-kartographer-error"><mapframe>: Either both "latitude" and "longitude" parameters should be supplied or neither of them</div> <div class="mw-kartographer-error"><mapframe>: Either both "latitude" and "longitude" parameters should be supplied or neither of them</div> !! end !! test Error messages - localized !! options language=ru !! wikitext <maplink zoom=0 latitude=0 longitude=0>fail</maplink> !! html <div class="mw-kartographer-error"><maplink>: Ошибка JSON: СинтакÑичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°</div> !! end !! test CSS sanitization !! wikitext <maplink latitude=10 longitude=20 zoom=10 style="color: red;" text="<span style='foo: bar; background-image: url(https://example.com);'>foo</span>"/><!-- style=... was removed --> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/10/10/20/en" data-zoom="10" data-lat="10" data-lon="20"><span style="/* insecure input */">foo</span></a> </p> !! end !! test <maplink> - marker styles !! config wgKartographerUseMarkerStyle=true !! wikitext <maplink latitude=10 longitude=20 zoom=13>[ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [1, 2] } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "marker-symbol": "-letter", "marker-color": "#abcdef" } }, { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "marker-symbol": "-number", "marker-color": "#DDEEFF" } } ]</maplink> !! html <p><a class="mw-kartographer-maplink mw-kartographer-autostyled" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/13/10/20/en" data-zoom="13" data-lat="10" data-lon="20" style="background: #abcdef;" data-overlays="["_a179016647e3e59d6050d1da013ff6b20ba0a5e2"]">A</a> </p> !! end !! test <maplink> - marker styles disabled !! config wgKartographerUseMarkerStyle=false !! wikitext <maplink latitude=10 longitude=20 zoom=13> { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "marker-symbol": "-letter", "marker-color": "#abcdef" } } </maplink> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/13/10/20/en" data-zoom="13" data-lat="10" data-lon="20" data-overlays="["_6a13e7df56bf97361c4d92be23c3d6de3311e4c8"]">A</a> </p> !! end !! test Wikivoyage mode enabled !! config wgKartographerWikivoyageMode=true !! wikitext <maplink zoom=0 latitude=0 longitude=0 group=ponies/> <maplink zoom=0 latitude=0 longitude=0 show="ponies,horses"/> <mapframe zoom=0 latitude=0 longitude=0 width=300 height=300 group=ponies> { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "marker-symbol": "-letter", "marker-color": "#abcdef" } } </mapframe> <mapframe zoom=0 latitude=0 longitude=0 width=300 height=300 show="ponies,horses"/> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0" data-overlays="["ponies"]">0°0′0″N 0°0′0″E</a> <a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0" data-overlays="["ponies","horses"]">0°0′0″N 0°0′0″E</a> </p> <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 300px;"><a class="mw-kartographer-map" style="width: 300px; height: 300px;" data-mw="interface" data-style="osm-intl" data-width="300" data-height="300" data-zoom="0" data-lat="0" data-lon="0" data-overlays="["ponies"]" href="/wiki/Special:Map/0/0/0/en"><img src="https://maps.wikimedia.org/img/osm-intl,0,0,0,300x300.png?lang=en&domain=example.org&title=Parser+test&groups=ponies" alt="" width="300" height="300" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,0,0,0,300x300@2x.png?lang=en&domain=example.org&title=Parser+test&groups=ponies 2x" /></a><div class="thumbcaption"></div></div></div> <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 300px;"><a class="mw-kartographer-map" style="width: 300px; height: 300px;" data-mw="interface" data-style="osm-intl" data-width="300" data-height="300" data-zoom="0" data-lat="0" data-lon="0" data-overlays="["ponies","horses"]" href="/wiki/Special:Map/0/0/0/en"><img src="https://maps.wikimedia.org/img/osm-intl,0,0,0,300x300.png?lang=en&domain=example.org&title=Parser+test&groups=ponies%2Chorses" alt="" width="300" height="300" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,0,0,0,300x300@2x.png?lang=en&domain=example.org&title=Parser+test&groups=ponies%2Chorses 2x" /></a><div class="thumbcaption"></div></div></div> !! end !! test Wikivoyage mode disabled !! config wgKartographerWikivoyageMode=false !! wikitext <maplink zoom=0 latitude=0 longitude=0 group=ponies/> <mapframe zoom=0 latitude=0 longitude=0 width=300 height=300 group=ponies> { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122, 37] }, "properties": { "marker-symbol": "-letter", "marker-color": "#abcdef" } } </mapframe> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0">0°0′0″N 0°0′0″E</a> </p> <div class="mw-kartographer-container thumb tright"><div class="thumbinner" style="width: 300px;"><a class="mw-kartographer-map" style="width: 300px; height: 300px;" data-mw="interface" data-style="osm-intl" data-width="300" data-height="300" data-zoom="0" data-lat="0" data-lon="0" data-overlays="["_6a13e7df56bf97361c4d92be23c3d6de3311e4c8"]" href="/wiki/Special:Map/0/0/0/en"><img src="https://maps.wikimedia.org/img/osm-intl,0,0,0,300x300.png?lang=en&domain=example.org&title=Parser+test&groups=_6a13e7df56bf97361c4d92be23c3d6de3311e4c8" alt="" width="300" height="300" decoding="async" srcset="https://maps.wikimedia.org/img/osm-intl,0,0,0,300x300@2x.png?lang=en&domain=example.org&title=Parser+test&groups=_6a13e7df56bf97361c4d92be23c3d6de3311e4c8 2x" /></a><div class="thumbcaption"></div></div></div> !! end !! test show=... !! config wgKartographerWikivoyageMode=true !! wikitext <maplink zoom=0 latitude=0 longitude=0 show="foo"/> <maplink zoom=0 latitude=0 longitude=0 show="foo , bar"/> <maplink zoom=0 latitude=0 longitude=0 show="foo"/> <maplink zoom=0 latitude=0 longitude=0 show= /> <maplink zoom=0 latitude=0 longitude=0 show=""/> <maplink zoom=0 latitude=0 longitude=0 show='йа криветко'/> !! html <p><a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0" data-overlays="["foo"]">0°0′0″N 0°0′0″E</a> <a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0" data-overlays="["foo","bar"]">0°0′0″N 0°0′0″E</a> <a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0" data-overlays="["foo"]">0°0′0″N 0°0′0″E</a> <a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0">0°0′0″N 0°0′0″E</a> <a class="mw-kartographer-maplink" data-mw="interface" data-style="osm-intl" href="/wiki/Special:Map/0/0/0/en" data-zoom="0" data-lat="0" data-lon="0">0°0′0″N 0°0′0″E</a> </p> <div class="mw-kartographer-error"><maplink>: Attribute "show" has an invalid value</div> !! end !! test ExternalData errors !! wikitext <maplink> [ { "type": "ExternalData", "service": "fail", "ids": [ "Q1", "Q2" ] }, { "type": "ExternalData", "service": "lulzifier", "query": "test" } ] </maplink> !! html <div class="mw-kartographer-error"><maplink>: The JSON content is not valid GeoJSON+simplestyle. The first validation error is on the element "/0/service": "Does not have a value in the enumeration ["geoshape","geoline","geomask"]".</div> !! end