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>