Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4106708
LinkHolderArrayIntegrationTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
LinkHolderArrayIntegrationTest.php
View Options
<?php
declare
(
strict_types
=
1
);
namespace
MediaWiki\Tests\Parser
;
use
MediaWiki\Language\ILanguageConverter
;
use
MediaWiki\MainConfigNames
;
use
MediaWiki\Parser\LinkHolderArray
;
use
MediaWiki\Parser\Parser
;
use
MediaWiki\Title\Title
;
use
MediaWikiLangTestCase
;
use
Wikimedia\TestingAccessWrapper
;
/**
* @covers \MediaWiki\Parser\LinkHolderArray
*/
class
LinkHolderArrayIntegrationTest
extends
MediaWikiLangTestCase
{
/**
* @dataProvider provideIsBig
* @covers \MediaWiki\Parser\LinkHolderArray::isBig
*
* @param int $size
* @param int $global
* @param bool $expected
*/
public
function
testIsBig
(
int
$size
,
int
$global
,
bool
$expected
)
{
$this
->
overrideConfigValue
(
MainConfigNames
::
LinkHolderBatchSize
,
$global
);
$linkHolderArray
=
new
LinkHolderArray
(
$this
->
createMock
(
Parser
::
class
),
$this
->
createMock
(
ILanguageConverter
::
class
),
$this
->
createHookContainer
()
);
/** @var LinkHolderArray $linkHolderArray */
$linkHolderArray
=
TestingAccessWrapper
::
newFromObject
(
$linkHolderArray
);
$linkHolderArray
->
size
=
$size
;
$this
->
assertSame
(
$expected
,
$linkHolderArray
->
isBig
()
);
}
public
static
function
provideIsBig
()
{
yield
[
0
,
0
,
false
];
yield
[
0
,
1
,
false
];
yield
[
1
,
0
,
true
];
yield
[
1
,
1
,
false
];
}
/**
* @dataProvider provideMakeHolder_withNsText
* @covers \MediaWiki\Parser\LinkHolderArray::makeHolder
*
* @param bool $isExternal
* @param string $expected
*/
public
function
testMakeHolder_withNsText
(
bool
$isExternal
,
string
$expected
)
{
$link
=
new
LinkHolderArray
(
$this
->
createMock
(
Parser
::
class
),
$this
->
createMock
(
ILanguageConverter
::
class
),
$this
->
createHookContainer
()
);
/** @var LinkHolderArray $link */
$link
=
TestingAccessWrapper
::
newFromObject
(
$link
);
$parser
=
$this
->
createMock
(
Parser
::
class
);
$parser
->
method
(
'nextLinkID'
)->
willReturn
(
9
);
$link
->
parent
=
$parser
;
$title
=
$this
->
createMock
(
Title
::
class
);
$title
->
method
(
'getPrefixedDBkey'
)->
willReturn
(
'Talk:Dummy'
);
$title
->
method
(
'getNamespace'
)->
willReturn
(
1234
);
$title
->
method
(
'isExternal'
)->
willReturn
(
$isExternal
);
$this
->
assertSame
(
0
,
$link
->
size
);
$result
=
$link
->
makeHolder
(
$title
,
'test1 text'
,
'test2 trail'
,
'test3 prefix'
);
$this
->
assertSame
(
$expected
,
$result
);
$this
->
assertSame
(
1
,
$link
->
size
);
if
(
$isExternal
)
{
$this
->
assertArrayEquals
(
[
9
=>
[
'title'
=>
$title
,
'text'
=>
'test3 prefixtest1 texttest'
,
'pdbk'
=>
'Talk:Dummy'
,
],
],
$link
->
interwikis
);
$this
->
assertCount
(
0
,
$link
->
internals
);
}
else
{
$this
->
assertArrayEquals
(
[
1234
=>
[
9
=>
[
'title'
=>
$title
,
'text'
=>
'test3 prefixtest1 texttest'
,
'pdbk'
=>
'Talk:Dummy'
,
],
],
],
$link
->
internals
);
$this
->
assertCount
(
0
,
$link
->
interwikis
);
}
}
public
static
function
provideMakeHolder_withNsText
()
{
yield
[
false
,
'<!--LINK
\'
" 1234:9-->2 trail'
,
];
yield
[
true
,
'<!--IWLINK
\'
" 9-->2 trail'
,
];
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Tue, Aug 18, 19:42 (2 w, 4 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
3b/ed/e31f84804bd818f637433119bd1b
Default Alt Text
LinkHolderArrayIntegrationTest.php (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment