[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