Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4145334
PhpTextDifferTest.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
PhpTextDifferTest.php
View Options
<?php
use
MediaWiki\Context\RequestContext
;
use
MediaWiki\Diff\TextDiffer\PhpTextDiffer
;
use
MediaWiki\Tests\Diff\TextDiffer\TextDifferData
;
/**
* @covers \MediaWiki\Diff\TextDiffer\PhpTextDiffer
* @covers \MediaWiki\Diff\TextDiffer\BaseTextDiffer
*/
class
PhpTextDifferTest
extends
MediaWikiIntegrationTestCase
{
private
function
createDiffer
()
{
$lang
=
$this
->
getServiceContainer
()
->
getLanguageFactory
()
->
getLanguage
(
'en'
);
$differ
=
new
PhpTextDiffer
(
$lang
);
$localizer
=
RequestContext
::
getMain
();
$localizer
->
setLanguage
(
$lang
);
$differ
->
setLocalizer
(
$localizer
);
return
$differ
;
}
public
function
testRender
()
{
$differ
=
$this
->
createDiffer
();
$result
=
$differ
->
render
(
'foo'
,
'bar'
,
'table'
);
$this
->
assertSame
(
TextDifferData
::
PHP_TABLE
,
$result
);
}
public
static
function
provideRenderBatch
()
{
return
[
'empty'
=>
[
[],
[]
],
'one format'
=>
[
[
'table'
],
[
'table'
=>
TextDifferData
::
PHP_TABLE
,
]
],
'multiple formats'
=>
[
[
'table'
,
'unified'
],
[
'table'
=>
TextDifferData
::
PHP_TABLE
,
'unified'
=>
TextDifferData
::
PHP_UNIFIED
,
]
],
];
}
/**
* @dataProvider provideRenderBatch
* @param array $formats
* @param array $expected
*/
public
function
testRenderBatch
(
$formats
,
$expected
)
{
$oldText
=
'foo'
;
$newText
=
'bar'
;
$differ
=
$this
->
createDiffer
();
$result
=
$differ
->
renderBatch
(
$oldText
,
$newText
,
$formats
);
$this
->
assertSame
(
$expected
,
$result
);
}
public
function
testHasFormat
()
{
$differ
=
$this
->
createDiffer
();
$this
->
assertTrue
(
$differ
->
hasFormat
(
'table'
)
);
$this
->
assertFalse
(
$differ
->
hasFormat
(
'external'
)
);
}
public
function
testAddModules
()
{
$out
=
RequestContext
::
getMain
()->
getOutput
();
$differ
=
$this
->
createDiffer
();
$differ
->
addModules
(
$out
,
'table'
);
$this
->
assertSame
(
[],
$out
->
getModules
()
);
}
public
function
testGetCacheKeys
()
{
$differ
=
$this
->
createDiffer
();
$result
=
$differ
->
getCacheKeys
(
[
'table'
]
);
$this
->
assertSame
(
[],
$result
);
}
public
static
function
provideLocalize
()
{
return
[
[
1
,
[],
'Line 1:'
],
[
2
,
[],
'Line 2:'
],
[
1
,
[
'reducedLineNumbers'
=>
true
],
''
],
[
[
3
,
5
],
[
'diff-type'
=>
'inline'
],
'Line 3 ⟶ 5:'
],
[
[
1
,
5
],
[
'diff-type'
=>
'inline'
,
'reducedLineNumbers'
=>
true
],
'Line 1 ⟶ 5:'
],
[
[
1
,
1
],
[
'diff-type'
=>
'inline'
,
'reducedLineNumbers'
=>
true
],
''
]
];
}
/**
* @dataProvider provideLocalize
* @param int|int[] $line
* @param array $options
* @param string $expected
*/
public
function
testLocalize
(
$line
,
$options
,
$expected
)
{
$content
=
is_array
(
$line
)
?
"<!-- LINES $line[0],$line[1] -->"
:
"<!--LINE $line-->"
;
$differ
=
$this
->
createDiffer
();
$result
=
$differ
->
localize
(
'table'
,
$content
,
$options
);
$this
->
assertSame
(
$expected
,
$result
);
}
public
function
testGetTablePrefixes
()
{
$this
->
assertSame
(
[],
$this
->
createDiffer
()->
getTablePrefixes
(
'table'
)
);
}
public
function
testGetPreferredFormatBatch
()
{
$this
->
assertSame
(
[
'table'
],
$this
->
createDiffer
()->
getPreferredFormatBatch
(
'table'
)
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Aug 19 2026, 17:36 (5 w, 3 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
47/bf/58c52c96a58cff7a44823ccd95d5
Default Alt Text
PhpTextDifferTest.php (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment