OSDN Git Service

- followed ini file name changes.
[ethna/ethna.git] / test / Plugin / Validator / Ethna_Plugin_Validator_Strmincompat_Test.php
1 <?php
2 // vim: foldmethod=marker
3 /**
4  *  Ethna_Plugin_Validator_Strmincompat_Test.php
5  */
6
7 /**
8  *  Ethna_Plugin_Validator_Strmincompatクラスのテストケース
9  *
10  *  @access public
11  */
12 class Ethna_Plugin_Validator_Strmincompat_Test extends Ethna_UnitTestBase
13 {
14     var $vld;
15     var $local_ctl;
16
17     function setUp()
18     {
19         $ctl =& new Ethna_Controller();
20         $ctl->setClientEncoding('EUC-JP');
21         $ctl->action_form =& new Ethna_ActionForm($ctl);
22         $this->local_ctl =& $ctl;
23         $plugin =& $ctl->getPlugin();
24         $this->vld = $plugin->getPlugin('Validator', 'Strmincompat');
25     }
26
27     function tearDown()
28     {
29         unset($GLOBALS['_Ethna_controller']);
30     }
31
32     // {{{ test min str (compatible class, EUC-JP)
33     function test_min_str_compat_euc()
34     {
35         if (extension_loaded('mbstring')) {
36             $form_str = array(
37                               'type'          => VAR_TYPE_STRING,
38                               'required'      => true,
39                               'strmincompat'  => '4',  // 半角4、全角2文字
40                         );
41             $this->vld->af->setDef('namae_str', $form_str);
42     
43             //    ascii.
44             $input_str = 'abcd';
45             $pear_error = $this->vld->validate('namae_str', $input_str, $form_str);
46             $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
47     
48             $error_str = 'abc';
49             $pear_error = $this->vld->validate('namae_str', $error_str, $form_str);
50             $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
51             $this->assertEqual(E_FORM_MIN_STRING,$pear_error->getCode());
52
53             //    multibyte string
54             $input_str = 'あい';
55             $input_str_euc = mb_convert_encoding($input_str, 'EUC-JP', 'UTF-8');
56             $pear_error = $this->vld->validate('namae_str', $input_str_euc, $form_str);
57             $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
58     
59             $error_str = 'あ';
60             $error_str_euc = mb_convert_encoding($error_str, 'EUC-JP', 'UTF-8');
61             $pear_error = $this->vld->validate('namae_str', $error_str_euc, $form_str);
62             $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
63             $this->assertEqual(E_FORM_MIN_STRING,$pear_error->getCode());
64
65         } else {
66             echo " ... skipped because mbstring extension is not installed.";
67         }
68
69         //  TODO: Error Message Test.
70     } 
71     // }}}
72
73     // {{{ test min str (compatible class, SJIS)
74     function test_min_str_compat_sjis()
75     {
76         if (extension_loaded('mbstring')) {
77
78             $this->local_ctl->setClientEncoding('SJIS');
79
80             $form_str = array(
81                               'type'          => VAR_TYPE_STRING,
82                               'required'      => true,
83                               'strmincompat'  => '4',  // 半角4、全角2文字
84                         );
85             $this->vld->af->setDef('namae_str', $form_str);
86     
87             //    ascii.
88             $input_str = 'abcd';
89             $pear_error = $this->vld->validate('namae_str', $input_str, $form_str);
90             $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
91     
92             $error_str = 'abc';
93             $pear_error = $this->vld->validate('namae_str', $error_str, $form_str);
94             $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
95             $this->assertEqual(E_FORM_MIN_STRING,$pear_error->getCode());
96
97             //    multibyte string(sjis)
98             $input_str = 'あい';
99             $input_str_sjis = mb_convert_encoding($input_str, 'SJIS', 'UTF-8');
100             $pear_error = $this->vld->validate('namae_str', $input_str_sjis, $form_str);
101             $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
102     
103             $error_str = 'あ';
104             $error_str_sjis = mb_convert_encoding($error_str, 'SJIS', 'UTF-8');
105             $pear_error = $this->vld->validate('namae_str', $error_str_sjis, $form_str);
106             $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
107             $this->assertEqual(E_FORM_MIN_STRING,$pear_error->getCode());
108
109         } else {
110             echo " ... skipped because mbstring extension is not installed.";
111         }
112
113         //  TODO: Error Message Test.
114     } 
115     // }}}
116 }
117