]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blob - tests/phpunit/includes/logging/NewUsersLogFormatterTest.php
MediaWiki 1.30.2
[autoinstalls/mediawiki.git] / tests / phpunit / includes / logging / NewUsersLogFormatterTest.php
1 <?php
2
3 /**
4  * @group Database
5  */
6 class NewUsersLogFormatterTest extends LogFormatterTestCase {
7
8         protected function setUp() {
9                 parent::setUp();
10
11                 // Register LogHandler, see $wgNewUserLog in Setup.php
12                 $this->mergeMwGlobalArrayValue( 'wgLogActionsHandlers', [
13                         'newusers/newusers' => 'NewUsersLogFormatter',
14                         'newusers/create' => 'NewUsersLogFormatter',
15                         'newusers/create2' => 'NewUsersLogFormatter',
16                         'newusers/byemail' => 'NewUsersLogFormatter',
17                         'newusers/autocreate' => 'NewUsersLogFormatter',
18                 ] );
19         }
20
21         /**
22          * Provide different rows from the logging table to test
23          * for backward compatibility.
24          * Do not change the existing data, just add a new database row
25          */
26         public static function provideNewUsersLogDatabaseRows() {
27                 return [
28                         // Only old logs
29                         [
30                                 [
31                                         'type' => 'newusers',
32                                         'action' => 'newusers',
33                                         'comment' => 'newusers comment',
34                                         'user' => 0,
35                                         'user_text' => 'New user',
36                                         'namespace' => NS_USER,
37                                         'title' => 'New user',
38                                         'params' => [],
39                                 ],
40                                 [
41                                         'legacy' => true,
42                                         'text' => 'User account New user was created',
43                                         'api' => [],
44                                 ],
45                         ],
46                 ];
47         }
48
49         /**
50          * @dataProvider provideNewUsersLogDatabaseRows
51          */
52         public function testNewUsersLogDatabaseRows( $row, $extra ) {
53                 $this->doTestLogFormatter( $row, $extra );
54         }
55
56         /**
57          * Provide different rows from the logging table to test
58          * for backward compatibility.
59          * Do not change the existing data, just add a new database row
60          */
61         public static function provideCreateLogDatabaseRows() {
62                 return [
63                         // Current format
64                         [
65                                 [
66                                         'type' => 'newusers',
67                                         'action' => 'create',
68                                         'comment' => 'newusers comment',
69                                         'user' => 0,
70                                         'user_text' => 'New user',
71                                         'namespace' => NS_USER,
72                                         'title' => 'New user',
73                                         'params' => [
74                                                 '4::userid' => 1,
75                                         ],
76                                 ],
77                                 [
78                                         'text' => 'User account New user was created',
79                                         'api' => [
80                                                 'userid' => 1,
81                                         ],
82                                 ],
83                         ],
84                 ];
85         }
86
87         /**
88          * @dataProvider provideCreateLogDatabaseRows
89          */
90         public function testCreateLogDatabaseRows( $row, $extra ) {
91                 $this->doTestLogFormatter( $row, $extra );
92         }
93
94         /**
95          * Provide different rows from the logging table to test
96          * for backward compatibility.
97          * Do not change the existing data, just add a new database row
98          */
99         public static function provideCreate2LogDatabaseRows() {
100                 return [
101                         // Current format
102                         [
103                                 [
104                                         'type' => 'newusers',
105                                         'action' => 'create2',
106                                         'comment' => 'newusers comment',
107                                         'user' => 0,
108                                         'user_text' => 'User',
109                                         'namespace' => NS_USER,
110                                         'title' => 'UTSysop'
111                                 ],
112                                 [
113                                         'text' => 'User account UTSysop was created by User'
114                                 ],
115                         ],
116                 ];
117         }
118
119         /**
120          * @dataProvider provideCreate2LogDatabaseRows
121          */
122         public function testCreate2LogDatabaseRows( $row, $extra ) {
123                 // Make UTSysop user and use its user_id (sequence does not reset to 1 for postgres)
124                 $user = static::getTestSysop()->getUser();
125                 $row['params']['4::userid'] = $user->getId();
126                 $extra['api']['userid'] = $user->getId();
127                 $this->doTestLogFormatter( $row, $extra );
128         }
129
130         /**
131          * Provide different rows from the logging table to test
132          * for backward compatibility.
133          * Do not change the existing data, just add a new database row
134          */
135         public static function provideByemailLogDatabaseRows() {
136                 return [
137                         // Current format
138                         [
139                                 [
140                                         'type' => 'newusers',
141                                         'action' => 'byemail',
142                                         'comment' => 'newusers comment',
143                                         'user' => 0,
144                                         'user_text' => 'Sysop',
145                                         'namespace' => NS_USER,
146                                         'title' => 'UTSysop'
147                                 ],
148                                 [
149                                         'text' => 'User account UTSysop was created by Sysop and password was sent by email'
150                                 ],
151                         ],
152                 ];
153         }
154
155         /**
156          * @dataProvider provideByemailLogDatabaseRows
157          */
158         public function testByemailLogDatabaseRows( $row, $extra ) {
159                 // Make UTSysop user and use its user_id (sequence does not reset to 1 for postgres)
160                 $user = static::getTestSysop()->getUser();
161                 $row['params']['4::userid'] = $user->getId();
162                 $extra['api']['userid'] = $user->getId();
163                 $this->doTestLogFormatter( $row, $extra );
164         }
165
166         /**
167          * Provide different rows from the logging table to test
168          * for backward compatibility.
169          * Do not change the existing data, just add a new database row
170          */
171         public static function provideAutocreateLogDatabaseRows() {
172                 return [
173                         // Current format
174                         [
175                                 [
176                                         'type' => 'newusers',
177                                         'action' => 'autocreate',
178                                         'comment' => 'newusers comment',
179                                         'user' => 0,
180                                         'user_text' => 'New user',
181                                         'namespace' => NS_USER,
182                                         'title' => 'New user',
183                                         'params' => [
184                                                 '4::userid' => 1,
185                                         ],
186                                 ],
187                                 [
188                                         'text' => 'User account New user was created automatically',
189                                         'api' => [
190                                                 'userid' => 1,
191                                         ],
192                                 ],
193                         ],
194                 ];
195         }
196
197         /**
198          * @dataProvider provideAutocreateLogDatabaseRows
199          */
200         public function testAutocreateLogDatabaseRows( $row, $extra ) {
201                 $this->doTestLogFormatter( $row, $extra );
202         }
203 }