'move', 'action' => 'move', 'comment' => 'move comment with redirect', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ '4::target' => 'NewPage', '5::noredir' => '0', ], ], [ 'text' => 'User moved page OldPage to NewPage', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => false, ], ], ], // Current format - without redirect [ [ 'type' => 'move', 'action' => 'move', 'comment' => 'move comment', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ '4::target' => 'NewPage', '5::noredir' => '1', ], ], [ 'text' => 'User moved page OldPage to NewPage without leaving a redirect', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => true, ], ], ], // legacy format - with redirect [ [ 'type' => 'move', 'action' => 'move', 'comment' => 'move comment', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ 'NewPage', '', ], ], [ 'legacy' => true, 'text' => 'User moved page OldPage to NewPage', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => false, ], ], ], // legacy format - without redirect [ [ 'type' => 'move', 'action' => 'move', 'comment' => 'move comment', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ 'NewPage', '1', ], ], [ 'legacy' => true, 'text' => 'User moved page OldPage to NewPage without leaving a redirect', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => true, ], ], ], // old format without flag for redirect suppression [ [ 'type' => 'move', 'action' => 'move', 'comment' => 'move comment', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ 'NewPage', ], ], [ 'legacy' => true, 'text' => 'User moved page OldPage to NewPage', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => false, ], ], ], ]; } /** * @dataProvider provideMoveLogDatabaseRows */ public function testMoveLogDatabaseRows( $row, $extra ) { $this->doTestLogFormatter( $row, $extra ); } /** * Provide different rows from the logging table to test * for backward compatibility. * Do not change the existing data, just add a new database row */ public static function provideMoveRedirLogDatabaseRows() { return [ // Current format - with redirect [ [ 'type' => 'move', 'action' => 'move_redir', 'comment' => 'move comment with redirect', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ '4::target' => 'NewPage', '5::noredir' => '0', ], ], [ 'text' => 'User moved page OldPage to NewPage over redirect', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => false, ], ], ], // Current format - without redirect [ [ 'type' => 'move', 'action' => 'move_redir', 'comment' => 'move comment', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ '4::target' => 'NewPage', '5::noredir' => '1', ], ], [ 'text' => 'User moved page OldPage to NewPage over a redirect without leaving a redirect', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => true, ], ], ], // legacy format - with redirect [ [ 'type' => 'move', 'action' => 'move_redir', 'comment' => 'move comment', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ 'NewPage', '', ], ], [ 'legacy' => true, 'text' => 'User moved page OldPage to NewPage over redirect', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => false, ], ], ], // legacy format - without redirect [ [ 'type' => 'move', 'action' => 'move_redir', 'comment' => 'move comment', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ 'NewPage', '1', ], ], [ 'legacy' => true, 'text' => 'User moved page OldPage to NewPage over a redirect without leaving a redirect', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => true, ], ], ], // old format without flag for redirect suppression [ [ 'type' => 'move', 'action' => 'move_redir', 'comment' => 'move comment', 'namespace' => NS_MAIN, 'title' => 'OldPage', 'params' => [ 'NewPage', ], ], [ 'legacy' => true, 'text' => 'User moved page OldPage to NewPage over redirect', 'api' => [ 'target_ns' => 0, 'target_title' => 'NewPage', 'suppressredirect' => false, ], ], ], ]; } /** * @dataProvider provideMoveRedirLogDatabaseRows */ public function testMoveRedirLogDatabaseRows( $row, $extra ) { $this->doTestLogFormatter( $row, $extra ); } }