summaryrefslogtreecommitdiff
path: root/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php')
-rw-r--r--vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php54
1 files changed, 54 insertions, 0 deletions
diff --git a/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php
new file mode 100644
index 000000000..8f1a6d547
--- /dev/null
+++ b/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/Migrations/RemoveEmptyFilter.php
@@ -0,0 +1,54 @@
+<?php declare(strict_types=1);
+/*
+ * This file is part of PHPUnit.
+ *
+ * (c) Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PHPUnit\TextUI\XmlConfiguration;
+
+use function sprintf;
+use DOMDocument;
+use DOMElement;
+
+/**
+ * @internal This class is not covered by the backward compatibility promise for PHPUnit
+ */
+final class RemoveEmptyFilter implements Migration
+{
+ /**
+ * @throws MigrationException
+ */
+ public function migrate(DOMDocument $document): void
+ {
+ $whitelist = $document->getElementsByTagName('whitelist')->item(0);
+
+ if ($whitelist instanceof DOMElement) {
+ $this->ensureEmpty($whitelist);
+ $whitelist->parentNode->removeChild($whitelist);
+ }
+
+ $filter = $document->getElementsByTagName('filter')->item(0);
+
+ if ($filter instanceof DOMElement) {
+ $this->ensureEmpty($filter);
+ $filter->parentNode->removeChild($filter);
+ }
+ }
+
+ /**
+ * @throws MigrationException
+ */
+ private function ensureEmpty(DOMElement $element): void
+ {
+ if ($element->attributes->length > 0) {
+ throw new MigrationException(sprintf('%s element has unexpected attributes', $element->nodeName));
+ }
+
+ if ($element->getElementsByTagName('*')->length > 0) {
+ throw new MigrationException(sprintf('%s element has unexpected children', $element->nodeName));
+ }
+ }
+}