You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.9 KiB
94 lines
3.9 KiB
3 years ago
|
<?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\{
|
||
|
Attr,
|
||
|
Document,
|
||
|
HTMLElement
|
||
|
};
|
||
|
|
||
|
|
||
|
/** @covers \MensBeam\HTML\DOM\Collection */
|
||
|
class TestCollection extends \PHPUnit\Framework\TestCase {
|
||
|
/**
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::current
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::item
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::key
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::next
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::offsetExists
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::rewind
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::valid
|
||
|
*
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Document::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Document::__get_body
|
||
|
* @covers \MensBeam\HTML\DOM\Document::load
|
||
|
* @covers \MensBeam\HTML\DOM\DOMImplementation::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Element::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Node::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Node::__get_childNodes
|
||
|
* @covers \MensBeam\HTML\DOM\Node::getInnerDocument
|
||
|
* @covers \MensBeam\HTML\DOM\Node::hasChildNodes
|
||
|
* @covers \MensBeam\HTML\DOM\Node::postParsingTemplatesFix
|
||
|
* @covers \MensBeam\HTML\DOM\Inner\Document::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Inner\Document::__get_xpath
|
||
|
* @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 testIteration(): void {
|
||
|
$d = new Document('<!DOCTYPE html><html><body><br><br><br><br><br></body></html>');
|
||
|
$body = $d->body;
|
||
|
$children = $body->childNodes;
|
||
|
foreach ($children as $key => $child) {
|
||
|
$this->assertTrue($child instanceof HTMLElement);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::offsetGet
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::offsetUnset
|
||
|
*
|
||
|
* @covers \MensBeam\HTML\DOM\Attr::__get_value
|
||
|
* @covers \MensBeam\HTML\DOM\Collection::item
|
||
|
* @covers \MensBeam\HTML\DOM\Document::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Document::__get_body
|
||
|
* @covers \MensBeam\HTML\DOM\Document::load
|
||
|
* @covers \MensBeam\HTML\DOM\DOMImplementation::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Element::__get_attributes
|
||
|
* @covers \MensBeam\HTML\DOM\NamedNodeMap::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\NamedNodeMap::item
|
||
|
* @covers \MensBeam\HTML\DOM\Node::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Node::getInnerDocument
|
||
|
* @covers \MensBeam\HTML\DOM\Node::hasChildNodes
|
||
|
* @covers \MensBeam\HTML\DOM\Node::postParsingTemplatesFix
|
||
|
* @covers \MensBeam\HTML\DOM\Inner\Document::__construct
|
||
|
* @covers \MensBeam\HTML\DOM\Inner\Document::__get_xpath
|
||
|
* @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_offsetSet_offsetUnset(): void {
|
||
|
$d = new Document('<!DOCTYPE html><html><body a="ook" b="eek" c="ook" d="eek" e="ook"></body></html>');
|
||
|
$body = $d->body;
|
||
|
$attributes = $body->attributes;
|
||
|
$attributes[0] = 'eek';
|
||
|
$this->assertSame('ook', $attributes[0]->value);
|
||
|
unset($attributes[2]);
|
||
|
$this->assertSame('ook', $attributes[2]->value);
|
||
|
}
|
||
|
}
|