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
|
<?php
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
* @since 1.42
*/
namespace MediaWiki\Tests\Content\Transform;
use MediaWiki\Content\Transform\PreSaveTransformParamsValue;
use MediaWiki\Page\PageReference;
use MediaWiki\Parser\ParserOptions;
use MediaWiki\Title\Title;
use MediaWiki\User\User;
use MediaWiki\User\UserIdentity;
use MediaWikiIntegrationTestCase;
/**
* @covers \MediaWiki\Content\Transform\PreSaveTransformParamsValue
* @group Database
*/
class PreSaveTransformParamsValueTest extends MediaWikiIntegrationTestCase {
protected PageReference $page;
protected UserIdentity $user;
protected ParserOptions $parserOptions;
protected function setUp(): void {
parent::setUp();
$this->page = $this->createMock( PageReference::class );
$this->user = $this->createMock( UserIdentity::class );
$this->parserOptions = $this->createMock( ParserOptions::class );
}
public function testConstruct() {
$params = new PreSaveTransformParamsValue( $this->page, $this->user, $this->parserOptions );
$this->assertSame( $this->page, $params->getPage() );
$this->assertSame( $this->user, $params->getUser() );
$this->assertSame( $this->parserOptions, $params->getParserOptions() );
}
public function testGetPage() {
$title = Title::newFromText( 'TestPage' );
$page = $this->getServiceContainer()->getWikiPageFactory()->newFromTitle( $title );
$params = new PreSaveTransformParamsValue( $page, $this->user, $this->parserOptions );
$this->assertSame( $page, $params->getPage() );
}
public function testGetUser() {
$user = $this->getTestUser();
$params = new PreSaveTransformParamsValue( $this->page, $user->getUserIdentity(), $this->parserOptions );
$expectedUser = $user->getUserIdentity();
$actualUser = $params->getUser();
$this->assertEquals( $expectedUser->getId(), $actualUser->getId(), 'User IDs do not match' );
$this->assertEquals( $expectedUser->getName(), $actualUser->getName(), 'User names do not match' );
$this->assertEquals( $expectedUser->getWikiId(), $actualUser->getWikiId(), 'Wiki IDs do not match' );
}
/**
* @dataProvider provideParserOptions
*/
public function testGetParserOptions( $options ) {
$title = Title::newFromText( 'TestPage' );
$page = $this->getServiceContainer()->getWikiPageFactory()->newFromTitle( $title );
$params = new PreSaveTransformParamsValue( $page, $this->user, $options );
$this->assertSame( $options, $params->getParserOptions() );
}
public function provideParserOptions(): array {
$user = new User();
$options = ParserOptions::newFromUser( $user );
return [
[ $options ],
[ ParserOptions::newFromUser( $user ) ],
];
}
}
|