Annotation of embedaddon/php/ext/mbstring/tests/mb_stripos.phpt, revision 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>