Annotation of embedaddon/php/ext/mbstring/tests/mb_convert_variables.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mb_convert_variables()
! 3: --SKIPIF--
! 4: <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
! 5: --INI--
! 6: output_handler=
! 7: mbstring.language=Japanese
! 8: --FILE--
! 9: <?php
! 10: // TODO: Add more tests
! 11: //$debug = true; // Uncomment this line to view error/warning/notice message in *.out file
! 12: ini_set('include_path', dirname(__FILE__));
! 13: include_once('common.inc');
! 14:
! 15: // SJIS string (BASE64 encoded)
! 16: $sjis = base64_decode('k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==');
! 17: // JIS string (BASE64 encoded)
! 18: $jis = base64_decode('GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==');
! 19: // EUC-JP string
! 20: $euc_jp = '日本語テキストです。0123456789。';
! 21:
! 22: // Test for single scaler
! 23: echo "== SCALER TEST ==\n";
! 24: $s = $sjis;
! 25: $encoding = mb_convert_variables('EUC-JP', 'SJIS', $s);
! 26: print("$encoding\n"); // SJIS
! 27: print("$s\n"); // Converted to EUC-JP
! 28:
! 29: $s = $jis;
! 30: $encoding = mb_convert_variables('EUC-JP', 'JIS', $s);
! 31: print("$encoding\n"); // JIS
! 32: print("$s\n"); // Converted to EUC-JP
! 33:
! 34: $s = $euc_jp;
! 35: $encoding = mb_convert_variables('SJIS', 'EUC-JP', $s);
! 36: print("$encoding\n"); // EUC-JP
! 37: print(base64_encode($s)."\n"); // Converted to SJIS (base64 encoded)
! 38:
! 39: $s = $euc_jp;
! 40: $encoding = mb_convert_variables('JIS', 'EUC-JP', $s);
! 41: print("$encoding\n"); // EUC-JP
! 42: print(base64_encode($s)."\n"); // Converted to JIS (base64 encoded)
! 43:
! 44: // Test for multiple slcaler
! 45: $s1 = $euc_jp;
! 46: $s2 = $euc_jp;
! 47: $s3 = $euc_jp;
! 48: $encoding = mb_convert_variables('EUC-JP', 'auto', $s1, $s2, $s3);
! 49: print("$encoding\n"); // EUC-JP
! 50: print("$s1$s2$s3\n"); // Converted to EUC-JP
! 51:
! 52:
! 53:
! 54: // Note: Mixing encoding in array/object is not supported?
! 55: // Test for array
! 56: echo "== ARRAY TEST ==\n";
! 57: $a = array($s3, $s2, $s1);
! 58: $aa = $a;
! 59: $encoding = mb_convert_variables('EUC-JP', 'auto', $aa);
! 60: print("$encoding\n"); // EUC-JP
! 61: print("{$aa[0]}{$aa[1]}{$aa[2]}\n"); // Converted to EUC-JP
! 62:
! 63: $a = array($s1, $s2, $s3);
! 64: $aa = $a;
! 65: $encoding = mb_convert_variables('EUC-JP', 'auto', $aa);
! 66: print("$encoding\n"); // EUC-JP
! 67: print("{$aa[0]}{$aa[1]}{$aa[2]}\n"); // Converted to EUC-JP
! 68:
! 69:
! 70:
! 71: // Test for object
! 72: echo "== OBJECT TEST ==\n";
! 73: class foo
! 74: {
! 75: public $s1;
! 76: public $s2;
! 77: public $s3;
! 78:
! 79: function foo()
! 80: {
! 81: global $sjis, $jis, $euc_jp;
! 82:
! 83: $this->s1 = $euc_jp;
! 84: $this->s2 = $euc_jp;
! 85: $this->s3 = $euc_jp;
! 86: }
! 87: }
! 88:
! 89: class bar
! 90: {
! 91: public $s1;
! 92: public $s2;
! 93: public $s3;
! 94:
! 95: function bar()
! 96: {
! 97: global $sjis, $jis, $euc_jp;
! 98:
! 99: $this->s1 = $euc_jp;
! 100: $this->s2 = $euc_jp;
! 101: $this->s3 = $euc_jp;
! 102: }
! 103: }
! 104:
! 105:
! 106: $o = new foo;
! 107: $oo = $o;
! 108: $encoding = mb_convert_variables('EUC-JP', 'auto', $oo);
! 109: print("$encoding\n"); // EUC-JP
! 110: print("{$oo->s1}{$oo->s2}{$oo->s3}\n"); // Converted to EUC-JP
! 111:
! 112: $o = new bar;
! 113: $oo = $o;
! 114: $encoding = mb_convert_variables('EUC-JP', 'auto', $oo);
! 115: print("$encoding\n"); // EUC-JP
! 116: print("{$oo->s1}{$oo->s2}{$oo->s3}\n"); // Converted to EUC-JP
! 117:
! 118:
! 119: // Test for scaler, array and object
! 120: echo "== SCALER, ARRAY AND OBJECT TEST ==\n";
! 121:
! 122: $s1 = $euc_jp;
! 123: $s2 = $euc_jp;
! 124: $s3 = $euc_jp;
! 125: $aa = $a;
! 126: $oo = $o;
! 127:
! 128: $encoding = mb_convert_variables('EUC-JP', 'auto', $s1, $s2, $s3, $aa, $oo);
! 129: print("$encoding\n"); // EUC-JP
! 130: print("$s1$s2$s3\n"); // Converted to EUC-JP
! 131: print("{$aa[0]}{$aa[1]}{$aa[2]}\n"); // Converted to EUC-JP
! 132: print("{$oo->s1}{$oo->s2}{$oo->s3}\n"); // Converted to EUC-JP
! 133:
! 134:
! 135: ?>
! 136:
! 137: --EXPECT--
! 138: == SCALER TEST ==
! 139: SJIS
! 140: 日本語テキストです。0123456789。
! 141: JIS
! 142: 日本語テキストです。0123456789。
! 143: EUC-JP
! 144: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg==
! 145: EUC-JP
! 146: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg==
! 147: EUC-JP
! 148: 日本語テキストです。0123456789。日本語テキストです。0123456789。日本語テキストです。0123456789。
! 149: == ARRAY TEST ==
! 150: EUC-JP
! 151: 日本語テキストです。0123456789。日本語テキストです。0123456789。日本語テキストです。0123456789。
! 152: EUC-JP
! 153: 日本語テキストです。0123456789。日本語テキストです。0123456789。日本語テキストです。0123456789。
! 154: == OBJECT TEST ==
! 155: EUC-JP
! 156: 日本語テキストです。0123456789。日本語テキストです。0123456789。日本語テキストです。0123456789。
! 157: EUC-JP
! 158: 日本語テキストです。0123456789。日本語テキストです。0123456789。日本語テキストです。0123456789。
! 159: == SCALER, ARRAY AND OBJECT TEST ==
! 160: EUC-JP
! 161: 日本語テキストです。0123456789。日本語テキストです。0123456789。日本語テキストです。0123456789。
! 162: 日本語テキストです。0123456789。日本語テキストです。0123456789。日本語テキストです。0123456789。
! 163: 日本語テキストです。0123456789。日本語テキストです。0123456789。日本語テキストです。0123456789。
! 164:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>