Add ParserOutput::unsetProperty, add tests
authorAdrian Lang <adrian.lang@wikimedia.de>
Wed, 16 Apr 2014 09:31:29 +0000 (11:31 +0200)
committerAdrian Lang <adrian.lang@wikimedia.de>
Wed, 4 Jun 2014 10:02:01 +0000 (10:02 +0000)
Change-Id: I29af31918c48a1225b6487c74fd638de26f07b28

includes/parser/ParserOutput.php
tests/phpunit/includes/parser/ParserOutputTest.php

index b4a1c5d..09f714f 100644 (file)
@@ -585,6 +585,10 @@ class ParserOutput extends CacheTime {
                return isset( $this->mProperties[$name] ) ? $this->mProperties[$name] : false;
        }
 
+       public function unsetProperty( $name ) {
+               unset( $this->mProperties[$name] );
+       }
+
        public function getProperties() {
                if ( !isset( $this->mProperties ) ) {
                        $this->mProperties = array();
index c73666d..c024cee 100644 (file)
@@ -56,4 +56,32 @@ class ParserOutputTest extends MediaWikiTestCase {
                $this->assertNull( $po->getExtensionData( "one" ) );
                $this->assertEquals( "Bar", $po->getExtensionData( "two" ) );
        }
+
+       /**
+        * @covers ParserOutput::setProperty
+        * @covers ParserOutput::getProperty
+        * @covers ParserOutput::unsetProperty
+        * @covers ParserOutput::getProperties
+        */
+       public function testProperties() {
+               $po = new ParserOutput();
+
+               $po->setProperty( 'foo', 'val' );
+
+               $properties = $po->getProperties();
+               $this->assertEquals( $po->getProperty( 'foo' ), 'val' );
+               $this->assertEquals( $properties['foo'], 'val' );
+
+               $po->setProperty( 'foo', 'second val' );
+
+               $properties = $po->getProperties();
+               $this->assertEquals( $po->getProperty( 'foo' ), 'second val' );
+               $this->assertEquals( $properties['foo'], 'second val' );
+
+               $po->unsetProperty( 'foo' );
+
+               $properties = $po->getProperties();
+               $this->assertEquals( $po->getProperty( 'foo' ), false );
+               $this->assertArrayNotHasKey( 'foo', $properties );
+       }
 }