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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
<?php
namespace MediaWiki\Tests\Log;
use DatabaseLogEntry;
use LogPage;
use MediaWiki\MainConfigNames;
use MediaWiki\User\UserIdentityValue;
use MockTitleTrait;
/**
* @group Database
* @coversDefaultClass \LogPage
*/
class LogPageTest extends \MediaWikiIntegrationTestCase {
use MockTitleTrait;
protected function setUp(): void {
parent::setUp();
$this->overrideConfigValues( [
MainConfigNames::LogNames => [
'test_test' => 'testing-log-message'
],
MainConfigNames::LogHeaders => [
'test_test' => 'testing-log-header'
],
MainConfigNames::LogRestrictions => [
'test_test' => 'testing-log-restriction'
]
] );
}
/**
* @covers ::__construct
* @covers ::getName
* @covers ::getDescription
* @covers ::getRestriction
* @covers ::isRestricted
*/
public function testConstruct() {
$logPage = new LogPage( 'test_test' );
$this->assertSame( 'testing-log-message', $logPage->getName()->getKey() );
$this->assertSame( 'testing-log-header', $logPage->getDescription()->getKey() );
$this->assertSame( 'testing-log-restriction', $logPage->getRestriction() );
$this->assertTrue( $logPage->isRestricted() );
}
/**
* @covers ::addEntry
* @covers ::getComment
* @covers ::getRcComment
* @covers ::getRcCommentIRC
*/
public function testAddEntrySetsProperties() {
$logPage = new LogPage( 'test_test' );
$user = new UserIdentityValue( 1, 'Bar' );
$logPage->addEntry(
'test_action',
$this->makeMockTitle( __METHOD__ ),
'testing_comment',
[ 'param_one', 'param_two' ],
$user
);
$this->assertSame( 'testing_comment', $logPage->getComment() );
$this->assertStringContainsString( 'testing_comment', $logPage->getRcComment() );
$this->assertStringContainsString( 'testing_comment', $logPage->getRcCommentIRC() );
}
/**
* @covers ::addEntry
*/
public function testAddEntrySave() {
$logPage = new LogPage( 'test_test' );
$user = new UserIdentityValue( 1, 'Foo' );
$title = $this->makeMockTitle( __METHOD__ );
$id = $logPage->addEntry(
'test_action',
$title,
'testing_comment',
[ 'param_one', 'param_two' ],
$user
);
$savedLogEntry = DatabaseLogEntry::newFromId( $id, $this->getDb() );
$this->assertNotNull( $savedLogEntry );
$this->assertSame( 'test_test', $savedLogEntry->getType() );
$this->assertSame( 'test_action', $savedLogEntry->getSubtype() );
$this->assertSame( 'testing_comment', $savedLogEntry->getComment() );
$this->assertArrayEquals( [ 'param_one', 'param_two' ], $savedLogEntry->getParameters() );
$this->assertTrue( $title->equals( $savedLogEntry->getTarget() ) );
$this->assertTrue( $user->equals( $savedLogEntry->getPerformerIdentity() ) );
}
/**
* @covers ::actionText
*/
public function testUnknownAction() {
$title = $this->makeMockTitle( 'Test Title' );
$text = LogPage::actionText( 'unknown', 'action', $title, null, [ 'discarded' ] );
$this->assertSame( 'performed unknown action "unknown/action" on [[Test Title]]', $text );
}
}
|