MediaWiki REL1_31
SpecialMyLanguageTest.php
Go to the documentation of this file.
1<?php
2
8 public function addDBDataOnce() {
9 $titles = [
10 'Page/Another',
11 'Page/Another/ar',
12 'Page/Another/en',
13 'Page/Another/ru',
14 'Page/Another/zh-hans',
15 ];
16 foreach ( $titles as $title ) {
17 $page = WikiPage::factory( Title::newFromText( $title ) );
18 if ( $page->getId() == 0 ) {
19 $page->doEditContent(
20 new WikitextContent( 'UTContent' ),
21 'UTPageSummary',
23 false,
24 User::newFromName( 'UTSysop' ) );
25 }
26 }
27 }
28
37 public function testFindTitle( $expected, $subpage, $langCode, $userLang ) {
38 $this->setMwGlobals( 'wgLanguageCode', $langCode );
39 $special = new SpecialMyLanguage();
40 $special->getContext()->setLanguage( $userLang );
41 // Test with subpages both enabled and disabled
42 $this->mergeMwGlobalArrayValue( 'wgNamespacesWithSubpages', [ NS_MAIN => true ] );
43 $this->assertTitle( $expected, $special->findTitle( $subpage ) );
44 $this->mergeMwGlobalArrayValue( 'wgNamespacesWithSubpages', [ NS_MAIN => false ] );
45 $this->assertTitle( $expected, $special->findTitle( $subpage ) );
46 }
47
52 private function assertTitle( $expected, $title ) {
53 if ( $title ) {
54 $title = $title->getPrefixedText();
55 }
56 $this->assertEquals( $expected, $title );
57 }
58
59 public static function provideFindTitle() {
60 // See addDBDataOnce() for page declarations
61 return [
62 // [ $expected, $subpage, $langCode, $userLang ]
63 [ null, '::Fail', 'en', 'en' ],
64 [ 'Page/Another', 'Page/Another/en', 'en', 'en' ],
65 [ 'Page/Another', 'Page/Another', 'en', 'en' ],
66 [ 'Page/Another/ru', 'Page/Another', 'en', 'ru' ],
67 [ 'Page/Another', 'Page/Another', 'en', 'es' ],
68 [ 'Page/Another/zh-hans', 'Page/Another', 'en', 'zh-hans' ],
69 [ 'Page/Another/zh-hans', 'Page/Another', 'en', 'zh-mo' ],
70 [ 'Page/Another/en', 'Page/Another', 'de', 'es' ],
71 [ 'Page/Another/ar', 'Page/Another', 'en', 'ar' ],
72 [ 'Page/Another/ar', 'Page/Another', 'en', 'arz' ],
73 [ 'Page/Another/ar', 'Page/Another/de', 'en', 'arz' ],
74 [ 'Page/Another/ru', 'Page/Another/ru', 'en', 'arz' ],
75 [ 'Page/Another/ar', 'Page/Another/ru', 'en', 'ar' ],
76 ];
77 }
78}
mergeMwGlobalArrayValue( $name, $values)
Merges the given values into a MW global array variable.
setMwGlobals( $pairs, $value=null)
Sets a global, maintaining a stashed version of the previous global to be restored in tearDown.
Database SpecialMyLanguage.
testFindTitle( $expected, $subpage, $langCode, $userLang)
SpecialMyLanguage::findTitle provideFindTitle.
assertTitle( $expected, $title)
Unlisted special page just to redirect the user to the translated version of a page,...
static newFromName( $name, $validate='valid')
Static factory method for creation from username.
Definition User.php:591
Content object for wiki text pages.
const NS_MAIN
Definition Defines.php:74
const EDIT_NEW
Definition Defines.php:162
linkcache txt The LinkCache class maintains a list of article titles and the information about whether or not the article exists in the database This is used to mark up links when displaying a page If the same link appears more than once on any page then it only has to be looked up once In most cases link lookups are done in batches with the LinkBatch class or the equivalent in so the link cache is mostly useful for short snippets of parsed and for links in the navigation areas of the skin The link cache was formerly used to track links used in a document for the purposes of updating the link tables This application is now deprecated To create a you can use the following $titles
Definition linkcache.txt:17