Example #1
0
    /**
     * Test more complex use case.
     */
    public function testGetFormElementsByName2()
    {
        $form = new HtmlFormTag();
        $form->setParentObject(new Document());
        $form->setContent('<form:text id="foo-1" name="bar" value="123"/>
<form:group>
   <form:group>
      <form:text name="bar-2" value="123"/>
      <form:radio id="radio-1" name="bar" value="1" />
   </form:group>
   <form:radio id="radio-2" name="bar" value="2" />
</form:group>
<form:select name="bar" id="select-1">
   <select:option value="1">One</select:option>
   <select:option value="2">Two</select:option>
</form:select>
<form:group>
   <form:text id="foo-4" name="bar" />
</form:group>
<form:button name="submit" value="submit" />');
        $form->onParseTime();
        $form->onAfterAppend();
        $this->assertCount(5, $form->getChildren());
        $actual = $form->getFormElementsByName('bar');
        $this->assertCount(5, $actual);
        $this->assertInstanceOf(TextFieldTag::class, $actual[0]);
        $this->assertEquals('foo-1', $actual[0]->getAttribute('id'));
        $this->assertInstanceOf(RadioButtonTag::class, $actual[1]);
        $this->assertEquals('radio-1', $actual[1]->getAttribute('id'));
        $this->assertInstanceOf(RadioButtonTag::class, $actual[2]);
        $this->assertEquals('radio-2', $actual[2]->getAttribute('id'));
        $this->assertInstanceOf(SelectBoxTag::class, $actual[3]);
        $this->assertEquals('select-1', $actual[3]->getAttribute('id'));
        $this->assertInstanceOf(TextFieldTag::class, $actual[4]);
        $this->assertEquals('foo-4', $actual[4]->getAttribute('id'));
    }