43 if ( !$this->the_properties ) {
44 $this->the_properties = [
45 "property1" =>
"value1",
46 "property2" =>
"value2",
47 "property3" =>
"value3",
48 "property4" =>
"value4"
52 if ( !$this->title1 ) {
54 'PagePropsTest_page_1',
58 $this->title1 = $page->getTitle();
59 $page1ID = $this->title1->getArticleID();
63 if ( !$this->title2 ) {
65 'PagePropsTest_page_2',
69 $this->title2 = $page->getTitle();
70 $page2ID = $this->title2->getArticleID();
96 $page1ID = $this->title1->getArticleID();
97 $result = $pageProps->getProperties( $this->title1,
"property1" );
98 $this->assertArrayHasKey( $page1ID,
$result,
"Found property" );
99 $this->assertEquals(
$result[$page1ID],
"value1",
"Get property" );
108 $page1ID = $this->title1->getArticleID();
109 $page2ID = $this->title2->getArticleID();
115 $this->assertArrayHasKey( $page1ID,
$result,
"Found page 1 property" );
116 $this->assertArrayHasKey( $page2ID,
$result,
"Found page 2 property" );
117 $this->assertEquals(
$result[$page1ID],
"value1",
"Get property page 1" );
118 $this->assertEquals(
$result[$page2ID],
"value1",
"Get property page 2" );
127 $page1ID = $this->title1->getArticleID();
128 $page2ID = $this->title2->getArticleID();
138 $this->assertArrayHasKey( $page1ID,
$result,
"Found page 1 property" );
139 $this->assertArrayHasKey(
"property1",
$result[$page1ID],
"Found page 1 property 1" );
140 $this->assertArrayHasKey(
"property2",
$result[$page1ID],
"Found page 1 property 2" );
141 $this->assertArrayHasKey( $page2ID,
$result,
"Found page 2 property" );
142 $this->assertArrayHasKey(
"property1",
$result[$page2ID],
"Found page 2 property 1" );
143 $this->assertArrayHasKey(
"property2",
$result[$page2ID],
"Found page 2 property 2" );
144 $this->assertEquals(
$result[$page1ID][
"property1"],
"value1",
"Get page 1 property 1" );
145 $this->assertEquals(
$result[$page1ID][
"property2"],
"value2",
"Get page 1 property 2" );
146 $this->assertEquals(
$result[$page2ID][
"property1"],
"value1",
"Get page 2 property 1" );
147 $this->assertEquals(
$result[$page2ID][
"property2"],
"value2",
"Get page 2 property 2" );
163 $page1ID = $this->title1->getArticleID();
164 $result = $pageProps->getAllProperties( $this->title1 );
165 $this->assertArrayHasKey( $page1ID,
$result,
"Found properties" );
166 $properties =
$result[$page1ID];
167 $patched = array_replace_recursive( $properties, $this->the_properties );
168 $this->assertEquals( $patched, $properties,
"Get all properties" );
177 $page1ID = $this->title1->getArticleID();
178 $page2ID = $this->title2->getArticleID();
184 $this->assertArrayHasKey( $page1ID,
$result,
"Found page 1 properties" );
185 $this->assertArrayHasKey( $page2ID,
$result,
"Found page 2 properties" );
186 $properties1 =
$result[$page1ID];
187 $patched = array_replace_recursive( $properties1, $this->the_properties );
188 $this->assertEquals( $patched, $properties1,
"Get all properties page 1" );
189 $properties2 =
$result[$page2ID];
190 $patched = array_replace_recursive( $properties2, $this->the_properties );
191 $this->assertEquals( $patched, $properties2,
"Get all properties page 2" );
202 $page1ID = $this->title1->getArticleID();
203 $value1 = $pageProps->getProperties( $this->title1,
"property1" );
204 $this->
setProperty( $page1ID,
"property1",
"another value" );
205 $value2 = $pageProps->getProperties( $this->title1,
"property1" );
206 $this->assertEquals( $value1, $value2,
"Single cache" );
217 $page1ID = $this->title1->getArticleID();
218 $properties1 = $pageProps->getAllProperties( $this->title1 );
219 $this->
setProperty( $page1ID,
"property1",
"another value" );
220 $properties2 = $pageProps->getAllProperties( $this->title1 );
221 $this->assertEquals( $properties1, $properties2,
"Multi Cache" );
234 $page1ID = $this->title1->getArticleID();
235 $pageProps->getProperties( $this->title1,
"property1" );
236 $new_value =
"another value";
237 $this->
setProperty( $page1ID,
"property1", $new_value );
238 $pageProps->getAllProperties( $this->title1 );
239 $result = $pageProps->getProperties( $this->title1,
"property1" );
240 $this->assertArrayHasKey( $page1ID,
$result,
"Found property" );
241 $this->assertEquals(
$result[$page1ID],
"another value",
"Clear cache" );
244 protected function createPage( $page, $text, $model =
null ) {
245 if ( is_string( $page ) ) {
246 if ( !preg_match(
'/:/', $page ) &&
256 if ( $page instanceof
Title ) {
260 if ( $page->exists() ) {
261 $page->doDeleteArticle(
"done" );
265 $page->doEditContent( $content,
"testing",
EDIT_NEW );
273 foreach ( $properties
as $propertyName => $propertyValue ) {
275 'pp_page' => $pageID,
276 'pp_propname' => $propertyName,
277 'pp_value' => $propertyValue
297 protected function setProperty( $pageID, $propertyName, $propertyValue ) {
299 $properties[$propertyName] = $propertyValue;