FamilySearch Wiki:Extension tests: Difference between revisions

(Added tests for Article Feedback and TalkRight MFAM-266)
m (codemirror)
 
(13 intermediate revisions by the same user not shown)
Line 9: Line 9:


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


== Approved Revs==
== Approved Revs==
Line 33: Line 33:
:This test should be done while using the Chameleon skin; [{{fullurl:{{FULLPAGENAME}}|useskin=chameleon}} view page with useskin=chameleon]
:This test should be done while using the Chameleon skin; [{{fullurl:{{FULLPAGENAME}}|useskin=chameleon}} view page with useskin=chameleon]
This should be a greeny shadowed alert box with white text:
This should be a greeny shadowed alert box with white text:
<div class="alert alert-success shadow text-white font-weight-bold">
<div class="alert bg-success shadow text-white font-weight-bold">
I am bootstrapped
I am bootstrapped
</div>
</div>
Line 61: Line 61:


== CirrusSearch ==
== CirrusSearch ==
;For semantic wikis
To test that the extension is loaded, the following link (using the <code>cirrusDumpQuery</code> parameter) should show a JSON object with details of the search:
The search results should display "'''ask'''" in bold:
* [{{fullurl:Special:Search|search=Example&cirrusDumpQuery=true}} Example search with cirrusDumpQuery]
* [{{SERVER}}{{SCRIPTPATH}}/index.php?search=insource%3A+%23ask%3A&title=Special%3ASearch&profile=all&fulltext=1 Search in the source]


;For Cite enabled wikis
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.
The search results should display "'''ref'''" in bold:
* [{{SERVER}}{{SCRIPTPATH}}/index.php?search=insource%3A+ref&title=Special%3ASearch&profile=all&fulltext=1 Search in the source]


== Cite ==
== Cite ==
Line 89: Line 86:


== CodeMirror ==
== CodeMirror ==
* The "Editing" tab on [[Special:Preferences]] should have the "Enable colorblind-friendly mode" checkbox ("Accessibility" section).  
* The "Editing" tab on [[Special:Preferences]] should have the "Enable colorblind-friendly mode" checkbox ("Accessibility" section).


== ContributionScores ==
== ContributionScores ==
Line 140: Line 137:


== GlobalNotice ==
== GlobalNotice ==
No test was invented. The extension must be listed on [[Special:Version]].
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 <code>-</code>.


== GoogleTranslator ==
== GoogleTranslator ==
Line 201: Line 202:
<section begin=test1 />This is a test.<section end=test1 />
<section begin=test1 />This is a test.<section end=test1 />
Some text ...
Some text ...
=== Section by heading ===
=== Section by heading ===
This is a section with a heading
This is a section with a heading
Line 208: Line 208:


== Lingo ==
== Lingo ==
Lingo is a glossary extension. It lets you define a list of abbreviations and their definitions on [[{{MediaWiki:Lingo-terminologypagename}}]] page and then displays these definitions whenever an abbreviation is hovered over in an article.
;Test
:{{int:Lingo-terminologypagename}}
;Expected
:Whatever except <code>⧼Lingo-termeinologypagename⧽</code>


Check it below:
Hovering over the abbreviation below should display a popup with the definition:
 
* USA <= adjust to any term defined on [[{{int:Lingo-terminologypagename}}]]
FHL <- is abbreviations


== Lockdown ==
== Lockdown ==
No test was invented. The extension must be listed on [[Special:Version]].
* Check the values of the configuration settings <code>$wgNamespacePermissionLockdown</code>, <code>$wgSpecialPageLockdown</code>, and <code>$wgActionLockdown</code>
* 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


== Loops ==
== Loops ==
Line 288: Line 293:
== MultimediaViewer ==
== MultimediaViewer ==
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 <code>Open in Media Viewer</code> button:
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 <code>Open in Media Viewer</code> button:
:[[File:Australian Capital Territory and New South Wales, Australia.jpg|50px]]
:[[File:JoshuaReynoldsParty.jpg|50px]]


