summaryrefslogtreecommitdiff
path: root/vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php')
-rw-r--r--vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php b/vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php
new file mode 100644
index 000000000..8fd20f58f
--- /dev/null
+++ b/vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php
@@ -0,0 +1,42 @@
+<?php declare(strict_types=1);
+/*
+ * This file is part of phpunit/php-code-coverage.
+ *
+ * (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 SebastianBergmann\CodeCoverage\Report\Xml;
+
+use DOMElement;
+use TheSeer\Tokenizer\NamespaceUri;
+use TheSeer\Tokenizer\Tokenizer;
+use TheSeer\Tokenizer\XMLSerializer;
+
+/**
+ * @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage
+ */
+final class Source
+{
+ /** @var DOMElement */
+ private $context;
+
+ public function __construct(DOMElement $context)
+ {
+ $this->context = $context;
+ }
+
+ public function setSourceCode(string $source): void
+ {
+ $context = $this->context;
+
+ $tokens = (new Tokenizer())->parse($source);
+ $srcDom = (new XMLSerializer(new NamespaceUri($context->namespaceURI)))->toDom($tokens);
+
+ $context->parentNode->replaceChild(
+ $context->ownerDocument->importNode($srcDom->documentElement, true),
+ $context
+ );
+ }
+}