/** * @covers Acreage::Form::add_field */ public function test_add_field_adds_a_field_with_a_default_if_default_set_on_form() { $mock_config = array('validator' => 'config.validator'); $subject = new Form($mock_config); $resp = $subject->set_defaults(array('name' => 'default'))->add_field('name', 'text'); $this->assertSame($subject, $resp); $this->assertInstanceOf('Acreage\\Fields\\Input', $subject->fields[0]); $this->assertSame($subject->defaults, array('name' => 'default')); $field = $subject->fields[0]; $this->assertSame('name', $field->name); $this->assertSame('text', $field->type); $this->assertSame('default', $field->value); }
/** * create the form from an array of data */ public static function create_from_data($config, $data) { $form = new Form($config); if (array_key_exists('attributes', $data)) { $form->set_attributes($data['attributes']); } if (array_key_exists('defaults', $data)) { $form->set_defaults($data['defaults']); } foreach ($data['fields'] as $field_src) { $field = array_merge(array('options' => array(), 'constraints' => array()), $field_src); $form->add_field($field['name'], $field['type'], $field['options'], $field['constraints']); } return $form; }