== MyVariables ==
== MyVariables ==
Line 300: Line 305:
== OpenGraphMeta ==
== OpenGraphMeta ==
;Test
;Test
[[File:{{#setmainimage:Australian Capital Territory and New South Wales, Australia.jpg}}|100px]]
[[File:{{#setmainimage:JoshuaReynoldsParty.jpg}}|100px]]
;Expected:
;Expected:
[[File:Australian Capital Territory and New South Wales, Australia.jpg|100px]]
[[File:JoshuaReynoldsParty.jpg|100px]]


== OpenID Connect ==
== OpenID Connect ==
No test was invented. The extension must be listed on [[Special:Version]].
No test was invented. The extension must be listed on [[Special:Version]].
== PDF Handler ==
You should see the content of the uploaded PDF ([[media:Overview of FamilySearch JMR2023.pdf|Overview of FamilySearch JMR2023.pdf]]):
[[File:Overview of FamilySearch JMR2023.pdf|page=1|200px|Succeeded]]


== Page Importer ==
== Page Importer ==
Line 334: Line 334:


== Parsoid ==
== Parsoid ==
No test was invented. The extension must be listed on [[Special:Version]].
Used to support the VisualEditor extension. If that extension is working, Parsoid works. The extension must be listed on [[Special:Version]].
 
== PDF Handler ==
You should see the content of the uploaded PDF ([[media:ExamplePDF.pdf|ExamplePDF.pdf]]):
 
[[File:ExamplePDF.pdf|page=1|200px|Succeeded]]


== PluggableAuth ==
== PluggableAuth ==
Line 373: Line 378:


== Scribunto ==
== Scribunto ==
=== [[Module:String]] ([https://en.wikipedia.org/w/index.php?title=Module:String&action=edit source]) ===
=== [[Module:String]] ===
; Test&#160;: {{#invoke:String|len|This is a test.}}  
; Test&#160;: {{#invoke:String|len|This is a test.}}  
; Expected&#160;: 15
; Expected&#160;: 15
== Semantic Drilldown ==
This should be a valid link:
[[Special:BrowseData]]
== Semantic Meeting Minutes ==
[[Special:FormEdit/Meeting Minutes]] must be a valid form.
== SemanticCompoundQueries ==
This should produce no error:
{{#compound_query: [[:+]][[Modification date::+]];?Modification date;limit=1;order=rand
|[[File:+]][[Modification date::+]];?Modification date;limit=1;order=rand
|link=none
|format=ul
}}
== SemanticMediaWiki ==
; Test&#160;:[[Test::NONEXISTENTPAGE|Test]] __SHOWFACTBOX__
; Expected&#160;:[[NONEXISTENTPAGE|Test]]
: There should be a factbox at the page bottom.
== SemanticResultFormats ==
; Test (old wikis)
{{#ask:[[{{FULLPAGENAME}}]]|?Test|format=datatables}}
; Expected
: A nice-looking DataTable with a search field
== SemanticScribunto ==
Should be an icon with information popup -> {{#invoke:SemanticScribuntoTest|info|some text}}
{{#invoke:SemanticScribuntoTest|inlineInfo}}


<div class="toccolours mw-collapsible mw-collapsed" style="width:400px; overflow:auto;">
<div class="toccolours mw-collapsible mw-collapsed" style="width:400px; overflow:auto;">
<div style="font-weight:bold;line-height:1.6;">
<div style="font-weight:bold;line-height:1.6;">
Source of [[Module:SemanticScribuntoTest]]</div>
Source of [[Module:String]]</div>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<pre>
<pre>
-- Module:SMW
local p = {}
local p = {}
 
function p.len(frame)
-- set with direct return results
local s = frame.args[1]
function p.info( frame )
return mw.ustring.len( s )
 
    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
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
return p
</pre>
</pre>
</div></div>
</div></div>


== SimpleMathJax ==
== SimpleMathJax ==
Line 492: Line 434:
pass
pass
</syntaxhighlight>
</syntaxhighlight>
== TalkRight ==
<code>talk</code> right should be present [[Special:ListGroupRights|here]].


== TemplateData ==
== TemplateData ==
[{{fullurl:Template:Test|action=edit}} This link should take you to a page with the <code>Manage TemplateData</code> button] (normally below the first heading).
[{{fullurl:Template:Test|action=edit}} This link should take you to a page with the <code>Manage TemplateData</code> button] (normally below the first heading).
== TalkRight ==
<code>talk</code> right should be present [[Special:ListGroupRights|here]].


== TextExtracts ==
== TextExtracts ==
Line 516: Line 458:


== UserFunctions ==
== UserFunctions ==
; Test&#160;: {{#ifanon:It works|It works}}
; Test&#160;: {{#ifanon:You are not logged in|You are logged in}}
; Expected&#160;: It works
; Expected&#160;: "You are not logged in" when not logged in, and "You are logged in" when you are
 
== VEForAll ==
No test was invented. The extension must be listed on [[Special:Version]].


== Variables ==
== Variables ==
; Test&#160;: {{#vardefine:test|testing}}{{#var:test}}
; Test&#160;: {{#vardefine:test|testing}}{{#var:test}}
; Expected&#160;: testing
; Expected&#160;: testing
== VEForAll ==
The <code>ext.veforall.main</code> ResourceLoader module should be registered; in the developer console running <code>mw.loader.getState('ext.veforall.main');</code> should return a string (rather than <code>null</code>).
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 ==
== VisualEditor ==

Latest revision as of 01:56, 5 January 2025

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.

Admin Links

This should be a valid link: Special:AdminLinks

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

AdvancedSearch

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

Approved Revs

This should be a valid link: Special:ApprovedRevs

Arrays

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

Article Feedback

Note: this is for the extension ArticleFeedbackv5

Special:ArticleFeedbackv5 should exist and allow access to the feedback system.

BatchUserRights

This should be a valid link: Special:BatchUserRights

Bootstrap

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

Should be an accordion below:

Text inside the panel
Text inside the panel

Headline for Panel3

Text inside the panel
Text inside the panel

Cargo

The Special:CargoTables should exist

CategoryTree

A category tree should be shown:

CharInsert

Test
Á
Expected
Á

CirrusSearch

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

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

CiteThisPage

This should be a valid link: Special:CiteThisPage

CodeEditor

This should open in the ACE editor interface: edit

CodeMirror

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

ContributionScores

This should be a valid link: Special:ContributionScores

Data Transfer

This should be a valid link: Special:ImportCSV

Description2

This should produce "Description2 works!" in the description meta tag of this page head.


DismissableSiteNotice

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

Expected

FamilySearch Wiki:Extension tests

Result

FamilySearch Wiki:Extension tests

Echo

This should be a valid link: Special:Notifications

Elastica

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

EmailFile

This should be a valid link: Special:EmailFile

External Data

Test 
Europe
Expected
Europe

FsLookAndFeel

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

FsSignin

No test was invented. The extension must be listed on Special:Version.

Gadgets

  • This link must not contain the error message "FamilySearch Wiki does not have namespace "2300".
  • You have gadgets!

GlobalNotice

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 -.

GoogleTranslator

The sidebar should include an option to translate the page into different languages.

Header Tabs

Two tabs should be visible below.

Content

More content

ImageMap

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 hyperlinksDining 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.
Image map example. Clicking on a person in the picture causes the browser to load the appropriate article.

InputBox

Test
Expected
An input box

Interwiki

This should be a valid link: Special:Interwiki

LabeledSectionTransclusion

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

Lingo

Test
Terminology
Expected
Whatever except ⧼Lingo-termeinologypagename⧽

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

Lockdown

  • 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

Loops

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

MagicNoCache

The table cell should be empty:

Maps

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

MasonryMainPage

Test
This should be orange
Test2
This should be blue and wider
Test
This should be orange
Test2
This should be blue and wider
Test
This should be orange
Test2
This should be blue and wider
Test
This should be orange

MobileFrontend

MultimediaViewer

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:

JoshuaReynoldsParty.jpg

MyVariables

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

Nuke

This should be a valid link: Special:Nuke

OpenGraphMeta

Test

JoshuaReynoldsParty.jpg

Expected

JoshuaReynoldsParty.jpg

OpenID Connect

No test was invented. The extension must be listed on Special:Version.

Page Importer

No test was invented. The extension must be listed on Special:Version.

PageForms

This should be a valid link: Special:Forms

PageImages

Parser Function Helper

No test was invented. The extension must be listed on Special:Version.

ParserFunctions

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

Parsoid

Used to support the VisualEditor extension. If that extension is working, Parsoid works. The extension must be listed on Special:Version.

PDF Handler

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

Succeeded

PluggableAuth

No test was invented. The extension must be listed on Special:Version.

Poem

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

Renameuser

This should be a valid link: Special:RenameUser

Replace Text

This should be a valid link: Special:ReplaceText

RevisionSlider

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

RottenLinks

This should be a valid link: Special:RottenLinks

SandboxLink

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

Scribunto

Module:String

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


SimpleMathJax

Note
this extension does not work with the Math extension installed
Test
[math]\displaystyle{ \int_{(x,y)\in C} x^3\, dx + 4y^2\, dy }[/math]
Expected
∫(x,y)∈Cx3dx+4y2dy (but much better-looking)

And if SMJ added as $wgSmjExtraInlineMath = [ [ 'SMJ(', ')SMJ' ] ]; in LocalSettings.php file:

Test
SMJ(E=mc^2)SMJ
Expected
E=mc^2 (but much better-looking)

SpamBlacklist

This should display the spam blacklist log: spamblacklist.

SubPageList

Result

1

Expected

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

SyntaxHighlight

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

TalkRight

talk right should be present here.

TemplateData

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

TextExtracts

The output should not contain Unrecognized parameter: exchars error:

Thanks

Special:Log/thanks exists.

TitleBlacklist

TwitterCards

No test was invented. The extension must be listed on Special:Version.

Upload Wizard

UploadWizard is displayed at Special:UploadWizard

UserFunctions

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

Test 
testing
Expected 
testing

VEForAll

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

This should load VisualEditor in edit mode: edit

WhoIsWatching

Should show the number of watching users below:

0 watching users

Widgets

Test
Widget
Expected
Widget

WikiEditor

This should load a tabbed WikiEditor: edit

WikiSEO

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.

Wiretap

This should be a valid link: Special:Wiretap

YouTube