kraghuba Mon Aug 13 11:37:11 2007 UTC Modified files: /php-src/ext/standard/tests/file parse_ini_file.phpt Log: New testcase for parse_ini_file() function
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/parse_ini_file.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/file/parse_ini_file.phpt diff -u /dev/null php-src/ext/standard/tests/file/parse_ini_file.phpt:1.2 --- /dev/null Mon Aug 13 11:37:11 2007 +++ php-src/ext/standard/tests/file/parse_ini_file.phpt Mon Aug 13 11:37:11 2007 @@ -0,0 +1,764 @@ +--TEST-- +Test parse_ini_file() function +--FILE-- +<?php +/* Prototype: array parse_ini_file(string $filename [,bool $process_sections]); + Description: parse_ini_file() loads in the ini file specified in filename, + and returns the settings in it in an associative array. +*/ + +$file_path = dirname(__FILE__); + +$parse_string = <<<EOD +; Comment starts with semi-colon(;) +; Section starts with [<section name>] + +; start of ini file + +[Constans] +one = 1 +five = 5 +animal = BIRD +Language = PHP +PHP_CONSTANT = 1.2345678 +10 = Ten +HELLO = HELLO + +[date] +date = +time = + +[paths] +path = /usr/local/bin +URL = http://www.php.net + +[Decimal] +Decimal_value1 = 100 +Decimal_value2 = -100 +Decimal_value3 = -2147483647 +Decimal_value4 = 2147483647 +Decimal_value5 = -2147483648 +Decimal_value6 = 2147483648 + +[Octal] +Octal_value = 0100 + +[Hex] +Hex_value1 = 0x101 +Hex_Value2 = 0x102 +Hex_Value2 = 0x103 + +[Non-alphanumerics_as_values] +;Non-alpha numeric chars without quotes +Non-alpha1 = ; +Non-alpha2 = + +Non-alpha3 = * +Non-alpha4 = % +Non-alpha5 = <> +Non-alpha6 = @ +Non-alpha7 = # +Non-alpha8 = ^ +non-alpha9 = - +Non-alpha10 = : +Non-alpha11 = ? +Non-alpha12 = / +Non-alpha13 = \ +;These chars have a special meaning when used in the value, +; hence parser throws an error +;Non-alpha14 = & +;Non-alpha15 = {} +;Non-alpha16 = | +;Non-alpha17 = ~ +;Non-alpha18 = ! +;Non-alpha19 = $ +;Non-alpha20 = () + +Non-alpha1_quotes = ";" +Non-alpha2_quotes = "+" +Non-alpha3_quotes = "*" +Non-alpha4_quotes = "%" +Non-alpha5_quotes = "<>" +Non-alpha6_quotes = "@" +Non-alpha7_quotes = "#" +Non-alpha8_quotes = "^" +Non-alpha9_quotes = "-" +Non-alpha10_quotes = "=" +Non-alpha11_quotes = ":" +Non-alpha12_quotes = "?" +Non-alpha13_quotes = "/" +Non-alpha14_quotes = "\" +Non-alpha15_quotes = "&" +Non-alpha16_quotes = "{}" +Non-alpha17_quotes = "|" +Non-alpha18_quotes = "~" +Non-alpha19_quotes = "!" +non-alpha20_quotes = "$" +non-alpha21_quotes = "()" + +[Non-alpha numerics in strings] +;expected error, as the non-alphanumeric chars not enclosed in double quotes("") +Non-alpha_string1 = [EMAIL PROTECTED] +;Non-alpha_string2 = Hello!world +;Non-alpha_string3 = Hello#world +;Non-alpha_string4 = Hello%world +;Non-alpha_string5 = Hello&world +;Non-alpha_string6 = Hello*world +;Non-alpha_string7 = Hello+world +;Non-alpha_string8 = Hello-world +;Non-alpha_string9 = Hello'world +;Non-alpha_string10 = Hello:world +;Non-alpha_string11 = Hello;world +;Non-alpha_string12 = Hello<world +;Non-alpha_string13 = Hello>world +;Non-alpha_string14 = Hello>world +;Non-alpha_string15 = Hello?world +;Non-alpha_string16 = Hello\world +;Non-alpha_string17 = Hello^world +;Non-alpha_string18 = Hello_world +;Non-alpha_string19 = Hello|world +;Non-alpha_string20 = Hello~world +;Non-alpha_string21 = Hello`world +;Non-alpha_string22 = Hello(world) + +[Non-alpha numerics in strings -with quotes] +Non-alpha_string1_quotes = "[EMAIL PROTECTED]" +Non-alpha_string2_quotes = "Hello!world" +Non-alpha_string3_quotes = "Hello#world" +Non-alpha_string4_quotes = "Hello&world" +Non-alpha_string5_quotes = "Hello*world" +Non-alpha_string6_quotes = "Hello+world" +Non-alpha_string7_quotes = "Hello-world" +Non-alpha_string8_quotes = "Hello'world" +Non-alpha_string9_quotes = "Hello:world" +Non-alpha_string10_quotes = "Hello;world" +Non-alpha_string11_quotes = "Hello<world" +Non-alpha_string12_quotes = "Hello>world" +Non-alpha_string13_quotes = "Hello>world" +Non-alpha_string14_quotes = "Hello?world" +Non-alpha_string15_quotes = "Hello\world" +Non-alpha_string16_quotes = "Hello^world" +Non-alpha_string17_quotes = "Hello_world" +Non-alpha_string18_quotes = "Hello|world" +Non-alpha_string19_quotes = "Hello~world" +Non-alpha_string20_quotes = "Hello`world" +Non-alpha_string21_quotes = "Hello(world)" + +[Newlines_in_Values] +String1 = "Hello, world\nGood Morning" +String2 = "\nHello, world + Good Morning\n" +String3 = 'Hello, world\tGood Morning' +String4 = "\n" +String5 = "\n\n" +String3 = Hello, world\tGood Morning + +[ReservedKeys_as_Values] +Key1 = YES +Key2 = Yes +Key3 = yEs +Key4 = NO +Key5 = No +Key6 = nO +Key7 = TRUE +Key8 = True +Key9 = tRUE +Key10 = true +Key11 = FALSE +Key12 = False +Key13 = false +Key14 = fAlSE +Key15 = NULL +Key16 = Null +Key17 = nuLL +Key18 = null + +[ReservedKeys_as_Keys] +; Expected:error, reserved key words must not be used as keys for ini file +;YES = 1 +;Yes = 2 +;yEs = 1.2 +;YES = YES +;NO = "" +;No = "string" +;nO = "\0" +;TRUE = 1.1 +;True = 1 +;tRUE = 5 +;true = TRUE +;FALSE = FALSE +;False = "" +;false = "hello" +;fAlSE = "" +;NULL = "" +;Null = 0 +;nuLL = "\0" +;null = NULL + +; end of ini file +EOD; +/* creating parse.ini file */ +$file_handle = fopen($file_path."/parse.ini", "w"); +fwrite($file_handle, $parse_string); +fclose($file_handle); + +echo "*** Test parse_ini_file() function: with various keys and values given in parse.ini file ***\n"; +echo "-- ini file without process_sections optional arg --\n"; +define('BIRD', 'Humming bird'); +$ini_array = parse_ini_file($file_path."/parse.ini"); +print_r($ini_array); + +echo "\n-- ini file with process_sections as TRUE --\n"; +$ini_array = parse_ini_file($file_path."/parse.ini", TRUE); +print_r($ini_array); + +echo "*** Done **\n"; +?> +--CLEAN-- +<?php +unlink(dirname(__FILE__)."/parse.ini"); +?> +--EXPECTF-- +*** Test parse_ini_file() function: with various keys and values given in parse.ini file *** +-- ini file without process_sections optional arg -- +Array +( + [one] => 1 + [five] => 5 + [animal] => Humming bird + [Language] => PHP + [PHP_CONSTANT] => 1.2345678 + [10] => Ten + [HELLO] => HELLO + [date] => + [time] => + [path] => /usr/local/bin + [URL] => http://www.php.net + [Decimal_value1] => 100 + [Decimal_value2] => -100 + [Decimal_value3] => -2147483647 + [Decimal_value4] => 2147483647 + [Decimal_value5] => -2147483648 + [Decimal_value6] => 2147483648 + [Octal_value] => 0100 + [Hex_value1] => 0x101 + [Hex_Value2] => 0x103 + [Non-alpha1] => + [Non-alpha2] => + + [Non-alpha3] => * + [Non-alpha4] => % + [Non-alpha5] => <> + [Non-alpha6] => @ + [Non-alpha7] => # + [Non-alpha8] => ^ + [non-alpha9] => - + [Non-alpha10] => : + [Non-alpha11] => ? + [Non-alpha12] => / + [Non-alpha13] => \ + [Non-alpha1_quotes] => ; + [Non-alpha2_quotes] => + + [Non-alpha3_quotes] => * + [Non-alpha4_quotes] => % + [Non-alpha5_quotes] => <> + [Non-alpha6_quotes] => @ + [Non-alpha7_quotes] => # + [Non-alpha8_quotes] => ^ + [Non-alpha9_quotes] => - + [Non-alpha10_quotes] => = + [Non-alpha11_quotes] => : + [Non-alpha12_quotes] => ? + [Non-alpha13_quotes] => / + [Non-alpha14_quotes] => \ + [Non-alpha15_quotes] => & + [Non-alpha16_quotes] => {} + [Non-alpha17_quotes] => | + [Non-alpha18_quotes] => ~ + [Non-alpha19_quotes] => ! + [non-alpha20_quotes] => $ + [non-alpha21_quotes] => () + [Non-alpha_string1] => [EMAIL PROTECTED] + [Non-alpha_string1_quotes] => [EMAIL PROTECTED] + [Non-alpha_string2_quotes] => Hello!world + [Non-alpha_string3_quotes] => Hello#world + [Non-alpha_string4_quotes] => Hello&world + [Non-alpha_string5_quotes] => Hello*world + [Non-alpha_string6_quotes] => Hello+world + [Non-alpha_string7_quotes] => Hello-world + [Non-alpha_string8_quotes] => Hello'world + [Non-alpha_string9_quotes] => Hello:world + [Non-alpha_string10_quotes] => Hello;world + [Non-alpha_string11_quotes] => Hello<world + [Non-alpha_string12_quotes] => Hello>world + [Non-alpha_string13_quotes] => Hello>world + [Non-alpha_string14_quotes] => Hello?world + [Non-alpha_string15_quotes] => Hello\world + [Non-alpha_string16_quotes] => Hello^world + [Non-alpha_string17_quotes] => Hello_world + [Non-alpha_string18_quotes] => Hello|world + [Non-alpha_string19_quotes] => Hello~world + [Non-alpha_string20_quotes] => Hello`world + [Non-alpha_string21_quotes] => Hello(world) + [String1] => Hello, world +Good Morning + [String2] => +Hello, world + Good Morning + + [String3] => Hello, worldGood Morning + [String4] => + + [String5] => + + + [Key1] => 1 + [Key2] => 1 + [Key3] => 1 + [Key4] => + [Key5] => + [Key6] => + [Key7] => 1 + [Key8] => 1 + [Key9] => 1 + [Key10] => 1 + [Key11] => + [Key12] => + [Key13] => + [Key14] => + [Key15] => + [Key16] => + [Key17] => + [Key18] => +) + +-- ini file with process_sections as TRUE -- +Array +( + [Constans] => Array + ( + [one] => 1 + [five] => 5 + [animal] => Humming bird + [Language] => PHP + [PHP_CONSTANT] => 1.2345678 + [10] => Ten + [HELLO] => HELLO + ) + + [date] => Array + ( + [date] => + [time] => + ) + + [paths] => Array + ( + [path] => /usr/local/bin + [URL] => http://www.php.net + ) + + [Decimal] => Array + ( + [Decimal_value1] => 100 + [Decimal_value2] => -100 + [Decimal_value3] => -2147483647 + [Decimal_value4] => 2147483647 + [Decimal_value5] => -2147483648 + [Decimal_value6] => 2147483648 + ) + + [Octal] => Array + ( + [Octal_value] => 0100 + ) + + [Hex] => Array + ( + [Hex_value1] => 0x101 + [Hex_Value2] => 0x103 + ) + + [Non-alphanumerics_as_values] => Array + ( + [Non-alpha1] => + [Non-alpha2] => + + [Non-alpha3] => * + [Non-alpha4] => % + [Non-alpha5] => <> + [Non-alpha6] => @ + [Non-alpha7] => # + [Non-alpha8] => ^ + [non-alpha9] => - + [Non-alpha10] => : + [Non-alpha11] => ? + [Non-alpha12] => / + [Non-alpha13] => \ + [Non-alpha1_quotes] => ; + [Non-alpha2_quotes] => + + [Non-alpha3_quotes] => * + [Non-alpha4_quotes] => % + [Non-alpha5_quotes] => <> + [Non-alpha6_quotes] => @ + [Non-alpha7_quotes] => # + [Non-alpha8_quotes] => ^ + [Non-alpha9_quotes] => - + [Non-alpha10_quotes] => = + [Non-alpha11_quotes] => : + [Non-alpha12_quotes] => ? + [Non-alpha13_quotes] => / + [Non-alpha14_quotes] => \ + [Non-alpha15_quotes] => & + [Non-alpha16_quotes] => {} + [Non-alpha17_quotes] => | + [Non-alpha18_quotes] => ~ + [Non-alpha19_quotes] => ! + [non-alpha20_quotes] => $ + [non-alpha21_quotes] => () + ) + + [Non-alpha numerics in strings] => Array + ( + [Non-alpha_string1] => [EMAIL PROTECTED] + ) + + [Non-alpha numerics in strings -with quotes] => Array + ( + [Non-alpha_string1_quotes] => [EMAIL PROTECTED] + [Non-alpha_string2_quotes] => Hello!world + [Non-alpha_string3_quotes] => Hello#world + [Non-alpha_string4_quotes] => Hello&world + [Non-alpha_string5_quotes] => Hello*world + [Non-alpha_string6_quotes] => Hello+world + [Non-alpha_string7_quotes] => Hello-world + [Non-alpha_string8_quotes] => Hello'world + [Non-alpha_string9_quotes] => Hello:world + [Non-alpha_string10_quotes] => Hello;world + [Non-alpha_string11_quotes] => Hello<world + [Non-alpha_string12_quotes] => Hello>world + [Non-alpha_string13_quotes] => Hello>world + [Non-alpha_string14_quotes] => Hello?world + [Non-alpha_string15_quotes] => Hello\world + [Non-alpha_string16_quotes] => Hello^world + [Non-alpha_string17_quotes] => Hello_world + [Non-alpha_string18_quotes] => Hello|world + [Non-alpha_string19_quotes] => Hello~world + [Non-alpha_string20_quotes] => Hello`world + [Non-alpha_string21_quotes] => Hello(world) + ) + + [Newlines_in_Values] => Array + ( + [String1] => Hello, world +Good Morning + [String2] => +Hello, world + Good Morning + + [String3] => Hello, worldGood Morning + [String4] => + + [String5] => + + + ) + + [ReservedKeys_as_Values] => Array + ( + [Key1] => 1 + [Key2] => 1 + [Key3] => 1 + [Key4] => + [Key5] => + [Key6] => + [Key7] => 1 + [Key8] => 1 + [Key9] => 1 + [Key10] => 1 + [Key11] => + [Key12] => + [Key13] => + [Key14] => + [Key15] => + [Key16] => + [Key17] => + [Key18] => + ) + + [ReservedKeys_as_Keys] => Array + ( + ) + +) +*** Done ** +--UEXPECTF-- +Notice: fwrite(): 4121 character unicode buffer downcoded for binary stream runtime_encoding in %s on line %d +*** Test parse_ini_file() function: with various keys and values given in parse.ini file *** +-- ini file without process_sections optional arg -- +Array +( + [one] => 1 + [five] => 5 + [animal] => Humming bird + [Language] => PHP + [PHP_CONSTANT] => 1.2345678 + [10] => Ten + [HELLO] => HELLO + [date] => + [time] => + [path] => /usr/local/bin + [URL] => http://www.php.net + [Decimal_value1] => 100 + [Decimal_value2] => -100 + [Decimal_value3] => -2147483647 + [Decimal_value4] => 2147483647 + [Decimal_value5] => -2147483648 + [Decimal_value6] => 2147483648 + [Octal_value] => 0100 + [Hex_value1] => 0x101 + [Hex_Value2] => 0x103 + [Non-alpha1] => + [Non-alpha2] => + + [Non-alpha3] => * + [Non-alpha4] => % + [Non-alpha5] => <> + [Non-alpha6] => @ + [Non-alpha7] => # + [Non-alpha8] => ^ + [non-alpha9] => - + [Non-alpha10] => : + [Non-alpha11] => ? + [Non-alpha12] => / + [Non-alpha13] => \ + [Non-alpha1_quotes] => ; + [Non-alpha2_quotes] => + + [Non-alpha3_quotes] => * + [Non-alpha4_quotes] => % + [Non-alpha5_quotes] => <> + [Non-alpha6_quotes] => @ + [Non-alpha7_quotes] => # + [Non-alpha8_quotes] => ^ + [Non-alpha9_quotes] => - + [Non-alpha10_quotes] => = + [Non-alpha11_quotes] => : + [Non-alpha12_quotes] => ? + [Non-alpha13_quotes] => / + [Non-alpha14_quotes] => \ + [Non-alpha15_quotes] => & + [Non-alpha16_quotes] => {} + [Non-alpha17_quotes] => | + [Non-alpha18_quotes] => ~ + [Non-alpha19_quotes] => ! + [non-alpha20_quotes] => $ + [non-alpha21_quotes] => () + [Non-alpha_string1] => [EMAIL PROTECTED] + [Non-alpha_string1_quotes] => [EMAIL PROTECTED] + [Non-alpha_string2_quotes] => Hello!world + [Non-alpha_string3_quotes] => Hello#world + [Non-alpha_string4_quotes] => Hello&world + [Non-alpha_string5_quotes] => Hello*world + [Non-alpha_string6_quotes] => Hello+world + [Non-alpha_string7_quotes] => Hello-world + [Non-alpha_string8_quotes] => Hello'world + [Non-alpha_string9_quotes] => Hello:world + [Non-alpha_string10_quotes] => Hello;world + [Non-alpha_string11_quotes] => Hello<world + [Non-alpha_string12_quotes] => Hello>world + [Non-alpha_string13_quotes] => Hello>world + [Non-alpha_string14_quotes] => Hello?world + [Non-alpha_string15_quotes] => Hello\world + [Non-alpha_string16_quotes] => Hello^world + [Non-alpha_string17_quotes] => Hello_world + [Non-alpha_string18_quotes] => Hello|world + [Non-alpha_string19_quotes] => Hello~world + [Non-alpha_string20_quotes] => Hello`world + [Non-alpha_string21_quotes] => Hello(world) + [String1] => Hello, world +Good Morning + [String2] => +Hello, world + Good Morning + + [String3] => Hello, worldGood Morning + [String4] => + + [String5] => + + + [Key1] => 1 + [Key2] => 1 + [Key3] => 1 + [Key4] => + [Key5] => + [Key6] => + [Key7] => 1 + [Key8] => 1 + [Key9] => 1 + [Key10] => 1 + [Key11] => + [Key12] => + [Key13] => + [Key14] => + [Key15] => + [Key16] => + [Key17] => + [Key18] => +) + +-- ini file with process_sections as TRUE -- +Array +( + [Constans] => Array + ( + [one] => 1 + [five] => 5 + [animal] => Humming bird + [Language] => PHP + [PHP_CONSTANT] => 1.2345678 + [10] => Ten + [HELLO] => HELLO + ) + + [date] => Array + ( + [date] => + [time] => + ) + + [paths] => Array + ( + [path] => /usr/local/bin + [URL] => http://www.php.net + ) + + [Decimal] => Array + ( + [Decimal_value1] => 100 + [Decimal_value2] => -100 + [Decimal_value3] => -2147483647 + [Decimal_value4] => 2147483647 + [Decimal_value5] => -2147483648 + [Decimal_value6] => 2147483648 + ) + + [Octal] => Array + ( + [Octal_value] => 0100 + ) + + [Hex] => Array + ( + [Hex_value1] => 0x101 + [Hex_Value2] => 0x103 + ) + + [Non-alphanumerics_as_values] => Array + ( + [Non-alpha1] => + [Non-alpha2] => + + [Non-alpha3] => * + [Non-alpha4] => % + [Non-alpha5] => <> + [Non-alpha6] => @ + [Non-alpha7] => # + [Non-alpha8] => ^ + [non-alpha9] => - + [Non-alpha10] => : + [Non-alpha11] => ? + [Non-alpha12] => / + [Non-alpha13] => \ + [Non-alpha1_quotes] => ; + [Non-alpha2_quotes] => + + [Non-alpha3_quotes] => * + [Non-alpha4_quotes] => % + [Non-alpha5_quotes] => <> + [Non-alpha6_quotes] => @ + [Non-alpha7_quotes] => # + [Non-alpha8_quotes] => ^ + [Non-alpha9_quotes] => - + [Non-alpha10_quotes] => = + [Non-alpha11_quotes] => : + [Non-alpha12_quotes] => ? + [Non-alpha13_quotes] => / + [Non-alpha14_quotes] => \ + [Non-alpha15_quotes] => & + [Non-alpha16_quotes] => {} + [Non-alpha17_quotes] => | + [Non-alpha18_quotes] => ~ + [Non-alpha19_quotes] => ! + [non-alpha20_quotes] => $ + [non-alpha21_quotes] => () + ) + + [Non-alpha numerics in strings] => Array + ( + [Non-alpha_string1] => [EMAIL PROTECTED] + ) + + [Non-alpha numerics in strings -with quotes] => Array + ( + [Non-alpha_string1_quotes] => [EMAIL PROTECTED] + [Non-alpha_string2_quotes] => Hello!world + [Non-alpha_string3_quotes] => Hello#world + [Non-alpha_string4_quotes] => Hello&world + [Non-alpha_string5_quotes] => Hello*world + [Non-alpha_string6_quotes] => Hello+world + [Non-alpha_string7_quotes] => Hello-world + [Non-alpha_string8_quotes] => Hello'world + [Non-alpha_string9_quotes] => Hello:world + [Non-alpha_string10_quotes] => Hello;world + [Non-alpha_string11_quotes] => Hello<world + [Non-alpha_string12_quotes] => Hello>world + [Non-alpha_string13_quotes] => Hello>world + [Non-alpha_string14_quotes] => Hello?world + [Non-alpha_string15_quotes] => Hello\world + [Non-alpha_string16_quotes] => Hello^world + [Non-alpha_string17_quotes] => Hello_world + [Non-alpha_string18_quotes] => Hello|world + [Non-alpha_string19_quotes] => Hello~world + [Non-alpha_string20_quotes] => Hello`world + [Non-alpha_string21_quotes] => Hello(world) + ) + + [Newlines_in_Values] => Array + ( + [String1] => Hello, world +Good Morning + [String2] => +Hello, world + Good Morning + + [String3] => Hello, worldGood Morning + [String4] => + + [String5] => + + + ) + + [ReservedKeys_as_Values] => Array + ( + [Key1] => 1 + [Key2] => 1 + [Key3] => 1 + [Key4] => + [Key5] => + [Key6] => + [Key7] => 1 + [Key8] => 1 + [Key9] => 1 + [Key10] => 1 + [Key11] => + [Key12] => + [Key13] => + [Key14] => + [Key15] => + [Key16] => + [Key17] => + [Key18] => + ) + + [ReservedKeys_as_Keys] => Array + ( + ) + +) +*** Done **
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php