[pLog-svn] r3809 - plog/trunk/class/test/tests/config

Jon Daley plogworld at jon.limedaley.com
Wed Jul 26 13:18:37 GMT 2006


 	Did you copy this from somewhere, or did you just write it from 
scratch?  Impressive if it was from scratch.  It looks good, and I thought 
there might be a single quote problem.

On Wed, 26 Jul 2006, oscar at devel.lifetype.net wrote:

> Author: oscar
> Date: 2006-07-26 12:01:11 +0000 (Wed, 26 Jul 2006)
> New Revision: 3809
>
> Added:
>   plog/trunk/class/test/tests/config/configfilestorage_test.class.php
> Log:
> Added some basic test case for ConfigFileStorage
>
>
> Added: plog/trunk/class/test/tests/config/configfilestorage_test.class.php
> ===================================================================
> --- plog/trunk/class/test/tests/config/configfilestorage_test.class.php	2006-07-26 07:32:16 UTC (rev 3808)
> +++ plog/trunk/class/test/tests/config/configfilestorage_test.class.php	2006-07-26 12:01:11 UTC (rev 3809)
> @@ -0,0 +1,164 @@
> +<?php
> +
> +	include_once( PLOG_CLASS_PATH."class/test/helpers/lifetypetestcase.class.php" );
> +	include_once( PLOG_CLASS_PATH."class/config/configfilestorage.class.php" );
> +
> +	/**
> +	 * \ingroup Tests
> +	 *
> +	 * Test cases for the ConfigFileStorage class.
> +	 *
> +	 * It includes regression test for svn revisions 3768 and 3799
> +	 */
> +	class ConfigFileStorage_Test extends LifeTypeTestCase
> +	{
> +		/**
> +		 * Creates a temporary test configuration file using both single quotes
> +		 * and double quotes
> +		 */
> +		function setUp()
> +		{
> +			include_once( PLOG_CLASS_PATH."class/config/config.class.php" );
> +
> +
> +			$config =& Config::getConfig();
> +			$tmpFolder = $config->getValue( "temp_folder" );
> +
> +			$this->file1 = str_replace( "\\", "/", PLOG_CLASS_PATH ).$tmpFolder."/file1.properties.php";
> +
> +			// create the first file
> +            $data1 = '<?php
> +            #
> +            # this is one comment
> +            #
> +            $config[\'test_key_1\'] = \'\';
> +            $config[\'test_key_2\'] = \'some value\';
> +			#
> +			# this is
> +			# another
> +			# comment
> +			#
> +			$config["test_key_3"] = "value for test_key_3";
> +			#
> +			# an empty value
> +			#
> +			$config[\'test_empty_key\'] = \'\';
> +            ?>';
> +
> +            $this->createFile( $this->file1, $data1 );
> +		}
> +
> +		/**
> +		 * delete the temporary file that was created
> +		 */
> +		function tearDown()
> +		{
> +			include_once( PLOG_CLASS_PATH."class/file/file.class.php" );
> +			File::delete( $this->file1 );
> +		}
> +
> +		/**
> +		 * @private
> +		 */
> +		function createFile( $file, $data )
> +		{
> +			include_once( PLOG_CLASS_PATH."class/file/file.class.php" );
> +            $file = new File( $file );
> +            $writable = $file->open( 'w' );
> +            if ($writable) {
> +                $file->write( $data );
> +                $file->close();
> +                return true;
> +            }
> +            else {
> +                return false;
> +            }
> +		}
> +
> +		/**
> +		 * Check if the file was loaded properly and loads a value from a line
> +		 * with single quotes
> +		 */
> +		function testGetSingleQuotesValue()
> +		{
> +			// open and load the file
> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
> +
> +			$this->assertEquals( "some value", $cf->getValue( "test_key_2" ),
> +			                     "Error loading test_key_2 key from file ".$this->file1 );
> +		}
> +
> +		/**
> +		 * Check if the file was loaded properly and loads a value from a line
> +		 * with double quotes
> +		 */
> +		function testGetDoubleQuotesValue()
> +		{
> +			// open and load the file
> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
> +
> +			$this->assertEquals( "value for test_key_3", $cf->getValue( "test_key_3" ),
> +			                     "Error loading test_key_3 key from file ".$this->file1 );
> +		}
> +
> +		/**
> +		 * test whether new values are kept properly after loading the file
> +		 */
> +		function testSetNewValue()
> +		{
> +			// open and load the file
> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
> +
> +			// add a new key
> +			$newValue = "This is the value for test_key_new";
> +			$newKey = "test_key_new";
> +			$cf->setValue( $newKey, $newValue );
> +
> +			$this->assertEquals( $newValue, $cf->getValue( $newKey ), "Error fetching $newKey" );
> +		}
> +
> +		/**
> +		 * test whether new values for keys defined with single quotes are saved properly back to the file
> +		 */
> +		function testSaveValue()
> +		{
> +			include_once( PLOG_CLASS_PATH."class/file/file.class.php" );
> +
> +			// open and load the file
> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
> +
> +			// and save a new one
> +			$newValue = "This is the value for test_empty_key";
> +			$newKey = "test_empty_key";
> +			$cf->setValue( $newKey, $newValue );
> +			$cf->save();
> +
> +			// reopen and load the file
> +			$cf2 = new ConfigFileStorage( Array( "file" => $this->file1 ));
> +			$this->assertEquals( $newValue, $cf2->getValue( $newKey ),
> +			                     "$newKey was not saved properly to file ".$this->file1 );
> +		}
> +
> +		/**
> +		 * test whether new values for keys defined with double quotes are saved properly back to the file
> +		 */
> +		function testSaveDoubleQuotesValue()
> +		{
> +			include_once( PLOG_CLASS_PATH."class/file/file.class.php" );
> +
> +			// open and load the file
> +			$cf = new ConfigFileStorage( Array( "file" => $this->file1 ));
> +
> +			// and save a new one
> +			$newValue = "This is the value for test_key_3";
> +			$newKey = "test_key_3";
> +			$cf->setValue( $newKey, $newValue );
> +			$cf->save();
> +
> +			// reopen and load the file
> +			$cf2 = new ConfigFileStorage( Array( "file" => $this->file1 ));
> +			$this->assertEquals( $newValue, $cf2->getValue( $newKey ),
> +			                     "$newKey was not saved properly to file ".$this->file1 );
> +		}
> +	}
> +?>
> \ No newline at end of file
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://devel.lifetype.net/mailman/listinfo/plog-svn
>

-- 
Jon Daley
http://jon.limedaley.com/

Eagles may soar, but weasels don't get sucked into jet engines.


More information about the pLog-svn mailing list