From 91e194556c52d2f354344f930419eef2dd6267f0 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 4 Sep 2013 05:51:59 +0200 Subject: Update to MediaWiki 1.21.2 --- .../tests/ApiQueryTitleBlacklistTest.php | 110 +++++++++++++++++++++ extensions/TitleBlacklist/tests/testSource | 4 + 2 files changed, 114 insertions(+) create mode 100644 extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php create mode 100644 extensions/TitleBlacklist/tests/testSource (limited to 'extensions/TitleBlacklist/tests') diff --git a/extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php b/extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php new file mode 100644 index 00000000..1f8164e7 --- /dev/null +++ b/extensions/TitleBlacklist/tests/ApiQueryTitleBlacklistTest.php @@ -0,0 +1,110 @@ + + */ + +ini_set( 'include_path', ini_get( 'include_path' ) . ':' . __DIR__ . '/../../../tests/phpunit/includes/api' ); + +/** + * @group medium + **/ +class ApiQueryTitleBlacklistTest extends ApiTestCase { + + function setUp() { + global $wgTitleBlacklistSources; + parent::setUp(); + $this->doLogin(); + + $wgTitleBlacklistSources = array( + array( + 'type' => TBLSRC_FILE, + 'src' => __DIR__ . '/testSource', + ), + ); + } + + /** + * Verify we allow a title which is not blacklisted + */ + function testCheckingUnlistedTitle() { + $unlisted = $this->doApiRequest( array( + 'action' => 'titleblacklist', + // evil_acc is blacklisted as + 'tbtitle' => 'evil_acc', + 'tbaction' => 'create', + 'tbnooverride' => true, + ) ); + + $this->assertEquals( + 'ok', + $unlisted[0]['titleblacklist']['result'], + 'Not blacklisted title returns ok' + ); + } + + /** + * Verify tboverride works + */ + function testTboverride() { + global $wgGroupPermissions; + + // Allow all users to override the titleblacklist + $wgGroupPermissions['*']['tboverride'] = true; + + $unlisted = $this->doApiRequest( array( + 'action' => 'titleblacklist', + 'tbtitle' => 'bar', + 'tbaction' => 'create', + ) ); + + $this->assertEquals( + 'ok', + $unlisted[0]['titleblacklist']['result'], + 'Blacklisted title returns ok if the user is allowd to tboverride' + ); + } + + /** + * Verify a blacklisted title gives out an error. + */ + function testCheckingBlackListedTitle() { + $listed = $this->doApiRequest( array( + 'action' => 'titleblacklist', + 'tbtitle' => 'bar', + 'tbaction' => 'create', + 'tbnooverride' => true, + ) ); + + $this->assertEquals( + 'blacklisted', + $listed[0]['titleblacklist']['result'], + 'Listed title returns error' + ); + $this->assertEquals( + "The title \"bar\" has been banned from creation.\nIt matches the following blacklist entry: [Bb]ar #example blacklist entry", + $listed[0]['titleblacklist']['reason'], + 'Listed title error text is as expected' + ); + + $this->assertEquals( + "titleblacklist-forbidden-edit", + $listed[0]['titleblacklist']['message'], + 'Correct blacklist message name is returned' + ); + + $this->assertEquals( + "[Bb]ar #example blacklist entry", + $listed[0]['titleblacklist']['line'], + 'Correct blacklist line is returned' + ); + + } +} diff --git a/extensions/TitleBlacklist/tests/testSource b/extensions/TitleBlacklist/tests/testSource new file mode 100644 index 00000000..f73d9dd7 --- /dev/null +++ b/extensions/TitleBlacklist/tests/testSource @@ -0,0 +1,4 @@ +[Bb]ar #example blacklist entry +.*[Ff]ail.* +.*[Nn]yancat.* +.*evil_acc.* -- cgit v1.2.2