Merge "Add language Doteli (dty)"
[lhc/web/wiklou.git] / tests / phpunit / includes / GlobalFunctions / GlobalTest.php
index dcafb73..e89e36f 100644 (file)
@@ -374,24 +374,6 @@ class GlobalTest extends MediaWikiTestCase {
                }
        }
 
-       /**
-        * @covers ::swap
-        */
-       public function testSwapVarsTest() {
-               $this->hideDeprecated( 'swap' );
-
-               $var1 = 1;
-               $var2 = 2;
-
-               $this->assertEquals( $var1, 1, 'var1 is set originally' );
-               $this->assertEquals( $var2, 2, 'var1 is set originally' );
-
-               swap( $var1, $var2 );
-
-               $this->assertEquals( $var1, 2, 'var1 is swapped' );
-               $this->assertEquals( $var2, 1, 'var2 is swapped' );
-       }
-
        /**
         * @covers ::wfPercent
         */
@@ -684,9 +666,9 @@ class GlobalTest extends MediaWikiTestCase {
        public function testWfMkdirParents() {
                // Should not return true if file exists instead of directory
                $fname = $this->getNewTempFile();
-               wfSuppressWarnings();
+               MediaWiki\suppressWarnings();
                $ok = wfMkdirParents( $fname );
-               wfRestoreWarnings();
+               MediaWiki\restoreWarnings();
                $this->assertFalse( $ok );
        }
 
@@ -705,6 +687,105 @@ class GlobalTest extends MediaWikiTestCase {
                $this->assertEquals( $expected, $actual, $description );
        }
 
+       public function wfWikiID() {
+               $this->setMwGlobals( array(
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => '',
+               ) );
+               $this->assertEquals(
+                       wfWikiID(),
+                       'example'
+               );
+
+               $this->setMwGlobals( array(
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => 'mw_',
+               ) );
+               $this->assertEquals(
+                       wfWikiID(),
+                       'example-mw_'
+               );
+       }
+
+       public function testWfMemcKey() {
+               // Just assert the exact output so we can catch unintentional changes to key
+               // construction, which would effectively invalidate all existing cache.
+
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => false,
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => '',
+               ) );
+               $this->assertEquals(
+                       wfMemcKey( 'foo', '123', 'bar' ),
+                       'example:foo:123:bar'
+               );
+
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => false,
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => 'mw_',
+               ) );
+               $this->assertEquals(
+                       wfMemcKey( 'foo', '123', 'bar' ),
+                       'example-mw_:foo:123:bar'
+               );
+
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => 'custom',
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => 'mw_',
+               ) );
+               $this->assertEquals(
+                       wfMemcKey( 'foo', '123', 'bar' ),
+                       'custom:foo:123:bar'
+               );
+       }
+
+       public function testWfForeignMemcKey() {
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => false,
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => '',
+               ) );
+               $local = wfMemcKey( 'foo', 'bar' );
+
+               $this->setMwGlobals( array(
+                       'wgDBname' => 'other',
+                       'wgDBprefix' => 'mw_',
+               ) );
+               $this->assertEquals(
+                       wfForeignMemcKey( 'example', '', 'foo', 'bar' ),
+                       $local,
+                       'Match output of wfMemcKey from local wiki'
+               );
+       }
+
+       public function testWfGlobalCacheKey() {
+               $this->setMwGlobals( array(
+                       'wgCachePrefix' => 'ignored',
+                       'wgDBname' => 'example',
+                       'wgDBprefix' => ''
+               ) );
+               $one = wfGlobalCacheKey( 'some', 'thing' );
+               $this->assertEquals(
+                       $one,
+                       'global:some:thing'
+               );
+
+               $this->setMwGlobals( array(
+                       'wgDBname' => 'other',
+                       'wgDBprefix' => 'mw_'
+               ) );
+               $two = wfGlobalCacheKey( 'some', 'thing' );
+
+               $this->assertEquals(
+                       $one,
+                       $two,
+                       'Not fragmented by wiki id'
+               );
+       }
+
        public static function provideWfShellWikiCmdList() {
                global $wgPhpCli;