Dustin Wilson
3 years ago
9 changed files with 138 additions and 56 deletions
@ -0,0 +1,63 @@ |
|||
<?php |
|||
/** |
|||
* @license MIT |
|||
* Copyright 2017 Dustin Wilson, J. King, et al. |
|||
* See LICENSE and AUTHORS files for details |
|||
*/ |
|||
|
|||
declare(strict_types=1); |
|||
namespace MensBeam\HTML\DOM\TestCase; |
|||
|
|||
use MensBeam\HTML\DOM\{ |
|||
Document, |
|||
DOMException, |
|||
Element, |
|||
Node, |
|||
Text, |
|||
XMLDocument |
|||
}; |
|||
|
|||
|
|||
/** @covers \MensBeam\HTML\DOM\Element */ |
|||
class TestElement extends \PHPUnit\Framework\TestCase { |
|||
/** |
|||
* @covers \MensBeam\HTML\DOM\Element::getAttributeNames |
|||
* |
|||
* @covers \MensBeam\HTML\DOM\Collection::__construct |
|||
* @covers \MensBeam\HTML\DOM\Collection::item |
|||
* @covers \MensBeam\HTML\DOM\Document::__construct |
|||
* @covers \MensBeam\HTML\DOM\Document::load |
|||
* @covers \MensBeam\HTML\DOM\DocumentOrElement::getElementsByTagName |
|||
* @covers \MensBeam\HTML\DOM\DOMImplementation::__construct |
|||
* @covers \MensBeam\HTML\DOM\Element::__construct |
|||
* @covers \MensBeam\HTML\DOM\HTMLCollection::item |
|||
* @covers \MensBeam\HTML\DOM\HTMLCollection::offsetGet |
|||
* @covers \MensBeam\HTML\DOM\Node::__construct |
|||
* @covers \MensBeam\HTML\DOM\Node::getInnerDocument |
|||
* @covers \MensBeam\HTML\DOM\Node::hasChildNodes |
|||
* @covers \MensBeam\HTML\DOM\Inner\Document::__construct |
|||
* @covers \MensBeam\HTML\DOM\Inner\Document::getWrapperNode |
|||
* @covers \MensBeam\HTML\DOM\Inner\NodeCache::get |
|||
* @covers \MensBeam\HTML\DOM\Inner\NodeCache::has |
|||
* @covers \MensBeam\HTML\DOM\Inner\NodeCache::key |
|||
* @covers \MensBeam\HTML\DOM\Inner\NodeCache::set |
|||
* @covers \MensBeam\HTML\DOM\Inner\Reflection::createFromProtectedConstructor |
|||
*/ |
|||
public function testMethod_getAttributeNames() { |
|||
$d = new Document('<!DOCTYPE html><html><body><div id="ook" class="eek" ack="ack" foo="foo" bar="bar"></div></body></html>'); |
|||
$div = $d->getElementsByTagName('div')[0]; |
|||
$this->assertSame([ 'id', 'class', 'ack', 'foo', 'bar' ], $div->getAttributeNames()); |
|||
} |
|||
|
|||
|
|||
public function testMethod_getAttributeNS() { |
|||
$d = new Document('<!DOCTYPE html><html><head></head><body><svg xmlns="' . Node::SVG_NAMESPACE . '" xmlns:xlink="' . Node::XLINK_NAMESPACE . '"></svg></body></html>'); |
|||
$svg = $d->getElementsByTagNameNS(Node::SVG_NAMESPACE, 'svg')[0]; |
|||
// Parser doesn't parse xmlns prefixed attributes except xlink, so let's add one manually instead to test coercion. |
|||
$svg->setAttributeNS(Node::XMLNS_NAMESPACE, 'xmlns:poop💩', 'https://poop💩.poop'); |
|||
|
|||
$this->assertSame(Node::SVG_NAMESPACE, $svg->getAttributeNS(Node::XMLNS_NAMESPACE, 'xmlns')); |
|||
$this->assertSame(Node::XLINK_NAMESPACE, $svg->getAttributeNS(Node::XMLNS_NAMESPACE, 'xlink')); |
|||
$this->assertSame('https://poop💩.poop', $svg->getAttributeNS(Node::XMLNS_NAMESPACE, 'poop💩')); |
|||
} |
|||
} |
Loading…
Reference in new issue