aboutsummaryrefslogtreecommitdiffstats
path: root/tests/phpunit/includes/page/ArticleTablesTest.php
blob: 6c2636461963de40042066d9ac19747781d93b05 (plain) (blame)
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
<?php

use MediaWiki\Content\WikitextContent;
use MediaWiki\Title\Title;

/**
 * @group Database
 */
class ArticleTablesTest extends MediaWikiLangTestCase {

	/**
	 * Make sure that T16404 doesn't strike again. We don't want
	 * templatelinks based on the user language when {{int:}} is used, only the
	 * content language.
	 *
	 * @covers \MediaWiki\Title\Title::getTemplateLinksFrom
	 * @covers \MediaWiki\Title\Title::getLinksFrom
	 */
	public function testTemplatelinksUsesContentLanguage() {
		$title = Title::makeTitle( NS_MAIN, 'T16404' );
		$wikiPageFactory = $this->getServiceContainer()->getWikiPageFactory();
		$page = $wikiPageFactory->newFromTitle( $title );
		$user = $this->getTestUser()->getUser();
		$this->overrideUserPermissions( $user, [ 'createpage', 'edit', 'purge' ] );
		$this->setContentLang( 'es' );
		$this->setUserLang( 'fr' );

		$page->doUserEditContent(
			new WikitextContent( '{{:{{int:history}}}}' ),
			$user,
			'Test code for T16404'
		);
		$templates1 = $title->getTemplateLinksFrom();

		$this->setUserLang( 'de' );
		$page = $wikiPageFactory->newFromTitle( $title ); // In order to force the re-rendering of the same wikitext

		// We need an edit, a purge is not enough to regenerate the tables
		$page->doUserEditContent(
			new WikitextContent( '{{:{{int:history}}}}' ),
			$user,
			'Test code for T16404',
			EDIT_UPDATE
		);
		$templates2 = $title->getTemplateLinksFrom();

		/**
		 * @var Title[] $templates1
		 * @var Title[] $templates2
		 */
		$this->assertEquals( $templates1, $templates2 );
		$this->assertSame( 'Historial', $templates1[0]->getFullText() );
	}
}