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

1.1       misho       1: --TEST--
                      2: basename
                      3: --CREDITS--
                      4: Dave Kelsey <d_kelsey@uk.ibm.com>
                      5: --FILE--
                      6: <?php
                      7: /* 
                      8:  * proto string basename(string path [, string suffix])
                      9:  * Function is implemented in ext/standard/string.c
                     10:  */ 
                     11: $file_paths = array (
                     12:   /* simple paths */
                     13:   array("bar"),
                     14:   array("/foo/bar"),
                     15:   array("foo/bar"),
                     16:   array("/bar"),
                     17: 
                     18:   /* simple paths with trailing slashes */
                     19:   array("bar/"),
                     20:   array("/bar/"),
                     21:   array("/foo/bar/"),
                     22:   array("foo/bar/"),
                     23:   array("/bar/"),
                     24: 
                     25:   /* paths with suffix removal */
                     26:   array("bar.gz", ".gz"),
                     27:   array("bar.gz", "bar.gz"),
                     28:   array("/foo/bar.gz", ".gz"),
                     29:   array("foo/bar.gz", ".gz"),
                     30:   array("/bar.gz", ".gz"),  
                     31: 
                     32:   /* paths with suffix and trailing slashes with suffix removal*/
                     33:   array("bar.gz/", ".gz"),
                     34:   array("/bar.gz/", ".gz"),
                     35:   array("/foo/bar.gz/", ".gz"),
                     36:   array("foo/bar.gz/", ".gz"),
                     37:   array("/bar.gz/", ".gz"),  
                     38:   
                     39:   /* paths with basename only suffix, with suffix removal*/
                     40:   array("/.gz", ".gz"),
                     41:   array(".gz", ".gz"),
                     42:   array("/foo/.gz", ".gz"),
                     43: 
                     44:   /* paths with basename only suffix & trailing slashes, with suffix removal*/
                     45:   array(".gz/", ".gz"),
                     46:   array("/foo/.gz/", ".gz"),
                     47:   array("foo/.gz/", ".gz"),
                     48: 
                     49:   /* paths with binary value to check if the function is binary safe*/
                     50:   array("foo".chr(0)."bar"),
                     51:   array("/foo".chr(0)."bar"),
                     52:   array("/foo".chr(0)."bar/"),
                     53:   array("foo".chr(0)."bar/"),
                     54:   array("foo".chr(0)."bar/test"),
                     55:   array("/foo".chr(0)."bar/bar.gz", ".gz"),
                     56:   array("/foo".chr(0)."bar/bar.gz")
                     57: );
                     58: 
                     59: $file_path_variations = array (
                     60:   /* paths with shortcut home dir char, with suffix variation */
                     61:   array("~/home/user/bar"),
                     62:   array("~/home/user/bar", ""),
                     63:   array("~/home/user/bar", NULL),
                     64:   array("~/home/user/bar", ' '),
                     65:   array("~/home/user/bar.tar", ".tar"),
                     66:   array("~/home/user/bar.tar", "~"),
                     67:   array("~/home/user/bar.tar/", "~"),
                     68:   array("~/home/user/bar.tar/", ""),
                     69:   array("~/home/user/bar.tar", NULL),
                     70:   array("~/home/user/bar.tar", ''),
                     71:   array("~/home/user/bar.tar", " "),
                     72: 
                     73:   /* paths with hostname:dir notation, with suffix variation */
                     74:   array("hostname:/home/usr/bar.tar"),
                     75:   array("hostname:/home/user/bar.tar", "home"),
                     76:   array("hostname:/home/user/tbar.gz", "bar.gz"),
                     77:   array("hostname:/home/user/tbar.gz", "/bar.gz"),
                     78:   array("hostname:/home/user/tbar.gz", "/bar.gz/"),
                     79:   array("hostname:/home/user/tbar.gz/", "/bar.gz/"),
                     80:   array("hostname:/home/user/tbar.gz/", "/bar.gz/"),
                     81:   array("hostname:/home/user/My Pics.gz/", "/bar.gz/"),
                     82:   array("hostname:/home/user/My Pics.gz/", "Pics.gz/"),
                     83:   array("hostname:/home/user/My Pics.gz/", "Pics.gz"),
                     84:   array("hostname:/home/user/My Pics.gz/", ".gz"),
                     85:   array("hostname:/home/user/My Pics.gz/"),
                     86:   array("hostname:/home/user/My Pics.gz/", NULL),
                     87:   array("hostname:/home/user/My Pics.gz/", ' '),
                     88:   array("hostname:/home/user/My Pics.gz/", ''),
                     89:   array("hostname:/home/user/My Pics.gz/", "My Pics.gz"),
                     90: 
                     91:   /* paths with numeirc strings */
                     92:   array("10.5"),
                     93:   array("10.5", ".5"),
                     94:   array("10.5", "10.5"),
                     95:   array("10"),
                     96:   array("105", "5"),
                     97:   array("/10.5"),
                     98:   array("10.5/"),
                     99:   array("10/10.gz"),
                    100:   array("0"),
                    101:   array('0'),
                    102: 
                    103:   /* paths and suffix given as same */
                    104:   array("bar.gz", "bar.gz"),
                    105:   array("/bar.gz", "/bar.gz"),
                    106:   array("/bar.gz/", "/bar.gz/"),
                    107:   array(" ", " "),
                    108:   array(' ', ' '),
                    109:   array(NULL, NULL),
                    110: 
                    111:   /* path with spaces */
                    112:   array(" "),
                    113:   array(' '),
                    114:   
                    115:   /* empty paths */
                    116:   array(""),
                    117:   array(''),
                    118:   array(NULL)
                    119: );
                    120: 
                    121: function check_basename( $path_arrays ) {
                    122:    $loop_counter = 1;
                    123:    foreach ($path_arrays as $path) {
                    124:      echo "\n--Iteration $loop_counter--\n"; $loop_counter++;
                    125:      if( 1 == count($path) ) { // no suffix provided
                    126:        var_dump( basename($path[0]) );
                    127:      } else { // path as well as suffix provided,
                    128:        var_dump( basename($path[0], $path[1]) );    
                    129:      } 
                    130:    }
                    131: }
                    132: 
                    133: echo "*** Testing basic operations ***\n";
                    134: check_basename( $file_paths );
                    135: 
                    136: echo "\n*** Testing possible variations in path and suffix ***\n";
                    137: check_basename( $file_path_variations );
                    138: 
                    139: echo "\n*** Testing error conditions ***\n";
                    140: // zero arguments 
                    141: var_dump( basename() );
                    142: 
                    143: // more than expected no. of arguments
                    144: var_dump( basename("/var/tmp/bar.gz", ".gz", ".gz") );
                    145: 
                    146: // passing invalid type arguments 
                    147: $object = new stdclass;
                    148: var_dump( basename( array("string/bar") ) );
                    149: var_dump( basename( array("string/bar"), "bar" ) );
                    150: var_dump( basename( "bar", array("string/bar") ) );
                    151: var_dump( basename( $object, "bar" ) );
                    152: var_dump( basename( $object ) );
                    153: var_dump( basename( $object, $object ) );
                    154: var_dump( basename( "bar", $object ) );
                    155: 
                    156: echo "Done\n";
                    157: ?>
                    158: --EXPECTF--
                    159: *** Testing basic operations ***
                    160: 
                    161: --Iteration 1--
                    162: string(3) "bar"
                    163: 
                    164: --Iteration 2--
                    165: string(3) "bar"
                    166: 
                    167: --Iteration 3--
                    168: string(3) "bar"
                    169: 
                    170: --Iteration 4--
                    171: string(3) "bar"
                    172: 
                    173: --Iteration 5--
                    174: string(3) "bar"
                    175: 
                    176: --Iteration 6--
                    177: string(3) "bar"
                    178: 
                    179: --Iteration 7--
                    180: string(3) "bar"
                    181: 
                    182: --Iteration 8--
                    183: string(3) "bar"
                    184: 
                    185: --Iteration 9--
                    186: string(3) "bar"
                    187: 
                    188: --Iteration 10--
                    189: string(3) "bar"
                    190: 
                    191: --Iteration 11--
                    192: string(6) "bar.gz"
                    193: 
                    194: --Iteration 12--
                    195: string(3) "bar"
                    196: 
                    197: --Iteration 13--
                    198: string(3) "bar"
                    199: 
                    200: --Iteration 14--
                    201: string(3) "bar"
                    202: 
                    203: --Iteration 15--
                    204: string(3) "bar"
                    205: 
                    206: --Iteration 16--
                    207: string(3) "bar"
                    208: 
                    209: --Iteration 17--
                    210: string(3) "bar"
                    211: 
                    212: --Iteration 18--
                    213: string(3) "bar"
                    214: 
                    215: --Iteration 19--
                    216: string(3) "bar"
                    217: 
                    218: --Iteration 20--
                    219: string(3) ".gz"
                    220: 
                    221: --Iteration 21--
                    222: string(3) ".gz"
                    223: 
                    224: --Iteration 22--
                    225: string(3) ".gz"
                    226: 
                    227: --Iteration 23--
                    228: string(3) ".gz"
                    229: 
                    230: --Iteration 24--
                    231: string(3) ".gz"
                    232: 
                    233: --Iteration 25--
                    234: string(3) ".gz"
                    235: 
                    236: --Iteration 26--
                    237: string(7) "foobar"
                    238: 
                    239: --Iteration 27--
                    240: string(7) "foobar"
                    241: 
                    242: --Iteration 28--
                    243: string(7) "foobar"
                    244: 
                    245: --Iteration 29--
                    246: string(7) "foobar"
                    247: 
                    248: --Iteration 30--
                    249: string(4) "test"
                    250: 
                    251: --Iteration 31--
                    252: string(3) "bar"
                    253: 
                    254: --Iteration 32--
                    255: string(6) "bar.gz"
                    256: 
                    257: *** Testing possible variations in path and suffix ***
                    258: 
                    259: --Iteration 1--
                    260: string(3) "bar"
                    261: 
                    262: --Iteration 2--
                    263: string(3) "bar"
                    264: 
                    265: --Iteration 3--
                    266: string(3) "bar"
                    267: 
                    268: --Iteration 4--
                    269: string(3) "bar"
                    270: 
                    271: --Iteration 5--
                    272: string(3) "bar"
                    273: 
                    274: --Iteration 6--
                    275: string(7) "bar.tar"
                    276: 
                    277: --Iteration 7--
                    278: string(7) "bar.tar"
                    279: 
                    280: --Iteration 8--
                    281: string(7) "bar.tar"
                    282: 
                    283: --Iteration 9--
                    284: string(7) "bar.tar"
                    285: 
                    286: --Iteration 10--
                    287: string(7) "bar.tar"
                    288: 
                    289: --Iteration 11--
                    290: string(7) "bar.tar"
                    291: 
                    292: --Iteration 12--
                    293: string(7) "bar.tar"
                    294: 
                    295: --Iteration 13--
                    296: string(7) "bar.tar"
                    297: 
                    298: --Iteration 14--
                    299: string(1) "t"
                    300: 
                    301: --Iteration 15--
                    302: string(7) "tbar.gz"
                    303: 
                    304: --Iteration 16--
                    305: string(7) "tbar.gz"
                    306: 
                    307: --Iteration 17--
                    308: string(7) "tbar.gz"
                    309: 
                    310: --Iteration 18--
                    311: string(7) "tbar.gz"
                    312: 
                    313: --Iteration 19--
                    314: string(10) "My Pics.gz"
                    315: 
                    316: --Iteration 20--
                    317: string(10) "My Pics.gz"
                    318: 
                    319: --Iteration 21--
                    320: string(3) "My "
                    321: 
                    322: --Iteration 22--
                    323: string(7) "My Pics"
                    324: 
                    325: --Iteration 23--
                    326: string(10) "My Pics.gz"
                    327: 
                    328: --Iteration 24--
                    329: string(10) "My Pics.gz"
                    330: 
                    331: --Iteration 25--
                    332: string(10) "My Pics.gz"
                    333: 
                    334: --Iteration 26--
                    335: string(10) "My Pics.gz"
                    336: 
                    337: --Iteration 27--
                    338: string(10) "My Pics.gz"
                    339: 
                    340: --Iteration 28--
                    341: string(4) "10.5"
                    342: 
                    343: --Iteration 29--
                    344: string(2) "10"
                    345: 
                    346: --Iteration 30--
                    347: string(4) "10.5"
                    348: 
                    349: --Iteration 31--
                    350: string(2) "10"
                    351: 
                    352: --Iteration 32--
                    353: string(2) "10"
                    354: 
                    355: --Iteration 33--
                    356: string(4) "10.5"
                    357: 
                    358: --Iteration 34--
                    359: string(4) "10.5"
                    360: 
                    361: --Iteration 35--
                    362: string(5) "10.gz"
                    363: 
                    364: --Iteration 36--
                    365: string(1) "0"
                    366: 
                    367: --Iteration 37--
                    368: string(1) "0"
                    369: 
                    370: --Iteration 38--
                    371: string(6) "bar.gz"
                    372: 
                    373: --Iteration 39--
                    374: string(6) "bar.gz"
                    375: 
                    376: --Iteration 40--
                    377: string(6) "bar.gz"
                    378: 
                    379: --Iteration 41--
                    380: string(1) " "
                    381: 
                    382: --Iteration 42--
                    383: string(1) " "
                    384: 
                    385: --Iteration 43--
                    386: string(0) ""
                    387: 
                    388: --Iteration 44--
                    389: string(1) " "
                    390: 
                    391: --Iteration 45--
                    392: string(1) " "
                    393: 
                    394: --Iteration 46--
                    395: string(0) ""
                    396: 
                    397: --Iteration 47--
                    398: string(0) ""
                    399: 
                    400: --Iteration 48--
                    401: string(0) ""
                    402: 
                    403: *** Testing error conditions ***
                    404: 
                    405: Warning: basename() expects at least 1 parameter, 0 given in %s on line %d
                    406: NULL
                    407: 
                    408: Warning: basename() expects at most 2 parameters, 3 given in %s on line %d
                    409: NULL
                    410: 
                    411: Warning: basename() expects parameter 1 to be string, array given in %s on line %d
                    412: NULL
                    413: 
                    414: Warning: basename() expects parameter 1 to be string, array given in %s on line %d
                    415: NULL
                    416: 
                    417: Warning: basename() expects parameter 2 to be string, array given in %s on line %d
                    418: NULL
                    419: 
                    420: Warning: basename() expects parameter 1 to be string, object given in %s on line %d
                    421: NULL
                    422: 
                    423: Warning: basename() expects parameter 1 to be string, object given in %s on line %d
                    424: NULL
                    425: 
                    426: Warning: basename() expects parameter 1 to be string, object given in %s on line %d
                    427: NULL
                    428: 
                    429: Warning: basename() expects parameter 2 to be string, object given in %s on line %d
                    430: NULL
                    431: Done

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