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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
<?php
use MediaWiki\SpecialPage\SpecialPage;
use MediaWiki\Specials\SpecialEditWatchlist;
/**
* @author Addshore
*
* @group Database
*
* @covers \MediaWiki\Specials\SpecialEditWatchlist
*/
class SpecialEditWatchlistTest extends SpecialPageTestBase {
/**
* Returns a new instance of the special page under test.
*
* @return SpecialPage
*/
protected function newSpecialPage() {
$services = $this->getServiceContainer();
return new SpecialEditWatchlist(
$services->getWatchedItemStore(),
$services->getTitleParser(),
$services->getGenderCache(),
$services->getLinkBatchFactory(),
$services->getNamespaceInfo(),
$services->getWikiPageFactory(),
$services->getWatchlistManager()
);
}
public function testNotLoggedIn_throwsException() {
$this->expectException( UserNotLoggedIn::class );
$this->executeSpecialPage();
}
public function testRootPage_displaysExplanationMessage() {
$user = new TestUser( __METHOD__ );
[ $html, ] = $this->executeSpecialPage( '', null, 'qqx', $user->getUser() );
$this->assertStringContainsString( '(watchlistedit-normal-explain)', $html );
}
public function testClearPage_hasClearButtonForm() {
$user = new TestUser( __METHOD__ );
[ $html, ] = $this->executeSpecialPage( 'clear', null, 'qqx', $user->getUser() );
$this->assertMatchesRegularExpression(
'/<form action=\'.*?Special:EditWatchlist\/clear\'/',
$html
);
}
public function testEditRawPage_hasTitlesBox() {
$user = new TestUser( __METHOD__ );
[ $html, ] = $this->executeSpecialPage( 'raw', null, 'qqx', $user->getUser() );
$this->assertStringContainsString(
'<div id=\'mw-input-wpTitles\'',
$html
);
}
}
|