コード例 #1
0
ファイル: ElementTest.php プロジェクト: slkxmail/App
 /**
  * @expectedException InvalidArgumentException
  */
 public function testGetName()
 {
     $element = new Element('test[]');
     $this->assertEquals('test', $element->getInputName());
     $this->assertEquals('test[]', $element->setMultiple(true)->getInputName());
     $element = new Element('test', array(), new \ArrayObject(array('opt1' => 'value')));
     $this->assertEquals('test', $element->getName());
     $this->assertEquals('test', $element->getNameFromMixed(array('name' => 'test')));
     $this->assertEquals('test', $element->getNameFromMixed('test'));
     $this->assertEquals('test', $element->getNameFromMixed($element));
     $element = new Element();
     $this->assertEquals(null, $element->getName());
     $element->setName('name');
     $this->assertEquals('name', $element->getName());
     $element = new Element();
     $this->assertEquals(null, $element->getInputName());
     $this->assertEquals(null, $element->setMultiple(true)->getInputName());
     $element->setName('test_name');
     $this->assertEquals('test_name[]', $element->setMultiple(true)->getInputName());
     $this->assertEquals('test_name', $element->setMultiple(false)->getInputName());
     $fieldset = new Fieldset('fieldset');
     $fieldset->add($element);
     $form = new Fieldset('form[]');
     $form->add($fieldset);
     $this->assertEquals('fieldset[test_name]', $element->setMultiple(false)->getInputName());
     $this->assertEquals('fieldset[test_name][]', $element->setMultiple(true)->getInputName());
     $form->setMultiple(true);
     $this->assertEquals('form[][fieldset][test_name]', $element->setMultiple(false)->getInputName());
     $this->assertEquals('form[][fieldset][test_name][]', $element->setMultiple(true)->getInputName());
     $form->setMultiple(false);
     $fieldset->setMultiple(true);
     $this->assertEquals('fieldset[][test_name]', $element->setMultiple(false)->getInputName());
     $this->assertEquals('fieldset[][test_name][]', $element->setMultiple(true)->getInputName());
     $form->setMultiple(true);
     $this->assertEquals('form[][fieldset][][test_name]', $element->setMultiple(false)->getInputName());
     $this->assertEquals('form[][fieldset][][test_name][]', $element->setMultiple(true)->getInputName());
     // exception
     $this->assertEquals('test', $element->getNameFromMixed(new \stdClass()));
 }
コード例 #2
0
ファイル: Factory.php プロジェクト: slkxmail/App
 /**
  * Takes a list of fieldset specifications, creates the fieldsets, and injects them into the master fieldset
  *
  * @param  array|Traversable|ArrayAccess                 $fieldsets
  * @param \App\Form\Fieldset $masterFieldset
  * @param  string                                        $method Method invoking this one (for exception messages)
  * @return void
  */
 public function prepareAndInjectFieldsets($fieldsets, Fieldset $masterFieldset, $method)
 {
     $fieldsets = $this->validateSpecification($fieldsets, $method);
     foreach ($fieldsets as $fieldsetSpecification) {
         $flags = isset($fieldsetSpecification['flags']) ? $fieldsetSpecification['flags'] : array();
         $spec = isset($fieldsetSpecification['spec']) ? $fieldsetSpecification['spec'] : array();
         $fieldset = $this->createFieldset($spec);
         $masterFieldset->add($fieldset, $flags);
     }
 }