File: SpecialPasswordResetTest.php

package info (click to toggle)
mediawiki 1%3A1.43.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 417,464 kB
  • sloc: php: 1,062,949; javascript: 664,290; sql: 9,714; python: 5,458; xml: 3,489; sh: 1,131; makefile: 64
file content (46 lines) | stat: -rw-r--r-- 1,506 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php

use MediaWiki\Request\FauxRequest;
use MediaWiki\Specials\SpecialPasswordReset;
use MediaWiki\Tests\SpecialPage\FormSpecialPageTestCase;
use MediaWiki\Tests\User\TempUser\TempUserTestTrait;

/**
 * @covers \MediaWiki\Specials\SpecialPasswordReset
 * @group Database
 */
class SpecialPasswordResetTest extends FormSpecialPageTestCase {

	use TempUserTestTrait;

	/**
	 * @inheritDoc
	 */
	protected function newSpecialPage() {
		return new SpecialPasswordReset(
			$this->getServiceContainer()->getPasswordReset()
		);
	}

	public function testView() {
		[ $html ] = $this->executeSpecialPage();
		// Check that the form fields are as expected
		$this->assertStringContainsString( '(passwordreset-username', $html );
		$this->assertStringContainsString( '(passwordreset-email', $html );
		$this->assertStringContainsString( '(passwordreset-text-many', $html );
		$this->assertStringContainsString( '(mailmypassword', $html );
	}

	public function testExecuteForTemporaryAccountUsername() {
		// Get an existing temporary account to test with
		$this->enableAutoCreateTempUser();
		$tempUser = $this->getServiceContainer()->getTempUserCreator()->create( null, new FauxRequest() )->getUser();
		// Make a fake POST request that tries to use a temporary account for the password
		$request = new FauxRequest(
			[ 'wpUsername' => $tempUser->getName() ],
			true
		);
		[ $html ] = $this->executeSpecialPage( '', $request );
		$this->assertStringContainsString( '(htmlform-user-not-valid', $html );
	}
}