annotate vendor/phpunit/php-code-coverage/src/Report/Xml/File.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 class File
Chris@14 14 {
Chris@14 15 /**
Chris@14 16 * @var \DOMDocument
Chris@14 17 */
Chris@14 18 private $dom;
Chris@14 19
Chris@14 20 /**
Chris@14 21 * @var \DOMElement
Chris@14 22 */
Chris@14 23 private $contextNode;
Chris@14 24
Chris@14 25 public function __construct(\DOMElement $context)
Chris@14 26 {
Chris@14 27 $this->dom = $context->ownerDocument;
Chris@14 28 $this->contextNode = $context;
Chris@14 29 }
Chris@14 30
Chris@14 31 /**
Chris@14 32 * @return \DOMElement
Chris@14 33 */
Chris@14 34 protected function getContextNode()
Chris@14 35 {
Chris@14 36 return $this->contextNode;
Chris@14 37 }
Chris@14 38
Chris@14 39 /**
Chris@14 40 * @return \DOMDocument
Chris@14 41 */
Chris@14 42 protected function getDomDocument()
Chris@14 43 {
Chris@14 44 return $this->dom;
Chris@14 45 }
Chris@14 46
Chris@14 47 public function getTotals()
Chris@14 48 {
Chris@14 49 $totalsContainer = $this->contextNode->firstChild;
Chris@14 50
Chris@14 51 if (!$totalsContainer) {
Chris@14 52 $totalsContainer = $this->contextNode->appendChild(
Chris@14 53 $this->dom->createElementNS(
Chris@14 54 'http://schema.phpunit.de/coverage/1.0',
Chris@14 55 'totals'
Chris@14 56 )
Chris@14 57 );
Chris@14 58 }
Chris@14 59
Chris@14 60 return new Totals($totalsContainer);
Chris@14 61 }
Chris@14 62
Chris@14 63 public function getLineCoverage($line)
Chris@14 64 {
Chris@14 65 $coverage = $this->contextNode->getElementsByTagNameNS(
Chris@14 66 'http://schema.phpunit.de/coverage/1.0',
Chris@14 67 'coverage'
Chris@14 68 )->item(0);
Chris@14 69
Chris@14 70 if (!$coverage) {
Chris@14 71 $coverage = $this->contextNode->appendChild(
Chris@14 72 $this->dom->createElementNS(
Chris@14 73 'http://schema.phpunit.de/coverage/1.0',
Chris@14 74 'coverage'
Chris@14 75 )
Chris@14 76 );
Chris@14 77 }
Chris@14 78
Chris@14 79 $lineNode = $coverage->appendChild(
Chris@14 80 $this->dom->createElementNS(
Chris@14 81 'http://schema.phpunit.de/coverage/1.0',
Chris@14 82 'line'
Chris@14 83 )
Chris@14 84 );
Chris@14 85
Chris@14 86 return new Coverage($lineNode, $line);
Chris@14 87 }
Chris@14 88 }