1#!/usr/bin/perl 2use strict; 3use warnings; 4 5# Should be 10. 6use Test::More tests => 10; 7 8use Config::IniFiles; 9 10use lib "./t/lib"; 11 12use Config::IniFiles::Debug; 13use Config::IniFiles::TestPaths; 14 15my ( $value, @value ); 16umask 0000; 17 18my $ini = Config::IniFiles->new( -file => t_file("test.ini") ); 19$ini->_assert_invariants(); 20t_unlink("test01.ini"); 21$ini->SetFileName( t_file("test01.ini") ); 22$ini->SetWriteMode("0666"); 23 24# TEST 25ok( $ini, "Loading from a file" ); 26 27$value = $ini->val( 'test1', 'one' ); 28$ini->_assert_invariants(); 29 30# TEST 31is( $value, 'value1', "Reading a single value in scalar context" ); 32 33@value = $ini->val( 'test1', 'one' ); 34$ini->_assert_invariants(); 35 36# TEST 37is( $value[0], 'value1', "Reading a single value in list context" ); 38 39$value = $ini->val( 'test1', 'mult' ); 40 41# TEST 42is( $value, "one$/two$/three", "Reading a multiple value in scalar context" ); 43 44@value = $ini->val( 'test1', 'mult' ); 45$value = join "|", @value; 46 47# TEST 48is_deeply( 49 \@value, 50 [ "one", "two", "three" ], 51 "Reading a multiple value in list context", 52); 53 54@value = ( "one", "two", "three" ); 55$ini->newval( 'test1', 'eight', @value ); 56$ini->_assert_invariants(); 57$value = $ini->val( 'test1', 'eight' ); 58 59# TEST 60is( $value, "one$/two$/three", "Creating a new multiple value", ); 61 62$ini->newval( 'test1', 'seven', 'value7' ); 63$ini->_assert_invariants(); 64$ini->RewriteConfig; 65$ini->ReadConfig; 66$ini->_assert_invariants(); 67$value = ''; 68$value = $ini->val( 'test1', 'seven' ); 69$ini->_assert_invariants(); 70 71# TEST 72is( $value, 'value7', "Creating a new value", ); 73 74$ini->delval( 'test1', 'seven' ); 75$ini->_assert_invariants(); 76$ini->RewriteConfig; 77$ini->ReadConfig; 78$ini->_assert_invariants(); 79$value = ''; 80$value = $ini->val( 'test1', 'seven' ); 81 82# TEST 83ok( !defined($value), "Deleting a value" ); 84 85$value = $ini->val( 'test1', 'not a real parameter name', '12345' ); 86 87# TEST 88is( $value, '12345', "Reading a default values from existing section" ); 89 90$value = 91 $ini->val( 'not a real section', 'no parameter by this name', '12345' ); 92 93# TEST 94is( $value, '12345', "Reading a default values from non-existent section" ); 95 96# Clean up when we're done 97t_unlink("test01.ini"); 98 99