/** * 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')); }