$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 ) {
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" );
}
$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
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 );
$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];
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" );
}
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" );
}
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" );
}
}
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;
}
$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 );
-
}
}