Dustin Wilson
2 years ago
7 changed files with 110 additions and 16 deletions
@ -0,0 +1,48 @@ |
|||
<?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, |
|||
Node |
|||
}; |
|||
|
|||
|
|||
/** @covers \MensBeam\HTML\DOM\Attr */ |
|||
class TestAttr extends \PHPUnit\Framework\TestCase { |
|||
public function testProperty_name(): void { |
|||
$d = new Document('<!DOCTYPE html><html><body ook="ook" poop💩="poop💩"><svg id="eek"></svg></body></html>', 'utf-8'); |
|||
$body = $d->body; |
|||
$svg = $d->getElementById('eek'); |
|||
$svg->setAttributeNS(Node::XMLNS_NAMESPACE, 'xmlns:xlink', Node::XLINK_NAMESPACE); |
|||
|
|||
// HTML name |
|||
$this->assertSame('ook', $body->getAttributeNode('ook')->name); |
|||
// Coerced name |
|||
$this->assertSame('poop💩', $body->getAttributeNode('poop💩')->name); |
|||
// Foreign attribute name |
|||
$this->assertSame('xlink', $svg->getAttributeNodeNS(Node::XMLNS_NAMESPACE, 'xlink')->name); |
|||
} |
|||
|
|||
public function testProperty_prefix(): void { |
|||
$d = new Document('<!DOCTYPE html><html><body><svg id="eek"></svg></body></html>', 'utf-8'); |
|||
$svg = $d->getElementById('eek'); |
|||
$svg->setAttributeNS(Node::XMLNS_NAMESPACE, 'xmlns:xlink', Node::XLINK_NAMESPACE); |
|||
$svg->setAttributeNS('https://poop.poop', 'poop💩:poop💩', 'poop💩'); |
|||
|
|||
// Foreign attribute name |
|||
$this->assertSame('xmlns', $svg->getAttributeNodeNS(Node::XMLNS_NAMESPACE, 'xlink')->prefix); |
|||
$this->assertSame('poop💩', $svg->getAttributeNodeNS('https://poop.poop', 'poop💩')->prefix); |
|||
} |
|||
|
|||
public function testProperty_specified(): void { |
|||
$d = new Document('<!DOCTYPE html><html><body ook="ook"></body></html>', 'utf-8'); |
|||
$this->assertTrue($d->body->getAttributeNode('ook')->specified); |
|||
} |
|||
} |
@ -0,0 +1,45 @@ |
|||
<?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, |
|||
HTMLElement, |
|||
HTMLPreElement, |
|||
HTMLUnknownElement |
|||
}; |
|||
|
|||
|
|||
/** @covers \MensBeam\HTML\DOM\Inner\Document */ |
|||
class TestInnerDocument extends \PHPUnit\Framework\TestCase { |
|||
/** |
|||
* @covers \MensBeam\HTML\DOM\Inner\Document::getWrapperNode |
|||
* |
|||
* @covers \MensBeam\HTML\DOM\Document::__construct |
|||
* @covers \MensBeam\HTML\DOM\Document::createElement |
|||
* @covers \MensBeam\HTML\DOM\DOMImplementation::__construct |
|||
* @covers \MensBeam\HTML\DOM\Element::__construct |
|||
* @covers \MensBeam\HTML\DOM\Node::__construct |
|||
* @covers \MensBeam\HTML\DOM\Inner\Document::__construct |
|||
* @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_getWrapperNode(): void { |
|||
// Everything tests this method thoroughly except some element interfaces. |
|||
$d = new Document(); |
|||
$this->assertSame(HTMLUnknownElement::class, $d->createElement('applet')::class); |
|||
$this->assertSame(HTMLElement::class, $d->createElement('noembed')::class); |
|||
$this->assertSame(HTMLPreElement::class, $d->createElement('xmp')::class); |
|||
$this->assertSame(HTMLPreElement::class, $d->createElement('pre')::class); |
|||
$this->assertSame(HTMLElement::class, $d->createElement('p-icon')::class); |
|||
} |
|||
} |
Loading…
Reference in new issue