Annotation of embedaddon/php/ext/mbstring/tests/mb_stripos.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: mb_stripos() 
                      3: --SKIPIF--
                      4: <?php
                      5: extension_loaded('mbstring') or die('skip');
                      6: function_exists('mb_stripos') or die("skip mb_stripos() is not available in this build");
                      7: ?>
                      8: --FILE--
                      9: <?php
                     10: // TODO: Add more encodings
                     11: 
                     12: //$debug=true;
                     13: ini_set('include_path','.');
                     14: include_once('common.inc');
                     15: 
                     16: 
                     17: // Test string
                     18: $euc_jp = b'0123この文字列は日本語です。EUC-JPを使っています。0123日本語は面倒臭い。';
                     19: 
                     20: // EUC-JP - With encoding parameter
                     21: mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n");
                     22: 
                     23: echo  "== POSITIVE OFFSET ==\n";
                     24: print  mb_stripos($euc_jp,b'日本語', 0, 'EUC-JP') . "\n";
                     25: print  mb_stripos($euc_jp, b'0', 0,     'EUC-JP') . "\n";
                     26: print  mb_stripos($euc_jp, 3, 0,       'EUC-JP') . "\n";
                     27: print  mb_stripos($euc_jp, 0, 0,       'EUC-JP') . "\n";
                     28: print  mb_stripos($euc_jp,b'日本語', 15, 'EUC-JP') . "\n";
                     29: print  mb_stripos($euc_jp, b'0', 15,     'EUC-JP') . "\n";
                     30: print  mb_stripos($euc_jp, 3, 15,       'EUC-JP') . "\n";
                     31: print  mb_stripos($euc_jp, 0, 15,       'EUC-JP') . "\n";
                     32: 
                     33: // Negative offset
                     34: // Note: PHP Warning - offset is negative.
                     35: // Note: For offset(-15). It does not return position of latter string. (ie the same result as -50)
                     36: echo "== NEGATIVE OFFSET ==\n";
                     37: $r = mb_stripos($euc_jp,b'日本語', -15, 'EUC-JP');
                     38: ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n";
                     39: $r = mb_stripos($euc_jp, b'0', -15,     'EUC-JP');
                     40: ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n";
                     41: $r = mb_stripos($euc_jp, 3, -15,       'EUC-JP');
                     42: ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n";
                     43: $r = mb_stripos($euc_jp, 0, -15,       'EUC-JP');
                     44: ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n";
                     45: $r = mb_stripos($euc_jp,b'日本語', -50, 'EUC-JP');
                     46: ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n";
                     47: $r = mb_stripos($euc_jp, b'0', -50,     'EUC-JP');
                     48: ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n";
                     49: $r = mb_stripos($euc_jp, 3, -50,       'EUC-JP');
                     50: ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n";
                     51: $r = mb_stripos($euc_jp, 0, -50,       'EUC-JP');
                     52: ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n";
                     53: 
                     54: // Out of range - should return false
                     55: print ("== OUT OF RANGE ==\n");
                     56: $r =  mb_stripos($euc_jp,b'日本語', 40, 'EUC-JP');
                     57: ($r === FALSE) ? print "OK_OUT_RANGE\n"     : print "NG_OUT_RANGE\n";
                     58: $r =  mb_stripos($euc_jp, b'0', 40,     'EUC-JP');
                     59: ($r === FALSE) ? print "OK_OUT_RANGE\n"     : print "NG_OUT_RANGE\n";
                     60: $r =  mb_stripos($euc_jp, 3, 40,       'EUC-JP');
                     61: ($r === FALSE) ? print "OK_OUT_RANGE\n"     : print "NG_OUT_RANGE\n";
                     62: $r =   mb_stripos($euc_jp, 0, 40,       'EUC-JP');
                     63: ($r === FALSE) ? print "OK_OUT_RANGE\n"     : print "NG_OUT_RANGE\n";
                     64: // Note: Returned NULL string
                     65: // echo gettype($r). ' val '. $r ."\n"; 
                     66: 
                     67: 
                     68: // Non-existent
                     69: echo "== NON-EXISTENT ==\n";
                     70: $r = mb_stripos($euc_jp, b'韓国語', 0, 'EUC-JP');
                     71: ($r === FALSE) ? print "OK_STR\n"     : print "NG_STR\n";
                     72: $r = mb_stripos($euc_jp, b"\n",     0, 'EUC-JP');
                     73: ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n";
                     74: 
                     75: 
                     76: // EUC-JP - No encoding parameter
                     77: echo "== NO ENCODING PARAMETER ==\n";
                     78: mb_internal_encoding('EUC-JP')  or print("mb_internal_encoding() failed\n");
                     79: 
                     80: print  mb_stripos($euc_jp,b'日本語', 0) . "\n";
                     81: print  mb_stripos($euc_jp, b'0', 0) . "\n";
                     82: print  mb_stripos($euc_jp, 3, 0) . "\n";
                     83: print  mb_stripos($euc_jp, 0, 0) . "\n";
                     84: 
                     85: $r = mb_stripos($euc_jp,b'韓国語', 0);
                     86: ($r === FALSE) ? print "OK_STR\n"     : print "NG_STR\n";
                     87: $r = mb_stripos($euc_jp,b"\n", 0);
                     88: ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n";
                     89: 
                     90: // EUC-JP - No offset and encoding parameter
                     91: echo "== NO OFFSET AND ENCODING PARAMETER ==\n";
                     92: mb_internal_encoding('EUC-JP')  or print("mb_internal_encoding() failed\n");
                     93: 
                     94: print  mb_stripos($euc_jp,b'日本語') . "\n";
                     95: print  mb_stripos($euc_jp, b'0') . "\n";
                     96: print  mb_stripos($euc_jp, 3) . "\n";
                     97: print  mb_stripos($euc_jp, 0) . "\n";
                     98: 
                     99: $r = mb_stripos($euc_jp,b'韓国語');
                    100: ($r === FALSE) ? print "OK_STR\n"     : print "NG_STR\n";
                    101: $r = mb_stripos($euc_jp,b"\n");
                    102: ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n";
                    103: 
                    104: 
                    105: // Invalid Parameters
                    106: echo "== INVALID PARAMETER TEST ==\n";
                    107: 
                    108: $r = mb_stripos($euc_jp,'','EUC-JP');
                    109: ($r === FALSE) ? print("OK_NULL\n") : print("NG_NULL\n");
                    110: $r = mb_stripos($euc_jp, $t_ary, 'EUC-JP');
                    111: ($r === FALSE) ? print("OK_ARRAY\n") : print("NG_ARRAY\n");
                    112: $r = mb_stripos($euc_jp, $t_obj, 'EUC-JP');
                    113: ($r === FALSE) ? print("OK_OBJECT\n") : print("NG_OBJECT\n");
                    114: $r = mb_stripos($euc_jp, $t_obj, 'BAD_ENCODING');
                    115: ($r === FALSE) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n");
                    116: 
                    117: 
                    118: ?>
                    119: 
                    120: --EXPECT--
                    121: == POSITIVE OFFSET ==
                    122: 10
                    123: 0
                    124: 3
                    125: 0
                    126: 34
                    127: 30
                    128: 33
                    129: 30
                    130: == NEGATIVE OFFSET ==
                    131: ERR: Warning
                    132: OK_NEGATIVE_OFFSET
                    133: ERR: Warning
                    134: OK_NEGATIVE_OFFSET
                    135: ERR: Warning
                    136: OK_NEGATIVE_OFFSET
                    137: ERR: Warning
                    138: OK_NEGATIVE_OFFSET
                    139: ERR: Warning
                    140: OK_NEGATIVE_OFFSET
                    141: ERR: Warning
                    142: OK_NEGATIVE_OFFSET
                    143: ERR: Warning
                    144: OK_NEGATIVE_OFFSET
                    145: ERR: Warning
                    146: OK_NEGATIVE_OFFSET
                    147: == OUT OF RANGE ==
                    148: OK_OUT_RANGE
                    149: OK_OUT_RANGE
                    150: OK_OUT_RANGE
                    151: OK_OUT_RANGE
                    152: == NON-EXISTENT ==
                    153: OK_STR
                    154: OK_NEWLINE
                    155: == NO ENCODING PARAMETER ==
                    156: 10
                    157: 0
                    158: 3
                    159: 0
                    160: OK_STR
                    161: OK_NEWLINE
                    162: == NO OFFSET AND ENCODING PARAMETER ==
                    163: 10
                    164: 0
                    165: 3
                    166: 0
                    167: OK_STR
                    168: OK_NEWLINE
                    169: == INVALID PARAMETER TEST ==
                    170: ERR: Warning
                    171: OK_NULL
                    172: ERR: Warning
                    173: OK_ARRAY
                    174: ERR: Warning
                    175: OK_OBJECT
                    176: ERR: Warning
                    177: OK_BAD_ENCODING
                    178: 

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