示例#1
0
    /**
     * Test more complex form structure.
     */
    public function testGetFormElementsByTagName3()
    {
        $form = new HtmlFormTag();
        $form->setParentObject(new Document());
        $form->setContent('<form:text id="foo-1" name="bar-1" value="123"/>
<form:group>
   <form:group>
      <form:text id="foo-2" name="bar-2" />
   </form:group>
</form:group>
<form:radio name="bar-3" value="1" />
<form:group>
   <form:text id="foo-4" name="bar-4" />
</form:group>
<form:button name="submit" value="submit" />');
        $form->onParseTime();
        $form->onAfterAppend();
        $this->assertCount(5, $form->getChildren());
        $actual = $form->getFormElementsByTagName('form:text');
        $this->assertCount(3, $actual);
        foreach ($actual as $field) {
            $this->assertInstanceOf(TextFieldTag::class, $field);
            $this->assertNotEmpty($field->getAttribute('name'));
        }
        $this->assertEquals('foo-1', $actual[0]->getAttribute('id'));
        $this->assertEquals('foo-2', $actual[1]->getAttribute('id'));
        $this->assertEquals('foo-4', $actual[2]->getAttribute('id'));
    }