Annotation of embedaddon/php/ext/standard/tests/file/basename-win32.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: basename
                      3: --CREDITS--
                      4: Dave Kelsey <d_kelsey@uk.ibm.com>
                      5: --SKIPIF--
                      6: <?php
                      7: if (substr(PHP_OS, 0, 3) != 'WIN') {
                      8:     die('skip Windows only basename tests');
                      9: }
                     10: ?>
                     11: --FILE--
                     12: <?php
                     13: /* 
                     14:  * proto string basename(string path [, string suffix])
                     15:  * Function is implemented in ext/standard/string.c
                     16:  */ 
                     17: $file_paths = array (
                     18:   /* simple paths */
                     19:   array("bar"),
                     20:   array("\\foo\\bar"),
                     21:   array("foo\\bar"),
                     22:   array("\\bar"),
                     23: 
                     24:   /* simple paths with trailing slashes */
                     25:   array("bar\\"),
                     26:   array("\\bar\\"),
                     27:   array("\\foo\\bar\\"),
                     28:   array("foo\\bar\\"),
                     29:   array("\\bar\\"),
                     30: 
                     31:   /* paths with suffix removal */
                     32:   array("bar.zip", ".zip"),
                     33:   array("bar.zip", "bar.zip"),
                     34:   array("\\foo\\bar.zip", ".zip"),
                     35:   array("foo\\bar.zip", ".zip"),
                     36:   array("\\bar.zip", ".zip"),  
                     37: 
                     38:   /* paths with suffix and trailing slashes with suffix removal*/
                     39:   array("bar.zip\\", ".zip"),
                     40:   array("\\bar.zip\\", ".zip"),
                     41:   array("\\foo\\bar.zip\\", ".zip"),
                     42:   array("foo\\bar.zip\\", ".zip"),
                     43:   array("\\bar.zip\\", ".zip"),  
                     44:   
                     45:   /* paths with basename only suffix, with suffix removal*/
                     46:   array("\\.zip", ".zip"),
                     47:   array(".zip", ".zip"),
                     48:   array("\\foo\\.zip", ".zip"),
                     49: 
                     50:   /* paths with basename only suffix & trailing slashes, with suffix removal*/
                     51:   array(".zip\\", ".zip"),
                     52:   array("\\foo\\.zip\\", ".zip"),
                     53:   array("foo\\.zip\\", ".zip"),
                     54: );
                     55: 
                     56: $file_path_variations = array (
                     57:   /* paths with shortcut home dir char, with suffix variation */
                     58:   array("C:\\temp\\bar"),
                     59:   array("C:\\temp\\bar", ""),
                     60:   array("C:\\temp\\bar", NULL),
                     61:   array("C:\\temp\\bar", ' '),
                     62:   array("C:\\temp\\bar.tar", ".tar"),
                     63:   array("C:\\temp\\bar.tar", "~"),
                     64:   array("C:\\temp\\bar.tar\\", "~"),
                     65:   array("C:\\temp\\bar.tar\\", ""),
                     66:   array("C:\\temp\\bar.tar", NULL),
                     67:   array("C:\\temp\\bar.tar", ''),
                     68:   array("C:\\temp\\bar.tar", " "),
                     69: 
                     70:   /* paths with numeric strings */
                     71:   array("10.5"),
                     72:   array("10.5", ".5"),
                     73:   array("10.5", "10.5"),
                     74:   array("10"),
                     75:   array("105", "5"),
                     76:   array("/10.5"),
                     77:   array("10.5\\"),
                     78:   array("10/10.zip"),
                     79:   array("0"),
                     80:   array('0'),
                     81: 
                     82:   /* paths and suffix given as same */
                     83:   array("bar.zip", "bar.zip"),
                     84:   array("\\bar.zip", "\\bar.zip"),
                     85:   array("\\bar.zip\\", "\\bar.zip\\"),
                     86:   array(" ", " "),
                     87:   array(' ', ' '),
                     88:   array(NULL, NULL),
                     89: 
                     90:   /* path with spaces */
                     91:   array(" "),
                     92:   array(' '),
                     93:   
                     94:   /* empty paths */
                     95:   array(""),
                     96:   array(''),
                     97:   array(NULL)
                     98: );
                     99: 
                    100: function check_basename( $path_arrays ) {
                    101:    $loop_counter = 1;
                    102:    foreach ($path_arrays as $path) {
                    103:      echo "\n--Iteration $loop_counter--\n"; $loop_counter++;
                    104:      if( 1 == count($path) ) { // no suffix provided
                    105:        var_dump( basename($path[0]) );
                    106:      } else { // path as well as suffix provided,
                    107:        var_dump( basename($path[0], $path[1]) );    
                    108:      } 
                    109:    }
                    110: }
                    111: 
                    112: echo "*** Testing basic operations ***\n";
                    113: check_basename( $file_paths );
                    114: 
                    115: echo "\n*** Testing possible variations in path and suffix ***\n";
                    116: check_basename( $file_path_variations );
                    117: 
                    118: echo "\n*** Testing error conditions ***\n";
                    119: // zero arguments 
                    120: var_dump( basename() );
                    121: 
                    122: // more than expected no. of arguments
                    123: var_dump( basename("\\blah\\tmp\\bar.zip", ".zip", ".zip") );
                    124: 
                    125: // passing invalid type arguments 
                    126: $object = new stdclass;
                    127: var_dump( basename( array("string\\bar") ) );
                    128: var_dump( basename( array("string\\bar"), "bar" ) );
                    129: var_dump( basename( "bar", array("string\\bar") ) );
                    130: var_dump( basename( $object, "bar" ) );
                    131: var_dump( basename( $object ) );
                    132: var_dump( basename( $object, $object ) );
                    133: var_dump( basename( "bar", $object ) );
                    134: 
                    135: echo "Done\n";
                    136: ?>
                    137: --EXPECTF--
                    138: *** Testing basic operations ***
                    139: 
                    140: --Iteration 1--
                    141: string(3) "bar"
                    142: 
                    143: --Iteration 2--
                    144: string(3) "bar"
                    145: 
                    146: --Iteration 3--
                    147: string(3) "bar"
                    148: 
                    149: --Iteration 4--
                    150: string(3) "bar"
                    151: 
                    152: --Iteration 5--
                    153: string(3) "bar"
                    154: 
                    155: --Iteration 6--
                    156: string(3) "bar"
                    157: 
                    158: --Iteration 7--
                    159: string(3) "bar"
                    160: 
                    161: --Iteration 8--
                    162: string(3) "bar"
                    163: 
                    164: --Iteration 9--
                    165: string(3) "bar"
                    166: 
                    167: --Iteration 10--
                    168: string(3) "bar"
                    169: 
                    170: --Iteration 11--
                    171: string(7) "bar.zip"
                    172: 
                    173: --Iteration 12--
                    174: string(3) "bar"
                    175: 
                    176: --Iteration 13--
                    177: string(3) "bar"
                    178: 
                    179: --Iteration 14--
                    180: string(3) "bar"
                    181: 
                    182: --Iteration 15--
                    183: string(3) "bar"
                    184: 
                    185: --Iteration 16--
                    186: string(3) "bar"
                    187: 
                    188: --Iteration 17--
                    189: string(3) "bar"
                    190: 
                    191: --Iteration 18--
                    192: string(3) "bar"
                    193: 
                    194: --Iteration 19--
                    195: string(3) "bar"
                    196: 
                    197: --Iteration 20--
                    198: string(4) ".zip"
                    199: 
                    200: --Iteration 21--
                    201: string(4) ".zip"
                    202: 
                    203: --Iteration 22--
                    204: string(4) ".zip"
                    205: 
                    206: --Iteration 23--
                    207: string(4) ".zip"
                    208: 
                    209: --Iteration 24--
                    210: string(4) ".zip"
                    211: 
                    212: --Iteration 25--
                    213: string(4) ".zip"
                    214: 
                    215: *** Testing possible variations in path and suffix ***
                    216: 
                    217: --Iteration 1--
                    218: string(3) "bar"
                    219: 
                    220: --Iteration 2--
                    221: string(3) "bar"
                    222: 
                    223: --Iteration 3--
                    224: string(3) "bar"
                    225: 
                    226: --Iteration 4--
                    227: string(3) "bar"
                    228: 
                    229: --Iteration 5--
                    230: string(3) "bar"
                    231: 
                    232: --Iteration 6--
                    233: string(7) "bar.tar"
                    234: 
                    235: --Iteration 7--
                    236: string(7) "bar.tar"
                    237: 
                    238: --Iteration 8--
                    239: string(7) "bar.tar"
                    240: 
                    241: --Iteration 9--
                    242: string(7) "bar.tar"
                    243: 
                    244: --Iteration 10--
                    245: string(7) "bar.tar"
                    246: 
                    247: --Iteration 11--
                    248: string(7) "bar.tar"
                    249: 
                    250: --Iteration 12--
                    251: string(4) "10.5"
                    252: 
                    253: --Iteration 13--
                    254: string(2) "10"
                    255: 
                    256: --Iteration 14--
                    257: string(4) "10.5"
                    258: 
                    259: --Iteration 15--
                    260: string(2) "10"
                    261: 
                    262: --Iteration 16--
                    263: string(2) "10"
                    264: 
                    265: --Iteration 17--
                    266: string(4) "10.5"
                    267: 
                    268: --Iteration 18--
                    269: string(4) "10.5"
                    270: 
                    271: --Iteration 19--
                    272: string(6) "10.zip"
                    273: 
                    274: --Iteration 20--
                    275: string(1) "0"
                    276: 
                    277: --Iteration 21--
                    278: string(1) "0"
                    279: 
                    280: --Iteration 22--
                    281: string(7) "bar.zip"
                    282: 
                    283: --Iteration 23--
                    284: string(7) "bar.zip"
                    285: 
                    286: --Iteration 24--
                    287: string(7) "bar.zip"
                    288: 
                    289: --Iteration 25--
                    290: string(1) " "
                    291: 
                    292: --Iteration 26--
                    293: string(1) " "
                    294: 
                    295: --Iteration 27--
                    296: string(0) ""
                    297: 
                    298: --Iteration 28--
                    299: string(1) " "
                    300: 
                    301: --Iteration 29--
                    302: string(1) " "
                    303: 
                    304: --Iteration 30--
                    305: string(0) ""
                    306: 
                    307: --Iteration 31--
                    308: string(0) ""
                    309: 
                    310: --Iteration 32--
                    311: string(0) ""
                    312: 
                    313: *** Testing error conditions ***
                    314: 
                    315: Warning: basename() expects at least 1 parameter, 0 given in %s on line %d
                    316: NULL
                    317: 
                    318: Warning: basename() expects at most 2 parameters, 3 given in %s on line %d
                    319: NULL
                    320: 
                    321: Warning: basename() expects parameter 1 to be string, array given in %s on line %d
                    322: NULL
                    323: 
                    324: Warning: basename() expects parameter 1 to be string, array given in %s on line %d
                    325: NULL
                    326: 
                    327: Warning: basename() expects parameter 2 to be string, array given in %s on line %d
                    328: NULL
                    329: 
                    330: Warning: basename() expects parameter 1 to be string, object given in %s on line %d
                    331: NULL
                    332: 
                    333: Warning: basename() expects parameter 1 to be string, object given in %s on line %d
                    334: NULL
                    335: 
                    336: Warning: basename() expects parameter 1 to be string, object given in %s on line %d
                    337: NULL
                    338: 
                    339: Warning: basename() expects parameter 2 to be string, object given in %s on line %d
                    340: NULL
                    341: Done

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