![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/phpgt/dom/test/phpunit/ |
<?php namespace Gt\Dom\Test; use Gt\Dom\HTMLDocument; use Gt\Dom\Test\Helper\Helper; use PHPUnit\Framework\TestCase; class ChildNodeTest extends TestCase { public function testBefore() { $document = new HTMLDocument(Helper::HTML_MORE); $element = $document->getElementById("who"); $currentBefore = $element->previousSibling; $newElement = $document->createElement("div"); $element->before($newElement); $this->assertSame($newElement, $element->previousSibling); $this->assertSame($newElement, $currentBefore->nextSibling); } public function testAfter() { $document = new HTMLDocument(Helper::HTML_MORE); $element = $document->getElementById("who"); $currentAfter = $element->nextSibling; $newElement = $document->createElement("div"); $element->after($newElement); $this->assertSame($newElement, $element->nextSibling); $this->assertSame($newElement, $currentAfter->previousSibling); } public function testReplaceWith() { $document = new HTMLDocument(Helper::HTML_MORE); $element = $document->getElementById("who"); $currentBefore = $element->previousSibling; $newElement = $document->createElement("div"); $element->replaceWith($newElement); $this->assertSame($newElement, $currentBefore->nextSibling); } public function testReplaceWithInSameDocument() { $document = new HTMLDocument(Helper::HTML_MORE); $h2 = $document->getElementById("who"); $beforeH2 = $h2->previousSibling; $h1 = $document->firstChild; $h2->replaceWith($h1); $this->assertSame($h1, $beforeH2->nextSibling); $this->assertNotSame($h1, $document->firstChild); } /** * @see https://github.com/PhpGt/Dom/wiki/Classes-that-make-up-DOM#childnode */ public function testDocsReplaceWith() { $document = new HTMLDocument(Helper::DOCS_CHILDNODE_REPLACEWITH); // Create a fake POST array to keep test as similar to docs as possible. $_POST = $_POST ?? []; foreach(["A", "B", "C"] as $order) { $_POST["order"] = $order; $form = $document->forms[0]; $firstButton = $form->firstElementChild; $clickedButton = $form->querySelector("[value='" . $_POST["order"] . "']"); if($firstButton !== $clickedButton) { // Move clicked button before first button. $firstButton->before($clickedButton); } $this->assertSame($clickedButton, $form->firstElementChild); $this->assertCount(3, $form->children); } } }