TableDiffFormatter: Don't repeatedly call array_shift()
[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 * Make sure that bug 14404 doesn't strike again. We don't want
9 * templatelinks based on the user language when {{int:}} is used, only the
10 * content language.
11 *
12 * @covers Title::getTemplateLinksFrom
13 * @covers Title::getLinksFrom
14 */
15 public function testTemplatelinksUsesContentLanguage() {
16 $title = Title::newFromText( 'Bug 14404' );
17 $page = WikiPage::factory( $title );
18 $user = new User();
19 $user->mRights = [ 'createpage', 'edit', 'purge' ];
20 $this->setMwGlobals( 'wgLanguageCode', 'es' );
21 $this->setMwGlobals( 'wgContLang', Language::factory( 'es' ) );
22 $this->setMwGlobals( 'wgLang', Language::factory( 'fr' ) );
23
24 $page->doEditContent(
25 new WikitextContent( '{{:{{int:history}}}}' ),
26 'Test code for bug 14404',
27 0,
28 false,
29 $user
30 );
31 $templates1 = $title->getTemplateLinksFrom();
32
33 $this->setMwGlobals( 'wgLang', Language::factory( '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 bug 14404',
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 }