annotate vendor/phpunit/php-code-coverage/src/Report/Xml/Coverage.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@14 1 <?php
Chris@14 2 /*
Chris@14 3 * This file is part of the php-code-coverage package.
Chris@14 4 *
Chris@14 5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
Chris@14 6 *
Chris@14 7 * For the full copyright and license information, please view the LICENSE
Chris@14 8 * file that was distributed with this source code.
Chris@14 9 */
Chris@14 10
Chris@14 11 namespace SebastianBergmann\CodeCoverage\Report\Xml;
Chris@14 12
Chris@14 13 use SebastianBergmann\CodeCoverage\RuntimeException;
Chris@14 14
Chris@14 15 class Coverage
Chris@14 16 {
Chris@14 17 /**
Chris@14 18 * @var \XMLWriter
Chris@14 19 */
Chris@14 20 private $writer;
Chris@14 21
Chris@14 22 /**
Chris@14 23 * @var \DOMElement
Chris@14 24 */
Chris@14 25 private $contextNode;
Chris@14 26
Chris@14 27 /**
Chris@14 28 * @var bool
Chris@14 29 */
Chris@14 30 private $finalized = false;
Chris@14 31
Chris@14 32 public function __construct(\DOMElement $context, $line)
Chris@14 33 {
Chris@14 34 $this->contextNode = $context;
Chris@14 35
Chris@14 36 $this->writer = new \XMLWriter();
Chris@14 37 $this->writer->openMemory();
Chris@14 38 $this->writer->startElementNs(null, $context->nodeName, 'http://schema.phpunit.de/coverage/1.0');
Chris@14 39 $this->writer->writeAttribute('nr', $line);
Chris@14 40 }
Chris@14 41
Chris@14 42 public function addTest($test)
Chris@14 43 {
Chris@14 44 if ($this->finalized) {
Chris@14 45 throw new RuntimeException('Coverage Report already finalized');
Chris@14 46 }
Chris@14 47
Chris@14 48 $this->writer->startElement('covered');
Chris@14 49 $this->writer->writeAttribute('by', $test);
Chris@14 50 $this->writer->endElement();
Chris@14 51 }
Chris@14 52
Chris@14 53 public function finalize()
Chris@14 54 {
Chris@14 55 $this->writer->endElement();
Chris@14 56
Chris@14 57 $fragment = $this->contextNode->ownerDocument->createDocumentFragment();
Chris@14 58 $fragment->appendXML($this->writer->outputMemory());
Chris@14 59
Chris@14 60 $this->contextNode->parentNode->replaceChild(
Chris@14 61 $fragment,
Chris@14 62 $this->contextNode
Chris@14 63 );
Chris@14 64
Chris@14 65 $this->finalized = true;
Chris@14 66 }
Chris@14 67 }