1--TEST--
2mb_internal_encoding()
3--SKIPIF--
4<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
5--FILE--
6<?php
7// TODO:
8ini_set('include_path', __DIR__);
9include_once('common.inc');
10
11// EUC-JP
12$r = mb_internal_encoding('EUC-JP');
13($r === TRUE) ? print "OK_EUC-JP_SET\n" : print "NG_EUC-JP_SET\n";
14$enc = mb_internal_encoding();
15print "$enc\n";
16
17// UTF-8
18$r = mb_internal_encoding('UTF-8');
19($r === TRUE) ? print "OK_UTF-8_SET\n" : print "NG_UTF-8_SET\n";
20$enc = mb_internal_encoding();
21print "$enc\n";
22
23// ASCII
24$r = mb_internal_encoding('ASCII');
25($r === TRUE) ? print "OK_ASCII_SET\n" : print "NG_ASCII_SET\n";
26$enc = mb_internal_encoding();
27print "$enc\n";
28
29// Invalid Parameter
30print "== INVALID PARAMETER ==\n";
31
32// Note: Other than string type, PHP raises Warning
33$r = mb_internal_encoding('BAD');
34($r === false) ? print "OK_BAD_SET\n" : print "NG_BAD_SET\n";
35$enc = mb_internal_encoding();
36print "$enc\n";
37
38$r = mb_internal_encoding($t_ary);
39($r === NULL) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n";
40$enc = mb_internal_encoding();
41print "$enc\n";
42
43$r = mb_internal_encoding($t_obj);
44($r === NULL) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n";
45$enc = mb_internal_encoding();
46print "$enc\n";
47
48?>
49--EXPECTF--
50OK_EUC-JP_SET
51EUC-JP
52OK_UTF-8_SET
53UTF-8
54OK_ASCII_SET
55ASCII
56== INVALID PARAMETER ==
57
58Warning: mb_internal_encoding(): Unknown encoding "BAD" in %s on line %d
59OK_BAD_SET
60ASCII
61
62Warning: mb_internal_encoding() expects parameter 1 to be string, array given in %s on line %d
63OK_BAD_ARY_SET
64ASCII
65
66Warning: mb_internal_encoding() expects parameter 1 to be string, object given in %s on line %d
67OK_BAD_OBJ_SET
68ASCII
69