Merge "Drop cache interwiki"
[mediawiki.git] / tests / phpunit / includes / specials / SpecialRenameUserTest.php
blob5265c74f82d12432c8ce05a55c6ecc0fcdfcc8d9
1 <?php
3 use MediaWiki\Request\FauxRequest;
4 use MediaWiki\Specials\SpecialRenameUser;
6 /**
7 * @group Database
8 * @covers \MediaWiki\Specials\SpecialRenameUser
9 * @covers \MediaWiki\RenameUser\RenameuserSQL
11 class SpecialRenameUserTest extends SpecialPageTestBase {
12 protected function newSpecialPage() {
13 $services = $this->getServiceContainer();
14 return new SpecialRenameUser(
15 $services->getConnectionProvider(),
16 $services->getMovePageFactory(),
17 $services->getPermissionManager(),
18 $services->getTitleFactory(),
19 $services->getUserFactory(),
20 $services->getUserNamePrefixSearch(),
21 $services->getUserNameUtils()
25 public static function provideRenameAndMove() {
26 return [
27 'no move' => [ false, false ],
28 'normal move' => [ true, false ],
29 'suppress redirect' => [ true, true ]
33 /**
34 * @dataProvider provideRenameAndMove
35 * @param bool $movePages
36 * @param bool $suppressRedirects
38 public function testRenameAndMove( $movePages, $suppressRedirects ) {
39 $userFactory = $this->getServiceContainer()->getUserFactory();
40 $titleFactory = $this->getServiceContainer()->getTitleFactory();
42 $performer = $this->getTestSysop()->getUser();
43 $oldUser = $this->getTestUser()->getUser();
44 $oldName = $oldUser->getName();
45 $newName = $oldName . ' new';
46 $oldPage = $oldUser->getUserPage();
47 $oldTalkPage = $oldUser->getTalkPage();
48 $this->editPage( $oldPage, 'user page' );
49 $this->editPage( $oldPage->getSubpage( 'subpage' ), 'subpage' );
50 $this->editPage( $oldTalkPage, 'user talk page' );
52 $formData = [
53 'wpEditToken' => $performer->getEditToken(),
54 'oldusername' => $oldName,
55 'newusername' => $newName,
56 'reason' => 'r',
58 if ( $movePages ) {
59 $formData['movepages'] = '1';
61 if ( $suppressRedirects ) {
62 $formData['suppressredirect'] = '1';
65 $this->executeSpecialPage(
66 '',
67 new FauxRequest( $formData, true ),
68 null,
69 $performer
72 $this->assertTrue( $userFactory->newFromName( $newName )->isRegistered(),
73 'new user exists' );
74 $this->assertSame(
75 $movePages,
76 $titleFactory->makeTitle( NS_USER, $newName )->exists(),
77 'new user page exists'
79 $this->assertSame(
80 $movePages,
81 $titleFactory->makeTitle( NS_USER, "$newName/subpage" )->exists(),
82 'new user subpage exists'
84 $this->assertSame(
85 $movePages,
86 $titleFactory->makeTitle( NS_USER_TALK, "$newName" )->exists(),
87 'new user talk page exists'
90 $oldPage->resetArticleID( false );
91 $this->assertSame( !$suppressRedirects, $oldPage->exists() );