Annotation of embedaddon/php/ext/standard/tests/file/file_variation3.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test file() function : second parameter variation 
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : array file(string filename [, int flags[, resource context]])
                      6:  * Description: Read entire file into an array 
                      7:  * Source code: ext/standard/file.c
                      8:  * Alias to functions: 
                      9:  */
                     10: 
                     11: echo "*** Testing file() : usage variation ***\n";
                     12: 
                     13: // Define error handler
                     14: function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) {
                     15:        if (error_reporting() != 0) {
                     16:                // report non-silenced errors
                     17:                echo "Error: $err_no - $err_msg, $filename($linenum)\n";
                     18:        }
                     19: }
                     20: set_error_handler('test_error_handler');
                     21: 
                     22: // Initialise function arguments not being substituted
                     23: $filename = __FILE__ . ".tmp";
                     24: $fd = fopen($filename, "w+");
                     25: fwrite($fd, "Line 1\nLine 2\nLine 3");
                     26: fclose($fd);
                     27: 
                     28: $context = stream_context_create();
                     29: 
                     30: 
                     31: //get an unset variable
                     32: $unset_var = 10;
                     33: unset ($unset_var);
                     34: 
                     35: // define some classes
                     36: class classWithToString
                     37: {
                     38:        public function __toString() {
                     39:                return "Class A object";
                     40:        }
                     41: }
                     42: 
                     43: class classWithoutToString
                     44: {
                     45: }
                     46: 
                     47: // heredoc string
                     48: $heredoc = <<<EOT
                     49: hello world
                     50: EOT;
                     51: 
                     52: // add arrays
                     53: $index_array = array (1, 2, 3);
                     54: $assoc_array = array ('one' => 1, 'two' => 2);
                     55: 
                     56: //array of values to iterate over
                     57: $inputs = array(
                     58: 
                     59:       // float data
                     60:       'float 10.5' => 10.5,
                     61:       'float -10.5' => -10.5,
                     62:       'float 12.3456789000e10' => 12.3456789000e10,
                     63:       'float -12.3456789000e10' => -12.3456789000e10,
                     64:       'float .5' => .5,
                     65: 
                     66:       // array data
                     67:       'empty array' => array(),
                     68:       'int indexed array' => $index_array,
                     69:       'associative array' => $assoc_array,
                     70:       'nested arrays' => array('foo', $index_array, $assoc_array),
                     71: 
                     72:       // null data
                     73:       'uppercase NULL' => NULL,
                     74:       'lowercase null' => null,
                     75: 
                     76:       // boolean data
                     77:       'lowercase true' => true,
                     78:       'lowercase false' =>false,
                     79:       'uppercase TRUE' =>TRUE,
                     80:       'uppercase FALSE' =>FALSE,
                     81: 
                     82:       // empty data
                     83:       'empty string DQ' => "",
                     84:       'empty string SQ' => '',
                     85: 
                     86:       // string data
                     87:       'string DQ' => "string",
                     88:       'string SQ' => 'string',
                     89:       'mixed case string' => "sTrInG",
                     90:       'heredoc' => $heredoc,
                     91: 
                     92:       // object data
                     93:       'instance of classWithToString' => new classWithToString(),
                     94:       'instance of classWithoutToString' => new classWithoutToString(),
                     95: 
                     96:       // undefined data
                     97:       'undefined var' => @$undefined_var,
                     98: 
                     99:       // unset data
                    100:       'unset var' => @$unset_var,
                    101: );
                    102: 
                    103: // loop through each element of the array for flags
                    104: 
                    105: foreach($inputs as $key =>$value) {
                    106:       echo "\n--$key--\n";
                    107:       var_dump( file($filename, $value, $context) );
                    108: };
                    109: 
                    110: unlink(__FILE__ . ".tmp");
                    111: 
                    112: ?>
                    113: ===DONE===
                    114: --EXPECTF--
                    115: *** Testing file() : usage variation ***
                    116: 
                    117: --float 10.5--
                    118: array(3) {
                    119:   [0]=>
                    120:   string(6) "Line 1"
                    121:   [1]=>
                    122:   string(6) "Line 2"
                    123:   [2]=>
                    124:   string(6) "Line 3"
                    125: }
                    126: 
                    127: --float -10.5--
                    128: Error: 2 - file(): '-10' flag is not supported, %s(%d)
                    129: bool(false)
                    130: 
                    131: --float 12.3456789000e10--
                    132: Error: 2 - file(): '%i' flag is not supported, %s(%d)
                    133: bool(false)
                    134: 
                    135: --float -12.3456789000e10--
                    136: Error: 2 - file(): '%i' flag is not supported, %s(%d)
                    137: bool(false)
                    138: 
                    139: --float .5--
                    140: array(3) {
                    141:   [0]=>
                    142:   string(7) "Line 1
                    143: "
                    144:   [1]=>
                    145:   string(7) "Line 2
                    146: "
                    147:   [2]=>
                    148:   string(6) "Line 3"
                    149: }
                    150: 
                    151: --empty array--
                    152: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d)
                    153: NULL
                    154: 
                    155: --int indexed array--
                    156: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d)
                    157: NULL
                    158: 
                    159: --associative array--
                    160: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d)
                    161: NULL
                    162: 
                    163: --nested arrays--
                    164: Error: 2 - file() expects parameter 2 to be long, array given, %s(%d)
                    165: NULL
                    166: 
                    167: --uppercase NULL--
                    168: array(3) {
                    169:   [0]=>
                    170:   string(7) "Line 1
                    171: "
                    172:   [1]=>
                    173:   string(7) "Line 2
                    174: "
                    175:   [2]=>
                    176:   string(6) "Line 3"
                    177: }
                    178: 
                    179: --lowercase null--
                    180: array(3) {
                    181:   [0]=>
                    182:   string(7) "Line 1
                    183: "
                    184:   [1]=>
                    185:   string(7) "Line 2
                    186: "
                    187:   [2]=>
                    188:   string(6) "Line 3"
                    189: }
                    190: 
                    191: --lowercase true--
                    192: array(3) {
                    193:   [0]=>
                    194:   string(7) "Line 1
                    195: "
                    196:   [1]=>
                    197:   string(7) "Line 2
                    198: "
                    199:   [2]=>
                    200:   string(6) "Line 3"
                    201: }
                    202: 
                    203: --lowercase false--
                    204: array(3) {
                    205:   [0]=>
                    206:   string(7) "Line 1
                    207: "
                    208:   [1]=>
                    209:   string(7) "Line 2
                    210: "
                    211:   [2]=>
                    212:   string(6) "Line 3"
                    213: }
                    214: 
                    215: --uppercase TRUE--
                    216: array(3) {
                    217:   [0]=>
                    218:   string(7) "Line 1
                    219: "
                    220:   [1]=>
                    221:   string(7) "Line 2
                    222: "
                    223:   [2]=>
                    224:   string(6) "Line 3"
                    225: }
                    226: 
                    227: --uppercase FALSE--
                    228: array(3) {
                    229:   [0]=>
                    230:   string(7) "Line 1
                    231: "
                    232:   [1]=>
                    233:   string(7) "Line 2
                    234: "
                    235:   [2]=>
                    236:   string(6) "Line 3"
                    237: }
                    238: 
                    239: --empty string DQ--
                    240: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
                    241: NULL
                    242: 
                    243: --empty string SQ--
                    244: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
                    245: NULL
                    246: 
                    247: --string DQ--
                    248: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
                    249: NULL
                    250: 
                    251: --string SQ--
                    252: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
                    253: NULL
                    254: 
                    255: --mixed case string--
                    256: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
                    257: NULL
                    258: 
                    259: --heredoc--
                    260: Error: 2 - file() expects parameter 2 to be long, string given, %s(%d)
                    261: NULL
                    262: 
                    263: --instance of classWithToString--
                    264: Error: 2 - file() expects parameter 2 to be long, object given, %s(%d)
                    265: NULL
                    266: 
                    267: --instance of classWithoutToString--
                    268: Error: 2 - file() expects parameter 2 to be long, object given, %s(%d)
                    269: NULL
                    270: 
                    271: --undefined var--
                    272: array(3) {
                    273:   [0]=>
                    274:   string(7) "Line 1
                    275: "
                    276:   [1]=>
                    277:   string(7) "Line 2
                    278: "
                    279:   [2]=>
                    280:   string(6) "Line 3"
                    281: }
                    282: 
                    283: --unset var--
                    284: array(3) {
                    285:   [0]=>
                    286:   string(7) "Line 1
                    287: "
                    288:   [1]=>
                    289:   string(7) "Line 2
                    290: "
                    291:   [2]=>
                    292:   string(6) "Line 3"
                    293: }
                    294: ===DONE===

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>