2 // vim: foldmethod=marker
4 * Ethna_Plugin_Validator_Required_Test.php
8 * Ethna_Plugin_Validator_Requiredクラスのテストケース
12 class Ethna_Plugin_Validator_Required_Test extends Ethna_UnitTestBase
18 $ctl =& Ethna_Controller::getInstance();
19 $plugin =& $ctl->getPlugin();
20 $this->vld = $plugin->getPlugin('Validator', 'Required');
23 // {{{ test form type text.
24 function test_formtext()
26 // required => false でテキストフォームに文字列を入力する場合
28 'type' => VAR_TYPE_STRING,
30 'form_type' => FORM_TYPE_TEXT,
32 $this->vld->af->setDef('namae_string', $form_string);
34 $pear_error = $this->vld->validate('namae_string', 10, $form_string);
35 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
37 $pear_error = $this->vld->validate('namae_string', '', $form_string);
38 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
40 $pear_error = $this->vld->validate('namae_string', false, $form_string);
41 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
43 $pear_error = $this->vld->validate('namae_string', null, $form_string);
44 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
46 // required => true でテキストフォームに文字列を入力する場合
48 'type' => VAR_TYPE_STRING,
50 'form_type' => FORM_TYPE_TEXT,
51 'error' => 'フォーム値必須エラー'
53 $this->vld->af->setDef('namae_string', $form_string);
55 $pear_error = $this->vld->validate('namae_string', 10, $form_string);
56 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
59 $pear_error = $this->vld->validate('namae_string', '', $form_string);
60 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
61 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
62 $this->assertEqual($form_string['error'], $pear_error->getMessage());
64 $pear_error = $this->vld->validate('namae_string', false, $form_string);
65 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
66 $this->assertEqual($form_string['error'], $pear_error->getMessage());
68 $pear_error = $this->vld->validate('namae_string', null, $form_string);
69 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
70 $this->assertEqual($form_string['error'], $pear_error->getMessage());
74 // {{{ test form type select
75 function test_formselect()
78 'type' => VAR_TYPE_STRING,
80 'form_type' => FORM_TYPE_SELECT,
81 'error' => 'フォーム値必須エラー'
83 $this->vld->af->setDef('namae_select', $form_select);
85 $pear_error = $this->vld->validate('namae_select', 'selection', $form_select);
86 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
88 $pear_error = $this->vld->validate('namae_select', '', $form_select);
89 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
91 $pear_error = $this->vld->validate('namae_select', false, $form_select);
92 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
94 $pear_error = $this->vld->validate('namae_select', null, $form_select);
95 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
98 'type' => VAR_TYPE_STRING,
100 'form_type' => FORM_TYPE_SELECT,
101 'error' => 'フォーム値必須エラー'
103 $this->vld->af->setDef('namae_select', $form_select);
105 $pear_error = $this->vld->validate('namae_select', 'selection', $form_select);
106 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
109 $pear_error = $this->vld->validate('namae_select', '', $form_select);
110 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
111 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
112 $this->assertEqual($form_select['error'], $pear_error->getMessage());
114 $pear_error = $this->vld->validate('namae_select', false, $form_select);
115 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
116 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
117 $this->assertEqual($form_select['error'], $pear_error->getMessage());
119 $pear_error = $this->vld->validate('namae_select', null, $form_select);
120 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
121 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
122 $this->assertEqual($form_select['error'], $pear_error->getMessage());
126 // {{{ test form type radio
127 function test_formradio()
130 'type' => VAR_TYPE_STRING,
132 'form_type' => FORM_TYPE_RADIO,
133 'error' => 'フォーム値必須エラー'
135 $this->vld->af->setDef('namae_radio', $form_radio);
137 $pear_error = $this->vld->validate('namae_radio', 'radio', $form_radio);
138 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
140 $pear_error = $this->vld->validate('namae_radio', '', $form_radio);
141 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
143 $pear_error = $this->vld->validate('namae_radio', false, $form_radio);
144 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
146 $pear_error = $this->vld->validate('namae_radio', null, $form_radio);
147 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
151 'type' => VAR_TYPE_STRING,
153 'form_type' => FORM_TYPE_RADIO,
154 'error' => 'フォーム値必須エラー'
156 $this->vld->af->setDef('namae_radio', $form_radio);
158 $pear_error = $this->vld->validate('namae_radio', 'radio', $form_radio);
159 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
162 $pear_error = $this->vld->validate('namae_radio', '', $form_radio);
163 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
164 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
165 $this->assertEqual($form_radio['error'], $pear_error->getMessage());
167 $pear_error = $this->vld->validate('namae_radio', false, $form_radio);
168 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
169 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
170 $this->assertEqual($form_radio['error'], $pear_error->getMessage());
172 $pear_error = $this->vld->validate('namae_radio', null, $form_radio);
173 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
174 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
175 $this->assertEqual($form_radio['error'], $pear_error->getMessage());
179 // {{{ test form type checkbox
180 function test_formcheckbox()
182 $form_checkbox = array(
184 'form_type' => FORM_TYPE_CHECKBOX,
185 'type' => array(VAR_TYPE_BOOLEAN),
186 'error' => 'フォーム値必須エラー',
188 $this->vld->af->setDef('namae_checkbox', $form_checkbox);
196 $pear_error = $this->vld->validate('namae_checkbox', $checks, $form_checkbox);
197 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
200 $pear_error = $this->vld->validate('namae_checkbox', $checks, $form_checkbox);
201 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
203 $pear_error = $this->vld->validate('namae_checkbox', null, $form_checkbox);
204 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
206 $pear_error = $this->vld->validate('namae_checkbox', false, $form_checkbox);
207 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
210 $form_checkbox = array(
212 'form_type' => FORM_TYPE_CHECKBOX,
213 'type' => array(VAR_TYPE_BOOLEAN),
214 'error' => 'フォーム値必須エラー',
216 $this->vld->af->setDef('namae_checkbox', $form_checkbox);
224 $pear_error = $this->vld->validate('namae_checkbox', $checks, $form_checkbox);
225 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
229 $pear_error = $this->vld->validate('namae_checkbox', $checks, $form_checkbox);
230 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
231 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
232 $this->assertEqual($form_checkbox['error'], $pear_error->getMessage());
234 $pear_error = $this->vld->validate('namae_checkbox', null, $form_checkbox);
235 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
236 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
237 $this->assertEqual($form_checkbox['error'], $pear_error->getMessage());
239 $pear_error = $this->vld->validate('namae_checkbox', false, $form_checkbox);
240 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
241 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
242 $this->assertEqual($form_checkbox['error'], $pear_error->getMessage());
245 $form_checkbox = array(
247 'form_type' => FORM_TYPE_CHECKBOX,
248 'type' => array(VAR_TYPE_BOOLEAN),
249 'error' => 'フォーム値必須エラー',
253 $this->vld->af->setDef('namae_checkbox', $form_checkbox);
261 $pear_error = $this->vld->validate('namae_checkbox', $checks, $form_checkbox);
262 $this->assertFalse(is_a($pear_error, 'Ethna_Error'));
264 // 何らかの処理でfalseに書き換えてしまった場合はエラー
271 $pear_error = $this->vld->validate('namae_checkbox', $checks, $form_checkbox);
272 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
273 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
274 $this->assertEqual($form_checkbox['error'], $pear_error->getMessage());
282 $pear_error = $this->vld->validate('namae_checkbox', $checks, $form_checkbox);
283 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
284 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
285 $this->assertEqual($form_checkbox['error'], $pear_error->getMessage());
294 $pear_error = $this->vld->validate('namae_checkbox', $checks, $form_checkbox);
295 $this->assertTrue(is_a($pear_error, 'Ethna_Error'));
296 $this->assertEqual(E_FORM_REQUIRED, $pear_error->getCode());
297 $this->assertEqual($form_checkbox['error'], $pear_error->getMessage());