OSDN Git Service

42408644a06ee4dcedc156ca624aedd0794ef3f4
[ethna/ethna.git] / test / Plugin / Validator / Ethna_Plugin_Validator_Strmaxcompat_Test.php
1 <?php
2 // vim: foldmethod=marker
3 /**
4  *  Ethna_Plugin_Validator_Strmaxcompat_Test.php
5  */
6
7 /**
8  *  Ethna_Plugin_Validator_Strmaxcompatクラスのテストケース
9  *
10  *  @access public
11  */
12 class Ethna_Plugin_Validator_Strmaxcompat_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', 'Strmaxcompat');
25     }
26
27     function tearDown()
28     {
29         unset($GLOBALS['_Ethna_controller']);
30     }
31
32     // {{{ test max str (compatible class, EUC-JP)
33     function test_max_str_compat_euc()
34     {
35         if (extension_loaded('mbstring')) {
36             $form_str = array(
37                               'type'          => VAR_TYPE_STRING,
38                               'required'      => true,
39                               'strmaxcompat'  => '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 = 'abcde';
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_MAX_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_MAX_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 max str (compatible class, SJIS)
74     function test_max_str_compat_sjis()
75     {
76         if (extension_loaded('mbstring')) {
77
78             $this->local_ctl->setClientEncoding('SJIS');
79             $form_str = array(
80                               'type'          => VAR_TYPE_STRING,
81                               'required'      => true,
82                               'strmaxcompat'  => '4',  // 半角4、全角2文字
83                         );
84             $this->vld->af->setDef('namae_str', $form_str);
85     
86             //    ascii.
87             $input_str = 'abcd';
88             $pear_error = $this->vld->validate('namae_str', $input_str, $form_str);
89             $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
90     
91             $error_str = 'abcde';
92             $pear_error = $this->vld->validate('namae_str', $error_str, $form_str);
93             $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
94             $this->assertEqual(E_FORM_MAX_STRING,$pear_error->getCode());
95
96             //    multibyte string
97             $input_str = 'あい';
98             $input_str_sjis = mb_convert_encoding($input_str, 'SJIS', 'UTF-8');
99             $pear_error = $this->vld->validate('namae_str', $input_str_sjis, $form_str);
100             $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
101     
102             $error_str = 'あいう';
103             $error_str_sjis = mb_convert_encoding($error_str, 'SJIS', 'UTF-8');
104             $pear_error = $this->vld->validate('namae_str', $error_str_sjis, $form_str);
105             $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
106             $this->assertEqual(E_FORM_MAX_STRING,$pear_error->getCode());
107
108         } else {
109             echo " ... skipped because mbstring extension is not installed.";
110         }
111
112         //  TODO: Error Message Test.
113     } 
114     // }}}
115 }
116
117 ?>