Test the LogFormatter by passing old and new database rows to it. The text shown on Special:Log and the api result returned by list=logevents is tested. Change-Id: Icfcba506f4fa3010cdaf973aa2df23b6e92c25e4
157 lines
3.6 KiB
PHP
157 lines
3.6 KiB
PHP
<?php
|
|
|
|
class RightsLogFormatterTest extends LogFormatterTestCase {
|
|
|
|
/**
|
|
* 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 array(
|
|
// Current format
|
|
array(
|
|
array(
|
|
'type' => 'rights',
|
|
'action' => 'rights',
|
|
'comment' => 'rights comment',
|
|
'user' => 0,
|
|
'user_text' => 'Sysop',
|
|
'namespace' => NS_USER,
|
|
'title' => 'User',
|
|
'params' => array(
|
|
'4::oldgroups' => array(),
|
|
'5::newgroups' => array( 'sysop', 'bureaucrat' ),
|
|
),
|
|
),
|
|
array(
|
|
'text' => 'Sysop changed group membership for User:User from (none) to '
|
|
. 'administrator and bureaucrat',
|
|
'api' => array(
|
|
'oldgroups' => array(),
|
|
'newgroups' => array( 'sysop', 'bureaucrat' ),
|
|
),
|
|
),
|
|
),
|
|
|
|
// Legacy format
|
|
array(
|
|
array(
|
|
'type' => 'rights',
|
|
'action' => 'rights',
|
|
'comment' => 'rights comment',
|
|
'user' => 0,
|
|
'user_text' => 'Sysop',
|
|
'namespace' => NS_USER,
|
|
'title' => 'User',
|
|
'params' => array(
|
|
'',
|
|
'sysop, bureaucrat',
|
|
),
|
|
),
|
|
array(
|
|
'legacy' => true,
|
|
'text' => 'Sysop changed group membership for User:User from (none) to '
|
|
. 'administrator and bureaucrat',
|
|
'api' => array(
|
|
'oldgroups' => array(),
|
|
'newgroups' => array( 'sysop', 'bureaucrat' ),
|
|
),
|
|
),
|
|
),
|
|
|
|
// Really old entry
|
|
array(
|
|
array(
|
|
'type' => 'rights',
|
|
'action' => 'rights',
|
|
'comment' => 'rights comment',
|
|
'user' => 0,
|
|
'user_text' => 'Sysop',
|
|
'namespace' => NS_USER,
|
|
'title' => 'User',
|
|
'params' => array(),
|
|
),
|
|
array(
|
|
'legacy' => true,
|
|
'text' => 'Sysop changed group membership for User:User',
|
|
'api' => array(),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @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 array(
|
|
// Current format
|
|
array(
|
|
array(
|
|
'type' => 'rights',
|
|
'action' => 'autopromote',
|
|
'comment' => 'rights comment',
|
|
'user' => 0,
|
|
'user_text' => 'Sysop',
|
|
'namespace' => NS_USER,
|
|
'title' => 'Sysop',
|
|
'params' => array(
|
|
'4::oldgroups' => array( 'sysop' ),
|
|
'5::newgroups' => array( 'sysop', 'bureaucrat' ),
|
|
),
|
|
),
|
|
array(
|
|
'text' => 'Sysop was automatically promoted from administrator to '
|
|
. 'administrator and bureaucrat',
|
|
'api' => array(
|
|
'oldgroups' => array( 'sysop' ),
|
|
'newgroups' => array( 'sysop', 'bureaucrat' ),
|
|
),
|
|
),
|
|
),
|
|
|
|
// Legacy format
|
|
array(
|
|
array(
|
|
'type' => 'rights',
|
|
'action' => 'autopromote',
|
|
'comment' => 'rights comment',
|
|
'user' => 0,
|
|
'user_text' => 'Sysop',
|
|
'namespace' => NS_USER,
|
|
'title' => 'Sysop',
|
|
'params' => array(
|
|
'sysop',
|
|
'sysop, bureaucrat',
|
|
),
|
|
),
|
|
array(
|
|
'legacy' => true,
|
|
'text' => 'Sysop was automatically promoted from administrator to '
|
|
. 'administrator and bureaucrat',
|
|
'api' => array(
|
|
'oldgroups' => array( 'sysop' ),
|
|
'newgroups' => array( 'sysop', 'bureaucrat' ),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @dataProvider provideAutopromoteLogDatabaseRows
|
|
*/
|
|
public function testAutopromoteLogDatabaseRows( $row, $extra ) {
|
|
$this->doTestLogFormatter( $row, $extra );
|
|
}
|
|
}
|