Project:Extension tests

From WikiTeq Demonstration Wiki

The following are tests of the extensions running on the wiki. Where applicable, if the "Test" value matches the "Expected" value, the extension can be assumed to be working.

Abuse Filter[edit source]

This should be a valid link: Special:AbuseFilter

Admin Links[edit source]

This should be a valid link: Special:AdminLinks

If you are an admin, you should see links by your personal tools.

AdvancedSearch[edit source]

If #CirrusSearch is enabled, the extension produces the "Advanced Search" form on Special:Search.

AJAX Poll[edit source]

Test
Question
You are not entitled to vote.
You are not entitled to view results of this poll.
There was one vote since the poll was created on 14:12, 24 November 2021.
poll-id 99682D26EB606BA0DAF4C95522104E0F

Expected
A poll

AntiSpoof[edit source]

On Special:CreateAccount, choosing a name with a different capitalization of an existing user (e.g. WikiTEQ if the account WikiTeq exists) should show an error (without needing to submit the form). Make sure to test with an account that does not have the override-antispoof right (see Special:ListGroupRights for configuration).

Approved Revs[edit source]

This should be a valid link: Special:ApprovedRevs

Arrays[edit source]

Test
orange, red, yellow, yellow
Expected
orange, red, yellow, yellow

BetaFeatures[edit source]

Special:Preferences should have the "Beta Features" tab.

Bootstrap[edit source]

This test should be done while using the Chameleon skin; view page with useskin=chameleon

This should be a greeny shadowed alert box with white text:

I am bootstrapped

BootstrapComponents[edit source]

Should be an accordion below:

Text inside the panel
Text inside the panel

Headline for Panel3

Text inside the panel
Text inside the panel

BreadCrumbs2[edit source]

Add the following to the MediaWiki:Breadcrumbs:

* Tests @ [[Project:Extension_tests|Extension tests]] > [[:Category:Tests|Tests]] >

The breadcrumbs shall be created at the top of the Project:Extension_tests.

Buggy[edit source]

Javascript exception Exception in module ext.Buggy.startup shall be fired.

Cargo[edit source]

The Special:CargoTables should exist

CategoryTree[edit source]

A category tree should be shown:

ChangeAuthor[edit source]

This should be a valid link: Special:ChangeAuthor

CharInsert[edit source]

Test
Á
Expected
Á

CheckUser[edit source]

This should be a valid link: Special:CheckUser

CirrusSearch[edit source]

To test that the extension is loaded, the following link (using the cirrusDumpQuery parameter) should show a JSON object with details of the search:

To test that the indexer is working, add some custom string to this section that does not currently show up in Special:Search and then confirm that it shows up - this may take a few reloads. We want a string not currently in use so that we can check that new edits get indexed. If it works, revert the addition.

Cite[edit source]

Test
Text[1]
  1. Test
Expected
Text[1]
  1. Jump up Test

CiteThisPage[edit source]

This should be a valid link: Special:CiteThisPage

Citoid[edit source]

There should be an option to insert citations in the 2017 wikitext editor and, if installed, the VisualEditor. See mediawikiwiki:Citoid/Enabling Citoid on your wiki for how this option should appear.

Make sure that MediaWiki:Cite-tool-definition.json is configured, see mediawikiwiki:VisualEditor/Citation tool for details.

Cloudflare[edit source]

A test could not be created. The extension must be listed on Special:Version.

CodeEditor[edit source]

This should open in the ACE editor interface: edit

CodeMirror[edit source]

  • The "Editing" tab on Special:Preferences should have the "Enable colorblind-friendly mode" checkbox ("Accessibility" section).

CommentStreams[edit source]

You should see the "Add comment" button below the content on the wiki page.

CommonsMetadata[edit source]

The imageinfo API query module should include added information sourced from this extension. This can be tested using Special:ApiSandbox.

  • go to Special:ApiSandbox
  • choose action to be query
  • set the titles to include the name of a file on the wiki
  • set the prop to be imageinfo
  • set the iiprop to be extmetadata
  • make the request
  • verify that the results include commons metadata details

ContactPage[edit source]

This should be a valid link: Contact us

CookieWarning[edit source]

The ext.CookieWarning ResourceLoader module should be registered; in the developer console running mw.loader.getState('ext.CookieWarning'); should return a string (rather than null).

Data Transfer[edit source]

This should be a valid link: Special:ImportCSV

DeleteBatch[edit source]

This should be a valid link: Special:DeleteBatch

Description2[edit source]

