4 * @covers RightsLogFormatter
6 class RightsLogFormatterTest
extends LogFormatterTestCase
{
9 * Provide different rows from the logging table to test
10 * for backward compatibility.
11 * Do not change the existing data, just add a new database row
13 public static function provideRightsLogDatabaseRows() {
20 'comment' => 'rights comment',
22 'user_text' => 'Sysop',
23 'namespace' => NS_USER
,
27 '5::newgroups' => [ 'sysop', 'bureaucrat' ],
31 [ 'expiry' => '20160101123456' ]
36 'text' => 'Sysop changed group membership for User from (none) to '
37 . 'bureaucrat (temporary, until 12:34, 1 January 2016) and administrator',
40 'newgroups' => [ 'sysop', 'bureaucrat' ],
43 [ 'group' => 'sysop', 'expiry' => 'infinity' ],
44 [ 'group' => 'bureaucrat', 'expiry' => '2016-01-01T12:34:56Z' ],
50 // Previous format (oldgroups and newgroups as arrays, no metadata)
55 'comment' => 'rights comment',
57 'user_text' => 'Sysop',
58 'namespace' => NS_USER
,
62 '5::newgroups' => [ 'sysop', 'bureaucrat' ],
66 'text' => 'Sysop changed group membership for User from (none) to '
67 . 'administrator and bureaucrat',
70 'newgroups' => [ 'sysop', 'bureaucrat' ],
73 [ 'group' => 'sysop', 'expiry' => 'infinity' ],
74 [ 'group' => 'bureaucrat', 'expiry' => 'infinity' ],
80 // Legacy format (oldgroups and newgroups as numeric-keyed strings)
85 'comment' => 'rights comment',
87 'user_text' => 'Sysop',
88 'namespace' => NS_USER
,
97 'text' => 'Sysop changed group membership for User from (none) to '
98 . 'administrator and bureaucrat',
101 'newgroups' => [ 'sysop', 'bureaucrat' ],
104 [ 'group' => 'sysop', 'expiry' => 'infinity' ],
105 [ 'group' => 'bureaucrat', 'expiry' => 'infinity' ],
115 'action' => 'rights',
116 'comment' => 'rights comment',
118 'user_text' => 'Sysop',
119 'namespace' => NS_USER
,
125 'text' => 'Sysop changed group membership for User',
133 * @dataProvider provideRightsLogDatabaseRows
135 public function testRightsLogDatabaseRows( $row, $extra ) {
136 $this->doTestLogFormatter( $row, $extra );
140 * Provide different rows from the logging table to test
141 * for backward compatibility.
142 * Do not change the existing data, just add a new database row
144 public static function provideAutopromoteLogDatabaseRows() {
150 'action' => 'autopromote',
151 'comment' => 'rights comment',
153 'user_text' => 'Sysop',
154 'namespace' => NS_USER
,
157 '4::oldgroups' => [ 'sysop' ],
158 '5::newgroups' => [ 'sysop', 'bureaucrat' ],
162 'text' => 'Sysop was automatically promoted from administrator to '
163 . 'administrator and bureaucrat',
165 'oldgroups' => [ 'sysop' ],
166 'newgroups' => [ 'sysop', 'bureaucrat' ],
168 [ 'group' => 'sysop', 'expiry' => 'infinity' ],
171 [ 'group' => 'sysop', 'expiry' => 'infinity' ],
172 [ 'group' => 'bureaucrat', 'expiry' => 'infinity' ],
182 'action' => 'autopromote',
183 'comment' => 'rights comment',
185 'user_text' => 'Sysop',
186 'namespace' => NS_USER
,
195 'text' => 'Sysop was automatically promoted from administrator to '
196 . 'administrator and bureaucrat',
198 'oldgroups' => [ 'sysop' ],
199 'newgroups' => [ 'sysop', 'bureaucrat' ],
201 [ 'group' => 'sysop', 'expiry' => 'infinity' ],
204 [ 'group' => 'sysop', 'expiry' => 'infinity' ],
205 [ 'group' => 'bureaucrat', 'expiry' => 'infinity' ],
214 * @dataProvider provideAutopromoteLogDatabaseRows
216 public function testAutopromoteLogDatabaseRows( $row, $extra ) {
217 $this->doTestLogFormatter( $row, $extra );