Merge "Show dimensions in TraditionalImageGallery"
[lhc/web/wiklou.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 }