public function testGetChildNodes() { $doc = new TemplateTag(); $doc->setContent('<html:placeholder name="foo" /><html:placeholder name="foo" /><html:placeholder name="foo" />'); $doc->onParseTime(); /* @var $placeHolders DomNode[] */ $placeHolders = $doc->getChildNodes('name', 'foo', PlaceHolderTag::class); $this->assertEquals(3, count($placeHolders)); $this->assertEquals('foo', $placeHolders[0]->getAttribute('name')); // ensure that a reference is returned instead of a clone or copy $children = $doc->getChildren(); $keys = array_keys($children); for ($i = 0; $i < 3; $i++) { $this->assertEquals(spl_object_hash($placeHolders[$i]), spl_object_hash($children[$keys[$i]])); } }