This should produce "Description2 works!" in the description meta tag of this page head. {{#description2:Description2 works!}}

Disambiguator[edit source]

Test
Expected
(nothing)

DiscussionTools[edit source]

This should be a valid link: Special:FindComment

DismissableSiteNotice[edit source]

The ext.dismissableSiteNotice ResourceLoader module should be registered; in the developer console running mw.loader.getState('ext.dismissableSiteNotice'); should return a string (rather than null).

DisplayTitle[edit source]

Expected

Project:Extension tests

Result

Project:Extension tests

DynamicPageList3[edit source]

Test
Expected
  • A link to a page

Echo[edit source]

This should be a valid link: Special:Notifications

EditAccount[edit source]

This should be a valid link: Special:EditAccount

EditCountNeue[edit source]

An integer should follow: 6876

Elastica[edit source]

Usually, it is a dependency of CirrusSearch. If CirrusSearch test is passed, Elastica works. The extension must be listed on Special:Version.

EmbedVideo[edit source]

Two videos should be below:

EventLogging[edit source]

The ext.eventLogging ResourceLoader module should be registered; in the developer console running mw.loader.getState('ext.eventLogging'); should return a string (rather than null).

Note: this only confirms that the extension is available, the actual integration of the logging with the configured backend must be tested separately.

EventStreamConfig[edit source]

External Data[edit source]

Test 
Europe
Expected
Europe

Flex Diagrams[edit source]

BPMN:Extension tests should provide the "Create diagram" tab.

Gadgets[edit source]

This should be a valid link: Special:Gadgets

GlobalNotice[edit source]

If there is not already a global notice at the top of the page, create one by editing one of the following pages. We want to be as unobtrusive as possible in our testing, so ideally, use an account with bureaucrat rights and test the bureaucrat-only message, but if you don't have access to such an account, use the sysop-only message.

Edit MediaWiki:globalnotice-bureaucrat (or MediaWiki:globalnotice-sysop if not a bureaucrat) and confirm that the resulting content is shown at the top of the page for bureaucrats (or sysops, if that message was edited) but not for users that are not part of those groups.

After finishing the test, be sure to revert your changes - if you just created the page, it can be disabled by blanking it or replacing it with -.

GoogleDocTag[edit source]

The google documents should be embedded below (adjust the id if needed):

GoogleLogin[edit source]

This should be a valid link: Special:ManageGoogleLogin

GTag[edit source]

The page source head section should contain a link to the script: //www.googletagmanager.com/gtag/js

Note

It will not load if you work under the account with gtag-exempt permission. The permission is to be temporarily disabled to complete the test.

Header Tabs[edit source]

Two tabs should be visible below.

[edit]

Content

[edit]

More content

HeaderFooter[edit source]

The content of MediaWiki:hf-footer-Project:Extension tests (

I am Footer

) must be shown as a footer on the current page.

<div class="card bg-dark text-white">
<div class="card-body font-weight-bold text-center">I am Footer</div>
</div>

HeadScript[edit source]

The contents of $wgHeadScriptCode should be included in the <head> of the page.

HTML Tags[edit source]

Should be a link or something else allowed by $wgHTMLTagsAttributes variable: Read about Antarctica

IframePage[edit source]

This should be a valid link: Special:IframePage

ImageMap[edit source]

Dining room with nine men seated around a table. The dinner has been finished, and a large man at the head talks and gesticulates while the others eagerly listen. The men wear wigs and clothing of late 18th century Britain, and the furniture, hangings, and chandelier are of similar vintage. A liveried servant is entering with a tray bearing two high-shouldered decanters of wine.Dr Johnson - Dictionary writerBoswell - BiographerSir Joshua Reynolds - HostDavid Garrick - actorEdmund Burke - statesmanPasqual Paoli - Corsican patriotCharles Burney - music historianThomas Warton - poet laureateOliver Goldsmith - writerprob.The Infant Academy 1782unknown paintingAn unknown portraitservant - poss. Francis BarberUse button to enlarge or use hyperlinks
Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.

InputBox[edit source]

Test
Expected
An input box

Interwiki[edit source]

This should be a valid link: Special:Interwiki

LabeledSectionTransclusion[edit source]

Test 
This is a test.
Expected
This is a test.

NOTE: In this case, the "Section by heading" must be a section in the page that is to be transcluded.

Test 
This is a section with a heading
Expected
This is a section with a heading
<section begin=test1 />This is a test.<section end=test1 />
Some text ...
=== Section by heading ===
This is a section with a heading

Lazyload[edit source]

Pages with images should load the initial display without the image rendering properly, and the actual content will be later filled in via JavaScript.

Lingo[edit source]

Test
Terminology
Expected
Whatever except ⧼Lingo-termeinologypagename⧽

Hovering over the abbreviation below should display a popup with the definition:

LinkSuggest[edit source]

When in the source editor, starting a link with [[ and then a few characters should generate a list of suggestions based on existing pages on the wiki.

LinkTarget[edit source]

If $wgLinkTargetParentClasses = [ 'target-blank' ]; is added to LocalSettings.php

Default target for external links[edit source]

Depends on $wgExternalLinkTarget = '_blank';

This should open in new tab / window.

Linter[edit source]

Special:LintErrors should list different categories of lint errors. Since ideally a wiki has no lint errors on the real pages, create Project:Extension tests/Linter as specified below, to ensure that there is a lint error. Check that it is then listed on Special:LintErrors/wikilink-in-extlink - it may take a short white to appear.

This page intentionally has a lint error. Please do not fix it!

[https://wikiteq.com/ is the external link with [[internal]] as an internal link]

LockAuthor[edit source]

editall right should be present here.

Lockdown[edit source]

  • Check the values of the configuration settings $wgNamespacePermissionLockdown, $wgSpecialPageLockdown, and $wgActionLockdown
  • Identify an action that should be allowed by other configuration on the wiki, but prevented by one of these settings
  • Try to perform that action
  • Confirm that an error message is shown about lacking permission

LookupUser[edit source]

This should be a valid link: LookupUser

Loops[edit source]

Note
this extension requires that the Variables extension also be installed
Test 
123
Expected 
1 2 3

LuaCache[edit source]

Module:LuaCache[edit source]

Test
Value in cache
Expected
Value in cache
Source of Module:LuaCache
local p = {}
local cache = require 'mw.ext.LuaCache'
function p.set(frame)
	cache.set('luacache-extension-test', 'Value in cache')
end
function p.get(frame)
	return tostring( cache.get('luacache-extension-test') )
end
return p

MagicNoCache[edit source]

The table cell should be empty:

Maps[edit source]

Variant 1
Loading map...
Test 
52° 30' 58.57" N, 13° 22' 39.73" E
Expected
52° 30' 58.59" N, 13° 22' 39.73" E
Variant 2
Loading map...
Test 
52° 30' 58.57" N, 13° 22' 39.73" E
Expected
52° 30' 58.59" N, 13° 22' 39.73" E

MassMessage[edit source]

Special:ListGrants should list massmessage permission.

MassMessageEmail[edit source]

MassPasswordReset[edit source]

This should be a valid link: Special:MassPasswordReset

Math[edit source]

Test
(x,y)Cx3dx+4y2dy
Expected
∫(x,y)∈Cx3dx+4y2dy (but much better-looking)

See also: Special:MathStatus

Mermaid[edit source]

MobileDetect[edit source]

Test
MobileDesktop
Expected
Either "Desktop" or "Mobile"

MobileFrontend[edit source]

MsUpload[edit source]

This should have an upload box: edit

MultimediaViewer[edit source]

Clicking this should pop up a nice lightbox image viewer or, in case MMV is disabled by default, this should open the file page with the Open in Media Viewer button:

MyVariables[edit source]

Test 
216.73.216.167
Expected 
Your user name or the IP for anonymous users

NCBITaxonomyLookup[edit source]

Test

Ranoidea aurea

Expected

Ranoidea aurea

NewUserMessage[edit source]

The username specified at MediaWiki:Newusermessage-editor (currently "New user message") must not be usable. This can be tested using the validatepassword API endpoint using Special:ApiSandbox.

  • go to Special:ApiSandbox
  • choose action to be validatepassword
  • set the user to be New user message
  • set the password to be some non-empty string
  • make the request
  • verify that the failure error code is baduser_user and not userexists or something else

Nuke[edit source]

This should be a valid link: Special:Nuke

NumerAlpha[edit source]

It should be Roman numeral below:

i.
ii.
iii.
iv.
v.

OpenGraphMeta[edit source]

Test

Expected

Page Exchange[edit source]

This should be a valid link: Special:Packages

Page Schemas[edit source]

This should be a valid link: Special:EditSchema

PageForms[edit source]

This should be a valid link: Special:Forms

PageImages[edit source]

PagePort[edit source]

A test could not be created. The extension must be listed on Special:Version.

ParserFunctions[edit source]

Test math functions
10
Expected 
10
Test string functions
8
Expected 
8

PDF Handler[edit source]

You should see the content of the uploaded PDF (ExamplePDF.pdf):

Succeeded

PDFEmbed[edit source]

You should see the content of the uploaded PDF (ExamplePDF.pdf):

load PDF

The line $wgPdfEmbed['iframe'] = false; should be added to LocalSettings.php to use the <object> tag for the embed pdf files because iframe does not work in Firefox (WIK-1376)

Poem[edit source]

Test

Une terre au flanc maigre, âpre, avare, inclément
Où les vivants pensifs travaillent tristement,
Et qui donne à regret à cette race humaine
Un peu de pain pour tant de labeur et de peine ;
Des hommes durs, éclos sur ces sillons ingrats ;
Des cités d’où s’en vont, en se tordant les bras,
La charité, la paix, la foi, sœurs vénérables ;
L’orgueil chez les puissants et chez les misérables ;

Expected
A nicely formatted poem

Popups[edit source]

The following reference text should appear in a popup on hovering over: [1]

PubmedParser[edit source]

Test

[2]

Expected

[2] or citation link.

Source of Template:Pubmed
<includeonly>{{{authors}}}: {{{title}}}. ''{{{journala}}}'' {{{year}}};{{{volume}}}:{{{pages}}}.</includeonly><noinclude>

<templatedata>
{
	"params": {
		"authors": {
			"description": "Abbreviated list of author names. If there are only two authors, they will be concatenated by \"&\"; with three or more authors, an \"et al.\" will be appended after the first author.",
			"label": "Authors"
		},
		"title": {
			"description": "Article title, with trailing period removed",
			"label": "Title"
		},
		"journala": {
			"description": "Abbreviated name of journal (ISO specification), e.g.: N. Engl. J. Med.",
			"label": "Journal name (abbreviated)"
		},
		"year": {
			"description": "Article publication year",
			"label": "Year of publication"
		},
		"volume": {
			"description": "Journal volume",
			"label": "Volume"
		},
		"pages": {
			"description": "Article pages as stored in Pubmed, though leading digits may be omitted in the last page number; for example, \"1324 through 1336\" is given as \"1324-36\".",
			"label": "Pages"
		},
		"authorsi": {
			"description": "Abbreviated list of author names, with initials appended",
			"label": "Authors list (with initials)"
		},
		"allauthors": {
			"description": "List of all author names, last author's name is appended with \"&\"",
			"label": "Authors list (&)"
		},
		"allauthorsi": {
			"description": "List of all author names like above, but with initials appended",
			"label": "Authors list (& with initials)"
		},
		"journal": {
			"description": "Full name of journal as stored in Pubmed",
			"label": "Journal name"
		},
		"journalcaps": {
			"description": "Full name of journal as stored in Pubmed with all words capitalized",
			"label": "Journal name (capitalized)"
		},
		"journalanop": {
			"description": "Abbreviated name of journal (ISO specification) without periods, e.g.: N Engl J Med",
			"label": "Journal name (ISO)"
		},
		"pmid": {
			"label": "PMID number",
			"description": "PMID number (i.e., the same ID that was used to call #pmid)."
		},
		"doi": {
			"label": "DOI",
			"description": "[[:wikipedia:Digital Object Identifier|DOI]] of the article that points to the full text. Not all Pubmed entries provide this information."
		},
		"abstract": {
			"label": "Abstract",
			"description": "Article abstract."
		}
	},
	"description": "Formats the results of the {{#pmid:}} output.",
	"paramOrder": [
		"title",
		"authors",
		"authorsi",
		"allauthors",
		"allauthorsi",
		"abstract",
		"pmid",
		"doi",
		"year",
		"journal",
		"journala",
		"journalcaps",
		"journalanop",
		"volume",
		"pages"
	]
}
</templatedata>

</noinclude>

RegularTooltips[edit source]

  • This should produce a tooltip on hovering over: text to hover over
  • This should produce a tooltip when clicked on (with JS enabled):

RemoteWiki[edit source]

Test

1.43.5

Expected

1.43.5

(requires PageForms and ParserFunctions)

Test
Extension Version
PagedTiffHandler aa01034980df01e94d110837a98dc1622d41e46f
TimedMediaHandler 0.6.0
PDF Handler 4ca2eb90b802cb60eb8f4e6bc30131cc47af983f
3D 0.0.1
EasyTimeline 84e9b1e719660e286f238a153e7f754c77b09524
WikiHiero 1.1
CharInsert 851f8db8ffdd0f1c1f6fe301c4140351bac024f8
ParserFunctions 1.6.1
Cite f0c4d980f5110741daee88ad1edbc8266445f8b3
InputBox 0.3.0
ImageMap 94b5af3b320c53b3b9283f5353ab4e687ce247e4
SyntaxHighlight 2.0
Poem 476a14c94a8975c5283ea40de4361c8f4464795e
CategoryTree dcd0fbbc805851cec70b36b724f6bb8adc267258
LabeledSectionTransclusion 7c8a84ccb57c781e94a9218f5f9d5992bb17ceaa
Score 0.3.0
TemplateStyles 1.0
TemplateData 0.2.0
Math 82a012338abb32536a2f326b710fa2157ab6839e
Babel d14e398ccb18df2e8e7516ea4045498d7c388a46
Scribunto 90f9921c83486f4378322ea1a8d811ea0e8c6767
PageAssessments 1.1.0
Chart 770fcd2babf14e46b73dd5e31c0b4f75fcefe19a
Kartographer bdcbe6d5bbce059ecac1444bab72666cb47981f2
Phonos 0.1.0
SiteMatrix 1.6.0
CiteThisPage 2d5be9c3e460d416af56fafcd18534aabb6e2cd8
FlaggedRevs 2ff5e961a31b5ae0f8d25de596b2647c89433631
UrlShortener 1.2.0
ContactPage 2.3
Nuke 724cefe0b06d748ba721785f77863fded9bb3b48
CentralAuth cbef0022fbac445b37f7e93aa98bdc6464aa8e77
ApiFeatureUsage 1.0
Collection 1.8.0
Global Usage 2.2.0
MassMessage 0.5.0
Linter 692701d2704df3c6845427d4e5ee01a175d5972e
PageTriage 4dd4add8ee281ea9c6119b025b8746037181d162
Echo 65a1bf3f53b75f627d5ab66d74fb056ecf2b593f
ContentTranslation 014353479df6cab622ddbf438dc156a240f3dfc8
TemplateSandbox 1.1.0
CheckUser 2.5
GlobalPreferences 0.1.2
CampaignEvents a9efdf8fec39660b4af788c20cf6645ee2b10e84
WikimediaCampaignEvents 7c979c502165a79cda7cbbd22b938676c0128b78
NearbyPages 1.0.0
SpamBlacklist a34f617065174ff59e3c1bed4122f513ff40cf65
TitleBlacklist 1.5.0
TorBlock 1.1.0
ConfirmEdit 1.6.0
FancyCaptcha ?
hCaptcha ?
AntiSpoof cd07cfa69c994fb6c95138f10aa310c4074f4c87
Abuse Filter 7d9f4dfad4c6ace50f2983bce357d8d10a8be0b3
Gadgets 489ff26647f941fa6bc4840cdaf175e2c3658c5f
GlobalBlocking 53085a600660e08b4165eef41c5527f5c6bb87ec
TrustedXFF 2.0.0
SecurePoll 3.0.0
SecureLinkFixer a9a5da4945ca76dd97ddacfd960f69f7b2e90d56
Elastica 6.2.0
CirrusSearch 5a1f156ad8867a8fd403487416df98a2400e51a3
GlobalCssJs 3.4.0
GlobalUserPage 0.11.1
DismissableSiteNotice 1.0.1
CentralNotice 2.6.1
WikimediaCustomizations 4c0a66123fd1b45c094bfde0ae88281810ed043b
WikimediaMessages 27da0744460b0ce60a96f50b0637946a519bb9fb
ElectronPdfService 6fe0f007213a4c7917add2b29bb8c565c3948c1a
AdvancedSearch 58b0bc6367f9caa7e7d7a0db0e0f66f662f81aeb
ArticleCreationWorkflow eb6c0471777374233abdd1c9e70a3f83bd1ba5b3
SandboxLink c2615cdda848b46d67ceb4998384d8f3e89dc9da
BetaFeatures 0.1
CommonsMetadata 38fb17c68e8934efefa52dd7c28ff75d96acc60c
MultimediaViewer 895f9ee2f6344a163bc1774ee068ab561d86af83
Popups d2b19420b3e8fe8abdca0ce4d1f0fe271a6df686
Citoid 0.3.0
TemplateWizard 0.1.0
cldr 4.17.0
WikiLove 1.3.1
GuidedTour 2.0
MobileApp 215689e9168430bde723b23df5b826990b10a931
MobileFrontend 2.4.1
TextExtracts 9206c7df353ac5a8a80c6de7d55f31f698e75243
BounceHandler 1.0
FeaturedFeeds 101b1ab8ec23a71bf04f378cc89ecd0bd754d841
GeoData b8380a62612276de0c801dcfdca7798a9f84af8e
LoginNotify 0.1
Thanks 1.2.0
Disambiguator 1.4
DiscussionTools 0.0.0
RevisionSlider 4b119498f9ade2258589c6158bf47200246d0381
TwoColConflict d059711e9983111e5374f79feb1cd287dc8ae032
EventLogging eac2f13e93c94c8dacdbea2ed969f7676f73ab68
EventStreamConfig 287038244539b546e938cac2b518891e31ed2797
Campaigns 0.2.0
WikimediaEvents 1.2.0
NavigationTiming 12168a2e7dac2fc5d0d1129d0e83d1807b7454e4
XAnalytics 0.3
UniversalLanguageSelector 2026-02-25
FileExporter b760df00ce69fce9043ff33e63fd11226e1bac11
ExternalGuidance 1.0.0
JsonConfig 1.2.0
OAuth 1.1.0
OATHAuth db313001a58582d7c505f97ba94d52d76deb70b1
MediaModeration 2.0.0
ORES eb89c89c2a1e12cca175e0969ce7877d8e3e7fbe
RealMe 5a55cbbf5fbd9cefee300739f96cd13974784636
IPReputation 5db369d560696536b71b3216286407a8477850c4
IPInfo 0.0.0
QuickSurveys 1.4.0
EventBus 0.5.0
PageViewInfo 1741b0c2d3b99b5da486908c4ab4f58ef5fe11d4
ReadingLists 1.0.0-beta.1
GrowthExperiments 06d1483d3cbd7d4d4101e10a23db72cd7de3087c
TheWikipediaLibrary 1.0.1
PersonalDashboard 799a45039e688a0099247c8bccc4593dd0fa5d59
ParserMigration 2.0.0
CommunityConfiguration ae14da2595b03f49ac9bb21ed4d9128a832b033e
TestKitchen 6257776c509d9c930e35c72f4df2b173717c6b2f
ReaderExperiments 4c31351424e3a468af7ede5f8f5e7fa6e7bcb166
WP25EasterEggs c1151efcda0c69a718fe51047aa59897809246e1
EmailAuth 0.1.0
WikiEditor 0.5.4
CodeMirror 6.0.0
VisualEditor b93e328c61dacb307988ca943c4cfb186e2108b9
CodeEditor 94f5e7277a93663fefc7b974c8b2b945519e410d
EntitySchema 92bc00d382a4c9a6fdfcd35ad0ada1e547d456f9
WikibaseClient 51b5accc729174ce016b6761f2a166ec2c59b69b
WikimediaBadges 0696cca47f56c6ef8e390cdb5070706585c6237c
WikibaseLexeme cbd9526a688043aebe618b9d0fde0af9a1f10610
RelatedArticles 3.1.0
PageImages 6de3d7de1eea54ad0477ddc6c0a5589266e18163
Expected

Formatted table of extension versions on the English Wikipedia

(requires PageForms and ParserFunctions, plus Taqasta from 30 July 2023 or later for the RemoteWiki changes)

Test
Extension URL
PagedTiffHandler https://www.mediawiki.org/wiki/Extension:PagedTiffHandler
TimedMediaHandler https://www.mediawiki.org/wiki/Extension:TimedMediaHandler
PDF Handler https://www.mediawiki.org/wiki/Extension:PdfHandler
3D https://www.mediawiki.org/wiki/Extension:3D
EasyTimeline https://www.mediawiki.org/wiki/Extension:EasyTimeline
WikiHiero https://www.mediawiki.org/wiki/Extension:WikiHiero
CharInsert https://www.mediawiki.org/wiki/Extension:CharInsert
ParserFunctions https://www.mediawiki.org/wiki/Extension:ParserFunctions
Cite https://www.mediawiki.org/wiki/Extension:Cite
InputBox https://www.mediawiki.org/wiki/Extension:InputBox
ImageMap https://www.mediawiki.org/wiki/Extension:ImageMap
SyntaxHighlight https://www.mediawiki.org/wiki/Extension:SyntaxHighlight
Poem https://www.mediawiki.org/wiki/Extension:Poem
CategoryTree https://www.mediawiki.org/wiki/Extension:CategoryTree
LabeledSectionTransclusion https://www.mediawiki.org/wiki/Extension:Labeled_Section_Transclusion
Score https://www.mediawiki.org/wiki/Extension:Score
TemplateStyles https://www.mediawiki.org/wiki/Extension:TemplateStyles
TemplateData https://www.mediawiki.org/wiki/Extension:TemplateData
Math https://www.mediawiki.org/wiki/Extension:Math
Babel https://www.mediawiki.org/wiki/Extension:Babel
Scribunto https://www.mediawiki.org/wiki/Extension:Scribunto
PageAssessments https://www.mediawiki.org/wiki/Extension:PageAssessments
Chart https://www.mediawiki.org/wiki/Extension:Chart
Kartographer https://www.mediawiki.org/wiki/Extension:Kartographer
Phonos https://www.mediawiki.org/wiki/Extension:Phonos
SiteMatrix https://www.mediawiki.org/wiki/Extension:SiteMatrix
CiteThisPage https://www.mediawiki.org/wiki/Extension:CiteThisPage
FlaggedRevs https://www.mediawiki.org/wiki/Extension:FlaggedRevs
UrlShortener https://www.mediawiki.org/wiki/Extension:UrlShortener
ContactPage https://www.mediawiki.org/wiki/Extension:ContactPage
Nuke https://www.mediawiki.org/wiki/Extension:Nuke
CentralAuth https://www.mediawiki.org/wiki/Extension:CentralAuth
ApiFeatureUsage https://www.mediawiki.org/wiki/Extension:ApiFeatureUsage
Collection https://www.mediawiki.org/wiki/Extension:Collection
Global Usage https://www.mediawiki.org/wiki/Extension:GlobalUsage
MassMessage https://www.mediawiki.org/wiki/Extension:MassMessage
Linter https://www.mediawiki.org/wiki/Extension:Linter
PageTriage https://www.mediawiki.org/wiki/Extension:PageTriage
Echo https://www.mediawiki.org/wiki/Extension:Echo
ContentTranslation https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:ContentTranslation
TemplateSandbox https://www.mediawiki.org/wiki/Extension:TemplateSandbox
CheckUser https://www.mediawiki.org/wiki/Extension:CheckUser
GlobalPreferences https://www.mediawiki.org/wiki/Extension:GlobalPreferences
CampaignEvents https://www.mediawiki.org/wiki/Extension:CampaignEvents
WikimediaCampaignEvents https://www.mediawiki.org/wiki/Extension:WikimediaCampaignEvents
NearbyPages https://www.mediawiki.org/wiki/Extension:NearbyPages
SpamBlacklist https://www.mediawiki.org/wiki/Extension:SpamBlacklist
TitleBlacklist https://www.mediawiki.org/wiki/Extension:TitleBlacklist
TorBlock https://www.mediawiki.org/wiki/Extension:TorBlock
ConfirmEdit https://www.mediawiki.org/wiki/Extension:ConfirmEdit
FancyCaptcha https://www.mediawiki.org/wiki/Extension:ConfirmEdit#FancyCaptcha
hCaptcha https://www.mediawiki.org/wiki/Extension:ConfirmEdit
AntiSpoof https://www.mediawiki.org/wiki/Extension:AntiSpoof
Abuse Filter https://www.mediawiki.org/wiki/Extension:AbuseFilter
Gadgets https://www.mediawiki.org/wiki/Extension:Gadgets
GlobalBlocking https://www.mediawiki.org/wiki/Extension:GlobalBlocking
TrustedXFF https://www.mediawiki.org/wiki/Extension:TrustedXFF
SecurePoll https://www.mediawiki.org/wiki/Extension:SecurePoll
SecureLinkFixer https://www.mediawiki.org/wiki/Extension:SecureLinkFixer
Elastica https://www.mediawiki.org/wiki/Extension:Elastica
CirrusSearch https://www.mediawiki.org/wiki/Extension:CirrusSearch
GlobalCssJs https://www.mediawiki.org/wiki/Extension:GlobalCssJs
GlobalUserPage https://www.mediawiki.org/wiki/Extension:GlobalUserPage
DismissableSiteNotice https://www.mediawiki.org/wiki/Extension:DismissableSiteNotice
CentralNotice https://www.mediawiki.org/wiki/Extension:CentralNotice
WikimediaCustomizations https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:WikimediaCustomizations
WikimediaMessages https://www.mediawiki.org/wiki/Extension:WikimediaMessages
ElectronPdfService https://www.mediawiki.org/wiki/Extension:ElectronPdfService
AdvancedSearch https://www.mediawiki.org/wiki/Extension:AdvancedSearch
ArticleCreationWorkflow https://www.mediawiki.org/wiki/Extension:ArticleCreationWorkflow
SandboxLink https://www.mediawiki.org/wiki/Extension:SandboxLink
BetaFeatures https://www.mediawiki.org/wiki/Extension:BetaFeatures
CommonsMetadata https://www.mediawiki.org/wiki/Extension:CommonsMetadata
MultimediaViewer https://www.mediawiki.org/wiki/Extension:MultimediaViewer
Popups https://www.mediawiki.org/wiki/Extension:Popups
Citoid https://www.mediawiki.org/wiki/Citoid
TemplateWizard https://www.mediawiki.org/wiki/Extension:TemplateWizard
cldr https://www.mediawiki.org/wiki/Extension:CLDR
WikiLove https://www.mediawiki.org/wiki/Extension:WikiLove
GuidedTour https://www.mediawiki.org/wiki/Extension:GuidedTour
MobileApp https://www.mediawiki.org/wiki/Extension:MobileApp
MobileFrontend https://www.mediawiki.org/wiki/Extension:MobileFrontend
TextExtracts https://www.mediawiki.org/wiki/Extension:TextExtracts
BounceHandler https://www.mediawiki.org/wiki/Extension:BounceHandler
FeaturedFeeds https://www.mediawiki.org/wiki/Extension:FeaturedFeeds
GeoData https://www.mediawiki.org/wiki/Extension:GeoData
LoginNotify https://www.mediawiki.org/wiki/Extension:LoginNotify
Thanks https://www.mediawiki.org/wiki/Extension:Thanks
Disambiguator https://www.mediawiki.org/wiki/Extension:Disambiguator
DiscussionTools https://www.mediawiki.org/wiki/Extension:DiscussionTools
RevisionSlider https://www.mediawiki.org/wiki/Extension:RevisionSlider
TwoColConflict https://www.mediawiki.org/wiki/Extension:TwoColConflict
EventLogging https://www.mediawiki.org/wiki/Extension:EventLogging
EventStreamConfig https://www.mediawiki.org/wiki/Extension:EventStreamConfig
Campaigns https://www.mediawiki.org/wiki/Extension:Campaigns
WikimediaEvents https://www.mediawiki.org/wiki/Extension:WikimediaEvents
NavigationTiming https://www.mediawiki.org/wiki/Extension:NavigationTiming
XAnalytics https://wikitech.wikimedia.org/wiki/X-Analytics
UniversalLanguageSelector https://www.mediawiki.org/wiki/Extension:UniversalLanguageSelector
FileExporter https://www.mediawiki.org/wiki/Extension:FileExporter
ExternalGuidance https://www.mediawiki.org/wiki/Extension:ExternalGuidance
JsonConfig https://www.mediawiki.org/wiki/Extension:JsonConfig
OAuth https://www.mediawiki.org/wiki/Extension:OAuth
OATHAuth https://www.mediawiki.org/wiki/Extension:OATHAuth
MediaModeration https://www.mediawiki.org/wiki/Extension:MediaModeration
ORES https://www.mediawiki.org/wiki/Extension:ORES
RealMe https://www.mediawiki.org/wiki/Extension:RealMe
IPReputation https://www.mediawiki.org/wiki/Extension:IPReputation
IPInfo https://www.mediawiki.org/wiki/Extension:IPInfo
QuickSurveys https://www.mediawiki.org/wiki/Extension:QuickSurveys
EventBus https://www.mediawiki.org/wiki/Extension:EventBus
PageViewInfo https://www.mediawiki.org/wiki/Extension:PageViewInfo
ReadingLists https://www.mediawiki.org/wiki/Extension:ReadingLists
GrowthExperiments https://www.mediawiki.org/wiki/Extension:GrowthExperiments
TheWikipediaLibrary https://www.mediawiki.org/wiki/Extension:TheWikipediaLibrary
PersonalDashboard https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:PersonalDashboard
ParserMigration https://www.mediawiki.org/wiki/Extension:ParserMigration
CommunityConfiguration https://www.mediawiki.org/wiki/Extension:CommunityConfiguration
TestKitchen https://www.mediawiki.org/wiki/Extension:TestKitchen
ReaderExperiments https://www.mediawiki.org/wiki/Special:MyLanguage/Extension:ReaderExperiments
WP25EasterEggs https://www.mediawiki.org/wiki/Extension:WP25EasterEggs
EmailAuth https://www.mediawiki.org/wiki/Extension:EmailAuth
WikiEditor https://www.mediawiki.org/wiki/Extension:WikiEditor
CodeMirror https://www.mediawiki.org/wiki/Extension:CodeMirror
VisualEditor https://www.mediawiki.org/wiki/Extension:VisualEditor
CodeEditor https://www.mediawiki.org/wiki/Extension:CodeEditor
EntitySchema https://www.mediawiki.org/wiki/Extension:EntitySchema
WikibaseClient https://www.mediawiki.org/wiki/Extension:Wikibase_Client
WikimediaBadges https://www.mediawiki.org/wiki/Extension:WikimediaBadges
WikibaseLexeme https://www.mediawiki.org/wiki/Extension:WikibaseLexeme
RelatedArticles https://www.mediawiki.org/wiki/Extension:RelatedArticles
PageImages https://www.mediawiki.org/wiki/Extension:PageImages
Expected

Formatted table of extension URLs on the English Wikipedia

Replace Text[edit source]

This should be a valid link: Special:ReplaceText

RevisionSlider[edit source]

Check Browse history Interactively slider interface at the top of Difference between revisions page (history)

RottenLinks[edit source]

This should be a valid link: Special:RottenLinks

SandboxLink[edit source]

Sandbox link should be added on user's personal tools menu (at the top)

SaveSpinner[edit source]

When going to save a page, a popup spinner should appear while saving.

Scribunto[edit source]

Module:String[edit source]

Test 
15
Expected 
15
Source of Module:String
local p = {}
function p.len(frame)
	local s = frame.args[1]
	return mw.ustring.len( s )
end
return p


SecureLinkFixer[edit source]

This link should show https://oauthdb.com/ on hover (in your browser info bar)

Semantic Watchlist[edit source]

SemanticCompoundQueries[edit source]

This should produce no error:

  • Coastal Carolina Community College (Modification date"Modification date" is a predefined property that corresponds to the date of the last modification of a subject and is provided by Semantic MediaWiki.: 6 November 2021 14:19:13)
  • File:Patrick.png (Modification date"Modification date" is a predefined property that corresponds to the date of the last modification of a subject and is provided by Semantic MediaWiki.: 12 August 2021 11:02:25)

SemanticDependencyUpdater[edit source]

A test could not be created. The extension must be listed on Special:Version.

SemanticExtraSpecialProperties[edit source]

At least one of queries should return a value, depending on the configuration of $sespgEnabledPropertyList.

  1. -
  2. -
  3. 2,466
  4. -
  5. -
  6. -
  7. -
  8. -
  9. -
  10. -
  11. -
  12. -
  13. -
  14. -
  15. -
  16. -
  17. -

SemanticMediaWiki[edit source]

Test 
Test
Expected 
Test
There should be a factbox at the page bottom.

SemanticResultFormats[edit source]

Test (old wikis)
 Test
Expected
A nice-looking DataTable with a search field

SemanticScribunto[edit source]

Should be an icon with information popup -> some text

This is sample outputThis is a warning

-- Module:SMW
local p = {}

-- set with direct return results
function p.info( frame )

    if not mw.smw then
        return "mw.smw module not found"
    end

    if frame.args[1] == nil then
        return "no parameter found"
    end

    local tooltip
    if frame.args[2] then
        tooltip = mw.smw.info( frame.args[1], frame.args[2] )
    else
        tooltip = mw.smw.info( frame.args[1] )
    end

    return tooltip
end
-- another example, info used inside another function
function p.inlineInfo( frame )

    local output = 'This is sample output'

    -- so some stuff

    output = output .. mw.smw.info( 'This is a warning', 'warning' )

    -- some more stuff

    return output
end

return p

SimpleChanges[edit source]

A list of recent changes should be displayed:

SimpleTippy[edit source]

The following should render text that, on hover, shows the time the page was rendered (i.e. a timestamp that doesn't change when you hover on it multiple times): Tooltip of this text is static

The following should render text that, on hover, shows the current timestamp (i.e. a timestamp that gets re-parsed each time you hover on it): Tooltip of this text is dynamic

SimpleTooltip[edit source]

This should render a simple tooltip link: Hover over this to see a tooltip. This should render a simple tooltip icon:

Skin per page[edit source]

The skin for the current page has been set to timeless. If the skin is installed, you'll see it on the current page. If it is not, you should see the empty line below (which is also okay):


If you see the <skin>timeless</skin> code instead of the empty line, test failed.

SkinPerNamespace[edit source]

The skins configured in $wgSkinPerNamespace and $wgSkinPerSpecialPage should be applied to pages in the configured namespaces and the individual special pages.

SmiteSpam[edit source]

This should be a valid link:

SpamBlacklist[edit source]

This should display the spam blacklist log: spamblacklist.

SubPageList[edit source]

Result

5

Expected

An integer matching the number of pages at Special:PrefixIndex/Project:Extension tests/

SyntaxHighlight[edit source]

Note
this extension make also be referred to as "SyntaxHighlight GeSHi"

The following must be colorful:

def quick_sort(arr):
	less = []
	pivot_list = []
	more = []
	if len(arr) <= 1:
		return arr
	else:
		pass

TabberNeue[edit source]

Tabs should be rendered:

First tab content goes here.

Second tab content goes here.

Third tab content goes here.

TemplateData[edit source]

This link should take you to a page with the Manage TemplateData button (normally below the first heading).

TemplateStyles[edit source]

Test
red text
Expected
red text
Source of Project:Extension_tests/TemplateStyles.css (make sure the content model is set to "Sanitized CSS")
.templatestyles {
  color: red;
}

TemplateWizard[edit source]

Insert template icon should appear in WikiEditor toolbar:

TextExtracts[edit source]

The output should not contain Unrecognized parameter: exchars error:

Thanks[edit source]

Special:Log/thanks exists.

Title Icon[edit source]

Property:Title Icon should exist (or any other property defined in $wgTitleIcon_TitleIconPropertyName).

There should appear an icon 👩🏾‍💻 before this page title.


TitleBlacklist[edit source]

TreeAndMenu[edit source]

An interactive tree is rendered below:

  1. The following reference text should appear in a popup on hovering over.
  2. 2.0 2.1 Grados: [The laboratory in programs for enteric infection control]. Bol Oficina Sanit Panam 1975;78:318-22.

Twitter Tag[edit source]

This should display a tweet:

UniversalLanguageSelector[edit source]

There should be an interface in one of the navigation bars to change the language of the interface.

Upload Wizard[edit source]

UploadWizard is displayed at Special:UploadWizard

UrlGetParameters[edit source]

Test 
Click here to test.
Expected 
Test

UserFunctions[edit source]

Test 
You are not logged in
Expected 
"You are not logged in" when not logged in, and "You are logged in" when you are

Variables[edit source]

Test 
testing
Expected 
testing

VariablesLua[edit source]

Module:VariablesLua[edit source]

Test1
Defined in wikitext, retrieved by lua
Expected1
Defined in wikitext, retrieved by lua
Test2
Defined in lua, retrieved by wikitext
Expected 
Defined in lua, retrieved by wikitext
local p = {}
function p.get(frame)
	return mw.ext.VariablesLua.var('testLuaGet')
end

function p.set(frame)
	mw.ext.VariablesLua.vardefine('testLuaSet', 'Defined in lua, retrieved by wikitext')
end
return p

VEForAll[edit source]

The ext.veforall.main ResourceLoader module should be registered; in the developer console running mw.loader.getState('ext.veforall.main'); should return a string (rather than null).

Note that the actual functioning of this extension is based on it being invoked by other extensions, and so even if it is installed it may not actually be used.

VisualEditor[edit source]

This should load VisualEditor in edit mode: edit

VoteNY[edit source]

A vote box should be here:

0

WatchAnalytics[edit source]

This should be a valid link: Special:WatchAnalytics

WhoIsWatching[edit source]

Should show the number of watching users below:

0 watching users

Widgets[edit source]

Test
Widget
Expected
Widget

WikiEditor[edit source]

This should load a tabbed WikiEditor: edit

WikiForum[edit source]

This should be a valid link: Special:WikiForum

WikiSEO[edit source]

The page source should contain:

<title>Your page title</title>

and:

<meta name="keywords" content="these,are,your,keywords"/>

There should also be a description, with

<meta name="description" content="Your meta description"/>

but the content may be different if another extension (like Description2) is installed and tries to set the description. As long as there is a description set and the page title and keywords match, having a different description should not be considered a failure.

WSSlots[edit source]

YouTube[edit source]