Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4098485
RightsLogFormatterTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
RightsLogFormatterTest.php
View Options
<?php
use
Wikimedia\Rdbms\IDatabase
;
use
Wikimedia\Rdbms\LBFactory
;
/**
* @covers \RightsLogFormatter
*/
class
RightsLogFormatterTest
extends
LogFormatterTestCase
{
protected
function
setUp
():
void
{
parent
::
setUp
();
$db
=
$this
->
createNoOpMock
(
IDatabase
::
class
,
[
'getInfinity'
]
);
$db
->
method
(
'getInfinity'
)->
willReturn
(
'infinity'
);
$lbFactory
=
$this
->
createMock
(
LBFactory
::
class
);
$lbFactory
->
method
(
'getReplicaDatabase'
)->
willReturn
(
$db
);
$this
->
setService
(
'DBLoadBalancerFactory'
,
$lbFactory
);
}
/**
* Provide different rows from the logging table to test
* for backward compatibility.
* Do not change the existing data, just add a new database row
*/
public
static
function
provideRightsLogDatabaseRows
()
{
return
[
// Current format
[
[
'type'
=>
'rights'
,
'action'
=>
'rights'
,
'comment'
=>
'rights comment'
,
'user'
=>
0
,
'user_text'
=>
'Sysop'
,
'namespace'
=>
NS_USER
,
'title'
=>
'User'
,
'params'
=>
[
'4::oldgroups'
=>
[],
'5::newgroups'
=>
[
'sysop'
,
'bureaucrat'
],
'oldmetadata'
=>
[],
'newmetadata'
=>
[
[
'expiry'
=>
null
],
[
'expiry'
=>
'20160101123456'
]
],
],
],
[
'text'
=>
'Sysop changed group membership for User from (none) to '
.
'bureaucrat (temporary, until 12:34, 1 January 2016) and administrator'
,
'api'
=>
[
'oldgroups'
=>
[],
'newgroups'
=>
[
'sysop'
,
'bureaucrat'
],
'oldmetadata'
=>
[],
'newmetadata'
=>
[
[
'group'
=>
'sysop'
,
'expiry'
=>
'infinity'
],
[
'group'
=>
'bureaucrat'
,
'expiry'
=>
'2016-01-01T12:34:56Z'
],
],
],
],
],
// Previous format (oldgroups and newgroups as arrays, no metadata)
[
[
'type'
=>
'rights'
,
'action'
=>
'rights'
,
'comment'
=>
'rights comment'
,
'user'
=>
0
,
'user_text'
=>
'Sysop'
,
'namespace'
=>
NS_USER
,
'title'
=>
'User'
,
'params'
=>
[
'4::oldgroups'
=>
[],
'5::newgroups'
=>
[
'sysop'
,
'bureaucrat'
],
],
],
[
'text'
=>
'Sysop changed group membership for User from (none) to '
.
'administrator and bureaucrat'
,
'api'
=>
[
'oldgroups'
=>
[],
'newgroups'
=>
[
'sysop'
,
'bureaucrat'
],
'oldmetadata'
=>
[],
'newmetadata'
=>
[
[
'group'
=>
'sysop'
,
'expiry'
=>
'infinity'
],
[
'group'
=>
'bureaucrat'
,
'expiry'
=>
'infinity'
],
],
],
],
],
// Legacy format (oldgroups and newgroups as numeric-keyed strings)
[
[
'type'
=>
'rights'
,
'action'
=>
'rights'
,
'comment'
=>
'rights comment'
,
'user'
=>
0
,
'user_text'
=>
'Sysop'
,
'namespace'
=>
NS_USER
,
'title'
=>
'User'
,
'params'
=>
[
''
,
'sysop, bureaucrat'
,
],
],
[
'legacy'
=>
true
,
'text'
=>
'Sysop changed group membership for User from (none) to '
.
'administrator and bureaucrat'
,
'api'
=>
[
'oldgroups'
=>
[],
'newgroups'
=>
[
'sysop'
,
'bureaucrat'
],
'oldmetadata'
=>
[],
'newmetadata'
=>
[
[
'group'
=>
'sysop'
,
'expiry'
=>
'infinity'
],
[
'group'
=>
'bureaucrat'
,
'expiry'
=>
'infinity'
],
],
],
],
],
// Really old entry
[
[
'type'
=>
'rights'
,
'action'
=>
'rights'
,
'comment'
=>
'rights comment'
,
'user'
=>
0
,
'user_text'
=>
'Sysop'
,
'namespace'
=>
NS_USER
,
'title'
=>
'User'
,
'params'
=>
[],
],
[
'legacy'
=>
true
,
'text'
=>
'Sysop changed group membership for User'
,
'api'
=>
[],
],
],
];
}
/**
* @dataProvider provideRightsLogDatabaseRows
*/
public
function
testRightsLogDatabaseRows
(
$row
,
$extra
)
{
$this
->
doTestLogFormatter
(
$row
,
$extra
);
}
/**
* Provide different rows from the logging table to test
* for backward compatibility.
* Do not change the existing data, just add a new database row
*/
public
static
function
provideAutopromoteLogDatabaseRows
()
{
return
[
// Current format
[
[
'type'
=>
'rights'
,
'action'
=>
'autopromote'
,
'comment'
=>
'rights comment'
,
'user'
=>
0
,
'user_text'
=>
'Sysop'
,
'namespace'
=>
NS_USER
,
'title'
=>
'Sysop'
,
'params'
=>
[
'4::oldgroups'
=>
[
'sysop'
],
'5::newgroups'
=>
[
'sysop'
,
'bureaucrat'
],
],
],
[
'text'
=>
'Sysop was automatically promoted from administrator to '
.
'administrator and bureaucrat'
,
'api'
=>
[
'oldgroups'
=>
[
'sysop'
],
'newgroups'
=>
[
'sysop'
,
'bureaucrat'
],
'oldmetadata'
=>
[
[
'group'
=>
'sysop'
,
'expiry'
=>
'infinity'
],
],
'newmetadata'
=>
[
[
'group'
=>
'sysop'
,
'expiry'
=>
'infinity'
],
[
'group'
=>
'bureaucrat'
,
'expiry'
=>
'infinity'
],
],
],
],
],
// Legacy format
[
[
'type'
=>
'rights'
,
'action'
=>
'autopromote'
,
'comment'
=>
'rights comment'
,
'user'
=>
0
,
'user_text'
=>
'Sysop'
,
'namespace'
=>
NS_USER
,
'title'
=>
'Sysop'
,
'params'
=>
[
'sysop'
,
'sysop, bureaucrat'
,
],
],
[
'legacy'
=>
true
,
'text'
=>
'Sysop was automatically promoted from administrator to '
.
'administrator and bureaucrat'
,
'api'
=>
[
'oldgroups'
=>
[
'sysop'
],
'newgroups'
=>
[
'sysop'
,
'bureaucrat'
],
'oldmetadata'
=>
[
[
'group'
=>
'sysop'
,
'expiry'
=>
'infinity'
],
],
'newmetadata'
=>
[
[
'group'
=>
'sysop'
,
'expiry'
=>
'infinity'
],
[
'group'
=>
'bureaucrat'
,
'expiry'
=>
'infinity'
],
],
],
],
],
];
}
/**
* @dataProvider provideAutopromoteLogDatabaseRows
*/
public
function
testAutopromoteLogDatabaseRows
(
$row
,
$extra
)
{
$this
->
doTestLogFormatter
(
$row
,
$extra
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Tue, Aug 18, 15:22 (3 w, 5 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
a2/73/139d3013474c9c99c2e704760fbf
Default Alt Text
RightsLogFormatterTest.php (5 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment