コード例 #1
0
ファイル: FormTest.php プロジェクト: vegas-cmf/forms
 public function testArrayedValues()
 {
     $model = new FakeModel();
     $values = array('integer' => '3 14', 'test1' => array(2 => 'foo', 3 => 'bar'), 'test2' => array('en' => 'baz', 'nl' => 123.4), 'test3' => array(array(0 => 'doubleArrayed', 1 => array(0 => 'tripleArrayed'))), 'not_in_form' => array('some_value'));
     $form = new Form();
     $text = new Text('integer');
     $text->addFilter('int');
     $form->add($text);
     $form->add(new Text('test1[]'));
     $form->add(new Text('test1[]'));
     $text = new Text('test2[en]');
     $text->addValidator(new PresenceOf());
     $form->add($text);
     $text = new Text('test2[nl]');
     $text->addFilter('int');
     $form->add($text);
     $form->add(new Text('test3[0][]'));
     $form->add(new Text('test3[0][1][]'));
     $form->bind($values, $model);
     $this->assertTrue($form->isValid());
     $this->assertTrue(!isset($model->not_in_form));
     $this->assertEquals('3 14', $form->getValue('integer'));
     $this->assertEquals(314, $model->integer);
     $this->assertEquals($model->test1[0], $form->getValue('test1[2]'));
     $this->assertEquals($model->test1[1], $form->getValue('test1[3]'));
     $this->assertNull($form->getValue('test1[]'));
     $this->assertNull($form->getValue('test1[1]'));
     $this->assertEquals($model->test2['en'], $form->getValue('test2[en]'));
     $this->assertEquals(123.4, $form->getValue('test2[nl]'));
     $this->assertEquals(1234, $model->test2['nl']);
     $this->assertNull($form->getValue('test2[en][notexsiting]'));
     $this->assertEquals($model->test3[0][0], $form->getValue('test3[0][0]'));
     $this->assertEquals($model->test3[0][1][0], $form->getValue('test3[0][1][0]'));
 }