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

Jon Daley plogworld at jon.limedaley.com
Wed Jul 26 14:24:08 GMT 2006


 	Yeah, I was planning on a temporary file as well.  But, you did it 
much faster than I would have gotten around to it.
On Wed, 26 Jul 2006, Oscar Renalias wrote:

> I wrote it all myself :-)
>
> The thinking part took much longer than actually implementing it (if you 
> notice, all methods are the same except the key and the value being tested) I 
> just didn't want to mess around with the main configuration file, so creating 
> a temporary one was the solution.
>
> If you can think of any other case, please go ahead and add it...
>
> On 26 Jul 2006, at 16:18, Jon Daley wrote:
>
>> 	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.
>> _______________________________________________
>> pLog-svn mailing list
>> pLog-svn at devel.lifetype.net
>> http://devel.lifetype.net/mailman/listinfo/plog-svn
>> 
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://devel.lifetype.net/mailman/listinfo/plog-svn

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

"I see," said the blind man as he picked up a hammer and saw.


More information about the pLog-svn mailing list