3 namespace MediaWiki\Tests\Maintenance
;
5 use DeleteAutoPatrolLogs
;
9 * @covers DeleteAutoPatrolLogs
11 class DeleteAutoPatrolLogsTest
extends MaintenanceBaseTestCase
{
13 public function getMaintenanceClass() {
14 return DeleteAutoPatrolLogs
::class;
17 public function setUp() {
19 $this->tablesUsed
= [ 'logging' ];
21 $this->cleanLoggingTable();
22 $this->insertLoggingData();
25 private function cleanLoggingTable() {
26 wfGetDB( DB_MASTER
)->delete( 'logging', '*' );
29 private function insertLoggingData() {
34 'log_type' => 'patrol',
35 'log_action' => 'patrol',
38 'log_timestamp' => 20041223210426
43 'log_type' => 'patrol',
44 'log_action' => 'autopatrol',
47 'log_timestamp' => 20051223210426
52 'log_type' => 'block',
53 'log_action' => 'block',
56 'log_timestamp' => 20061223210426
61 'log_type' => 'patrol',
62 'log_action' => 'autopatrol',
65 'log_timestamp' => 20071223210426
68 // Autopatrol #3 old way
70 'log_type' => 'patrol',
71 'log_action' => 'patrol',
73 'log_params' => serialize( [ '6::auto' => true ] ),
74 'log_timestamp' => 20081223210426
77 // Manual patrol #2 old way
79 'log_type' => 'patrol',
80 'log_action' => 'patrol',
82 'log_params' => serialize( [ '6::auto' => false ] ),
83 'log_timestamp' => 20091223210426
86 wfGetDB( DB_MASTER
)->insert( 'logging', $logs );
89 public function testBasicRun() {
90 $this->maintenance
->loadWithArgv( [ '--sleep', '0', '-q' ] );
92 $this->maintenance
->execute();
94 $remainingLogs = wfGetDB( DB_REPLICA
)->select(
96 [ 'log_type', 'log_action', 'log_user' ],
99 [ 'ORDER BY' => 'log_id' ]
104 'log_type' => 'patrol',
105 'log_action' => 'patrol',
106 'log_user' => '7251',
109 'log_type' => 'block',
110 'log_action' => 'block',
111 'log_user' => '7253',
114 'log_type' => 'patrol',
115 'log_action' => 'patrol',
116 'log_user' => '7255',
119 'log_type' => 'patrol',
120 'log_action' => 'patrol',
121 'log_user' => '7256',
124 $this->assertEquals( $expected, iterator_to_array( $remainingLogs, false ) );
127 public function testDryRun() {
128 $this->maintenance
->loadWithArgv( [ '--sleep', '0', '--dry-run', '-q' ] );
130 $this->maintenance
->execute();
132 $remainingLogs = wfGetDB( DB_REPLICA
)->select(
134 [ 'log_type', 'log_action', 'log_user' ],
137 [ 'ORDER BY' => 'log_id' ]
142 'log_type' => 'patrol',
143 'log_action' => 'patrol',
144 'log_user' => '7251',
147 'log_type' => 'patrol',
148 'log_action' => 'autopatrol',
149 'log_user' => '7252',
152 'log_type' => 'block',
153 'log_action' => 'block',
154 'log_user' => '7253',
157 'log_type' => 'patrol',
158 'log_action' => 'autopatrol',
159 'log_user' => '7254',
162 'log_type' => 'patrol',
163 'log_action' => 'patrol',
164 'log_user' => '7255',
167 'log_type' => 'patrol',
168 'log_action' => 'patrol',
169 'log_user' => '7256',
172 $this->assertEquals( $expected, iterator_to_array( $remainingLogs, false ) );
175 public function testRunWithTimestamp() {
176 $this->maintenance
->loadWithArgv( [ '--sleep', '0', '--before', '20060123210426', '-q' ] );
178 $this->maintenance
->execute();
180 $remainingLogs = wfGetDB( DB_REPLICA
)->select(
182 [ 'log_type', 'log_action', 'log_user' ],
185 [ 'ORDER BY' => 'log_id' ]
190 'log_type' => 'patrol',
191 'log_action' => 'patrol',
192 'log_user' => '7251',
195 'log_type' => 'block',
196 'log_action' => 'block',
197 'log_user' => '7253',
200 'log_type' => 'patrol',
201 'log_action' => 'autopatrol',
202 'log_user' => '7254',
205 'log_type' => 'patrol',
206 'log_action' => 'patrol',
207 'log_user' => '7255',
210 'log_type' => 'patrol',
211 'log_action' => 'patrol',
212 'log_user' => '7256',
215 $this->assertEquals( $expected, iterator_to_array( $remainingLogs, false ) );
218 public function testRunWithCheckOld() {
219 $this->maintenance
->loadWithArgv( [ '--sleep', '0', '--check-old', '-q' ] );
221 $this->maintenance
->execute();
223 $remainingLogs = wfGetDB( DB_REPLICA
)->select(
225 [ 'log_type', 'log_action', 'log_user' ],
228 [ 'ORDER BY' => 'log_id' ]
233 'log_type' => 'patrol',
234 'log_action' => 'patrol',
235 'log_user' => '7251',
238 'log_type' => 'patrol',
239 'log_action' => 'autopatrol',
240 'log_user' => '7252',
243 'log_type' => 'block',
244 'log_action' => 'block',
245 'log_user' => '7253',
248 'log_type' => 'patrol',
249 'log_action' => 'autopatrol',
250 'log_user' => '7254',
253 'log_type' => 'patrol',
254 'log_action' => 'patrol',
255 'log_user' => '7256',
258 $this->assertEquals( $expected, iterator_to_array( $remainingLogs, false ) );