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