Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F5952465
PreloadedContentBuilderTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
PreloadedContentBuilderTest.php
View Options
<?php
namespace
MediaWiki\Tests\EditPage
;
use
MediaWiki\EditPage\PreloadedContentBuilder
;
use
MediaWiki\MainConfigNames
;
use
MediaWiki\Permissions\UltimateAuthority
;
use
MediaWiki\Title\Title
;
use
MediaWikiIntegrationTestCase
;
/**
* @covers \MediaWiki\EditPage\PreloadedContentBuilder
* @group Database
*/
class
PreloadedContentBuilderTest
extends
MediaWikiIntegrationTestCase
{
/** @var PreloadedContentBuilder */
private
$preloadedContentBuilder
;
protected
function
setUp
():
void
{
$services
=
$this
->
getServiceContainer
();
// Needed for the 'Default preload section' test case due to use of wfMessage()
$this
->
overrideConfigValue
(
MainConfigNames
::
UseDatabaseMessages
,
true
);
$this
->
preloadedContentBuilder
=
$services
->
getPreloadedContentBuilder
();
}
public
static
function
provideCases
()
{
// title, preload, preloadParams, section, pages, expectedContent
yield
'Non-existent page, no preload'
=>
[
'Does-not-exist-asdfasdf'
,
null
,
[],
null
,
[],
""
];
yield
'Non-existent page, preload'
=>
[
'Does-not-exist-asdfasdf'
,
'Template:Preload'
,
[],
null
,
[
'Template:Preload'
=>
'Preload'
],
"Preload"
];
yield
'Non-existent page, preload with parameters'
=>
[
'Does-not-exist-asdfasdf'
,
'Template:Preloadparams'
,
[
'a'
,
'b'
],
null
,
[
'Template:Preloadparams'
=>
'Preload $1 $2'
],
"Preload a b"
];
yield
'Existing page content is ignored (it is not our responsibility)'
=>
[
'Exists'
,
null
,
[],
null
,
[
'Exists'
=>
'Hello'
],
""
];
yield
'Existing page content is ignored (it is not our responsibility), preload'
=>
[
'Exists'
,
'Template:Preload'
,
[],
null
,
[
'Exists'
=>
'Hello'
,
'Template:Preload'
=>
'Preload'
],
"Preload"
];
yield
'Preload section'
=>
[
'Exists'
,
'Template:Preload'
,
[],
'new'
,
[
'Exists'
=>
'Hello'
,
'Template:Preload'
=>
'Preload'
],
"Preload"
];
yield
'Default preload section'
=>
[
'Exists'
,
null
,
[],
'new'
,
[
'Exists'
=>
'Hello'
,
'MediaWiki:Addsection-preload'
=>
'Preloadsection'
],
"Preloadsection"
];
yield
'Non-existent page in MediaWiki: namespace is prefilled with message'
=>
[
'MediaWiki:View'
,
null
,
[],
null
,
[],
"View"
];
yield
'Non-existent page in MediaWiki: namespace for non-existent message'
=>
[
'MediaWiki:Does-not-exist-asdfasdf'
,
null
,
[],
null
,
[],
""
];
yield
'Non-existent page in MediaWiki: namespace does not support preload'
=>
[
'MediaWiki:View'
,
'Template:Preload'
,
[],
null
,
[
'Template:Preload'
=>
'Preload'
],
"View"
];
yield
'Non-existent message supports preload'
=>
[
'MediaWiki:Does-not-exist-asdfasdf'
,
'Template:Preload'
,
[],
null
,
[
'Template:Preload'
=>
'Preload'
],
"Preload"
];
yield
'JSON page in MediaWiki: namespace is prefilled with empty JSON'
=>
[
'MediaWiki:Foo.json'
,
null
,
[],
null
,
[],
"{}"
];
yield
'Preload using Special:MyLanguage'
=>
[
'Does-not-exist-asdfasdf'
,
'Special:MyLanguage/Template:Preload'
,
[],
null
,
[
'Template:Preload'
=>
'Preload'
],
"Preload"
];
yield
'Preload using a localisation message'
=>
[
'Does-not-exist-asdfasdf'
,
'MediaWiki:View'
,
[],
null
,
[],
"View"
];
yield
'Preload using a page in mediawiki namespace'
=>
[
'Does-not-exist-asdfasdf'
,
'MediaWiki:For-preloading'
,
[],
null
,
[
'MediaWiki:For-preloading'
=>
'<noinclude>Noinclude</noinclude><includeonly>Includeonly</includeonly>'
],
"Includeonly"
];
yield
'Preload over redirect'
=>
[
'Does-not-exist-asdfasdf'
,
'Template:Preload2'
,
[],
null
,
[
'Template:Preload'
=>
'Preload'
,
'Template:Preload2'
=>
'#REDIRECT[[Template:Preload]]'
],
"Preload"
];
}
/**
* @dataProvider provideCases
*/
public
function
testGetPreloadedContent
(
$title
,
$preload
,
$preloadParams
,
$section
,
$pages
,
$expectedContent
)
{
foreach
(
$pages
as
$page
=>
$content
)
{
$this
->
editPage
(
$page
,
$content
);
}
$content
=
$this
->
preloadedContentBuilder
->
getPreloadedContent
(
Title
::
newFromText
(
$title
)->
toPageIdentity
(),
new
UltimateAuthority
(
$this
->
getTestUser
()->
getUser
()
),
$preload
,
$preloadParams
,
$section
);
$this
->
assertEquals
(
$expectedContent
,
$content
->
serialize
()
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Oct 3 2026, 01:29 (4 w, 4 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
12/59/564b5ae186dd14edadf59cd9a511
Default Alt Text
PreloadedContentBuilderTest.php (4 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment