Merge "Revert "Don't construct SpecialPages twice""
[lhc/web/wiklou.git] / tests / phpunit / includes / PagePropsTest.php
index 9a1f597..29c9e22 100644 (file)
@@ -39,12 +39,12 @@ class TestPageProps extends MediaWikiLangTestCase {
                $wgContLang->resetNamespaces(); # reset namespace cache
 
                if ( !$this->the_properties ) {
-                       $this->the_properties = array(
+                       $this->the_properties = [
                                "property1" => "value1",
                                "property2" => "value2",
                                "property3" => "value3",
                                "property4" => "value4"
-                       );
+                       ];
                }
 
                if ( !$this->title1 ) {
@@ -92,7 +92,7 @@ class TestPageProps extends MediaWikiLangTestCase {
        public function testGetSingleProperty() {
                $pageProps = PageProps::getInstance();
                $page1ID = $this->title1->getArticleID();
-               $result = $pageProps->getProperty( $this->title1, "property1" );
+               $result = $pageProps->getProperties( $this->title1, "property1" );
                $this->assertArrayHasKey( $page1ID, $result, "Found property" );
                $this->assertEquals( $result[$page1ID], "value1", "Get property" );
        }
@@ -105,17 +105,46 @@ class TestPageProps extends MediaWikiLangTestCase {
                $pageProps = PageProps::getInstance();
                $page1ID = $this->title1->getArticleID();
                $page2ID = $this->title2->getArticleID();
-               $titles = array(
+               $titles = [
                        $this->title1,
                        $this->title2
-               );
-               $result = $pageProps->getProperty( $titles, "property1" );
+               ];
+               $result = $pageProps->getProperties( $titles, "property1" );
                $this->assertArrayHasKey( $page1ID, $result, "Found page 1 property" );
                $this->assertArrayHasKey( $page2ID, $result, "Found page 2 property" );
                $this->assertEquals( $result[$page1ID], "value1", "Get property page 1" );
                $this->assertEquals( $result[$page2ID], "value1", "Get property page 2" );
        }
 
+       /**
+        * Test getting multiple properties from multiple pages. The properties
+        * were set in setUp().
+        */
+       public function testGetMultiplePropertiesMultiplePages() {
+               $pageProps = PageProps::getInstance();
+               $page1ID = $this->title1->getArticleID();
+               $page2ID = $this->title2->getArticleID();
+               $titles = [
+                       $this->title1,
+                       $this->title2
+               ];
+               $properties = [
+                       "property1",
+                       "property2"
+               ];
+               $result = $pageProps->getProperties( $titles, $properties );
+               $this->assertArrayHasKey( $page1ID, $result, "Found page 1 property" );
+               $this->assertArrayHasKey( "property1", $result[$page1ID], "Found page 1 property 1" );
+               $this->assertArrayHasKey( "property2", $result[$page1ID], "Found page 1 property 2" );
+               $this->assertArrayHasKey( $page2ID, $result, "Found page 2 property" );
+               $this->assertArrayHasKey( "property1", $result[$page2ID], "Found page 2 property 1" );
+               $this->assertArrayHasKey( "property2", $result[$page2ID], "Found page 2 property 2" );
+               $this->assertEquals( $result[$page1ID]["property1"], "value1", "Get page 1 property 1" );
+               $this->assertEquals( $result[$page1ID]["property2"], "value2", "Get page 1 property 2" );
+               $this->assertEquals( $result[$page2ID]["property1"], "value1", "Get page 2 property 1" );
+               $this->assertEquals( $result[$page2ID]["property2"], "value2", "Get page 2 property 2" );
+       }
+
        /**
         * Test getting all properties from a single page. The properties were
         * set in setUp(). The properties retrieved from the page may include
@@ -130,7 +159,7 @@ class TestPageProps extends MediaWikiLangTestCase {
        public function testGetAllProperties() {
                $pageProps = PageProps::getInstance();
                $page1ID = $this->title1->getArticleID();
-               $result = $pageProps->getProperties( $this->title1 );
+               $result = $pageProps->getAllProperties( $this->title1 );
                $this->assertArrayHasKey( $page1ID, $result, "Found properties" );
                $properties = $result[$page1ID];
                $patched = array_replace_recursive( $properties, $this->the_properties );
@@ -145,11 +174,11 @@ class TestPageProps extends MediaWikiLangTestCase {
                $pageProps = PageProps::getInstance();
                $page1ID = $this->title1->getArticleID();
                $page2ID = $this->title2->getArticleID();
-               $titles = array(
+               $titles = [
                        $this->title1,
                        $this->title2
-               );
-               $result = $pageProps->getProperties( $titles );
+               ];
+               $result = $pageProps->getAllProperties( $titles );
                $this->assertArrayHasKey( $page1ID, $result, "Found page 1 properties" );
                $this->assertArrayHasKey( $page2ID, $result, "Found page 2 properties" );
                $properties1 = $result[$page1ID];
@@ -169,9 +198,9 @@ class TestPageProps extends MediaWikiLangTestCase {
        public function testSingleCache() {
                $pageProps = PageProps::getInstance();
                $page1ID = $this->title1->getArticleID();
-               $value1 = $pageProps->getProperty( $this->title1, "property1" );
+               $value1 = $pageProps->getProperties( $this->title1, "property1" );
                $this->setProperty( $page1ID, "property1", "another value" );
-               $value2 = $pageProps->getProperty( $this->title1, "property1" );
+               $value2 = $pageProps->getProperties( $this->title1, "property1" );
                $this->assertEquals( $value1, $value2, "Single cache" );
        }
 
@@ -184,9 +213,9 @@ class TestPageProps extends MediaWikiLangTestCase {
        public function testMultiCache() {
                $pageProps = PageProps::getInstance();
                $page1ID = $this->title1->getArticleID();
-               $properties1 = $pageProps->getProperties( $this->title1 );
+               $properties1 = $pageProps->getAllProperties( $this->title1 );
                $this->setProperty( $page1ID, "property1", "another value" );
-               $properties2 = $pageProps->getProperties( $this->title1 );
+               $properties2 = $pageProps->getAllProperties( $this->title1 );
                $this->assertEquals( $properties1, $properties2, "Multi Cache" );
        }
 
@@ -201,11 +230,11 @@ class TestPageProps extends MediaWikiLangTestCase {
        public function testClearCache() {
                $pageProps = PageProps::getInstance();
                $page1ID = $this->title1->getArticleID();
-               $pageProps->getProperty( $this->title1, "property1" );
+               $pageProps->getProperties( $this->title1, "property1" );
                $new_value = "another value";
                $this->setProperty( $page1ID, "property1", $new_value );
-               $pageProps->getProperties( $this->title1 );
-               $result = $pageProps->getProperty( $this->title1, "property1" );
+               $pageProps->getAllProperties( $this->title1 );
+               $result = $pageProps->getProperties( $this->title1, "property1" );
                $this->assertArrayHasKey( $page1ID, $result, "Found property" );
                $this->assertEquals( $result[$page1ID], "another value", "Clear cache" );
        }
@@ -237,16 +266,14 @@ class TestPageProps extends MediaWikiLangTestCase {
        }
 
        protected function setProperties( $pageID, $properties ) {
-
-               $rows = array();
+               $rows = [];
 
                foreach ( $properties as $propertyName => $propertyValue ) {
-
-                       $row = array(
+                       $row = [
                                'pp_page' => $pageID,
                                'pp_propname' => $propertyName,
                                'pp_value' => $propertyValue
-                       );
+                       ];
 
                        $rows[] = $row;
                }
@@ -254,23 +281,21 @@ class TestPageProps extends MediaWikiLangTestCase {
                $dbw = wfGetDB( DB_MASTER );
                $dbw->replace(
                        'page_props',
-                       array(
-                               array(
+                       [
+                               [
                                        'pp_page',
                                        'pp_propname'
-                               )
-                       ),
+                               ]
+                       ],
                        $rows,
                        __METHOD__
                );
        }
 
        protected function setProperty( $pageID, $propertyName, $propertyValue ) {
-
-               $properties = array();
+               $properties = [];
                $properties[$propertyName] = $propertyValue;
 
                $this->setProperties( $pageID, $properties );
-
        }
 }