This covers deleting non-file pages. Bug: T183886 Change-Id: I31c27786b16b55f8bf4cf528bf4c1ea49075e02e
79 lines
1.8 KiB
PHP
79 lines
1.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Tests for MediaWiki api.php?action=delete.
|
|
*
|
|
* @author Yifei He
|
|
*
|
|
* @group API
|
|
* @group Database
|
|
* @group medium
|
|
*
|
|
* @covers ApiDelete
|
|
*/
|
|
class ApiDeleteTest extends ApiTestCase {
|
|
|
|
protected function setUp() {
|
|
parent::setUp();
|
|
|
|
$this->doLogin();
|
|
}
|
|
|
|
public function testDelete() {
|
|
$name = 'Help:ApiDeleteTest_testDelete';
|
|
|
|
// test non-existing page
|
|
try {
|
|
$this->doApiRequestWithToken( [
|
|
'action' => 'delete',
|
|
'title' => $name,
|
|
] );
|
|
$this->fail( "Should have raised an ApiUsageException" );
|
|
} catch ( ApiUsageException $e ) {
|
|
$this->assertTrue( self::apiExceptionHasCode( $e, 'missingtitle' ) );
|
|
}
|
|
|
|
// create new page
|
|
$this->editPage( $name, 'Some text' );
|
|
|
|
// test deletion
|
|
$apiResult = $this->doApiRequestWithToken( [
|
|
'action' => 'delete',
|
|
'title' => $name,
|
|
] );
|
|
$apiResult = $apiResult[0];
|
|
|
|
$this->assertArrayHasKey( 'delete', $apiResult );
|
|
$this->assertArrayHasKey( 'title', $apiResult['delete'] );
|
|
// Normalized $name is used
|
|
$this->assertSame(
|
|
'Help:ApiDeleteTest testDelete',
|
|
$apiResult['delete']['title']
|
|
);
|
|
$this->assertArrayHasKey( 'logid', $apiResult['delete'] );
|
|
|
|
$this->assertFalse( Title::newFromText( $name )->exists() );
|
|
}
|
|
|
|
public function testDeletionWithoutPermission() {
|
|
$name = 'Help:ApiDeleteTest_testDeleteWithoutPermission';
|
|
|
|
// create new page
|
|
$this->editPage( $name, 'Some text' );
|
|
|
|
// test deletion without permission
|
|
try {
|
|
$user = new User();
|
|
$apiResult = $this->doApiRequest( [
|
|
'action' => 'delete',
|
|
'title' => $name,
|
|
'token' => $user->getEditToken(),
|
|
], null, null, $user );
|
|
$this->fail( "Should have raised an ApiUsageException" );
|
|
} catch ( ApiUsageException $e ) {
|
|
$this->assertTrue( self::apiExceptionHasCode( $e, 'permissiondenied' ) );
|
|
}
|
|
|
|
$this->assertTrue( Title::newFromText( $name )->exists() );
|
|
}
|
|
}
|