Merge "Selenium: replace UserLoginPage with BlankPage where possible"
[lhc/web/wiklou.git] / tests / phpunit / includes / page / ArticleTablesTest.php
1 <?php
2
3 /**
4 * @group Database
5 */
6 class ArticleTablesTest extends MediaWikiLangTestCase {
7
8 /**
9 * Make sure that T16404 doesn't strike again. We don't want
10 * templatelinks based on the user language when {{int:}} is used, only the
11 * content language.
12 *
13 * @covers Title::getTemplateLinksFrom
14 * @covers Title::getLinksFrom
15 */
16 public function testTemplatelinksUsesContentLanguage() {
17 $title = Title::newFromText( 'T16404' );
18 $page = WikiPage::factory( $title );
19 $user = new User();
20 $this->overrideUserPermissions( $user, [ 'createpage', 'edit', 'purge' ] );
21 $this->setContentLang( 'es' );
22 $this->setUserLang( 'fr' );
23
24 $page->doEditContent(
25 new WikitextContent( '{{:{{int:history}}}}' ),
26 'Test code for T16404',
27 0,
28 false,
29 $user
30 );
31 $templates1 = $title->getTemplateLinksFrom();
32
33 $this->setUserLang( 'de' );
34 $page = WikiPage::factory( $title ); // In order to force the re-rendering of the same wikitext
35
36 // We need an edit, a purge is not enough to regenerate the tables
37 $page->doEditContent(
38 new WikitextContent( '{{:{{int:history}}}}' ),
39 'Test code for T16404',
40 EDIT_UPDATE,
41 false,
42 $user
43 );
44 $templates2 = $title->getTemplateLinksFrom();
45
46 /**
47 * @var Title[] $templates1
48 * @var Title[] $templates2
49 */
50 $this->assertEquals( $templates1, $templates2 );
51 $this->assertEquals( $templates1[0]->getFullText(), 'Historial' );
52 }
53 }