annotate vendor/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.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\Environment\Runtime;
Chris@14 14
Chris@14 15 class BuildInformation
Chris@14 16 {
Chris@14 17 /**
Chris@14 18 * @var \DOMElement
Chris@14 19 */
Chris@14 20 private $contextNode;
Chris@14 21
Chris@14 22 /**
Chris@14 23 * @param \DOMElement $contextNode
Chris@14 24 */
Chris@14 25 public function __construct(\DOMElement $contextNode)
Chris@14 26 {
Chris@14 27 $this->contextNode = $contextNode;
Chris@14 28 }
Chris@14 29
Chris@14 30 /**
Chris@14 31 * @param Runtime $runtime
Chris@14 32 */
Chris@14 33 public function setRuntimeInformation(Runtime $runtime)
Chris@14 34 {
Chris@14 35 $runtimeNode = $this->getNodeByName('runtime');
Chris@14 36
Chris@14 37 $runtimeNode->setAttribute('name', $runtime->getName());
Chris@14 38 $runtimeNode->setAttribute('version', $runtime->getVersion());
Chris@14 39 $runtimeNode->setAttribute('url', $runtime->getVendorUrl());
Chris@14 40
Chris@14 41 $driverNode = $this->getNodeByName('driver');
Chris@14 42 if ($runtime->isHHVM()) {
Chris@14 43 $driverNode->setAttribute('name', 'hhvm');
Chris@14 44 $driverNode->setAttribute('version', \constant('HHVM_VERSION'));
Chris@14 45
Chris@14 46 return;
Chris@14 47 }
Chris@14 48
Chris@14 49 if ($runtime->hasPHPDBGCodeCoverage()) {
Chris@14 50 $driverNode->setAttribute('name', 'phpdbg');
Chris@14 51 $driverNode->setAttribute('version', \constant('PHPDBG_VERSION'));
Chris@14 52 }
Chris@14 53
Chris@14 54 if ($runtime->hasXdebug()) {
Chris@14 55 $driverNode->setAttribute('name', 'xdebug');
Chris@14 56 $driverNode->setAttribute('version', \phpversion('xdebug'));
Chris@14 57 }
Chris@14 58 }
Chris@14 59
Chris@14 60 /**
Chris@14 61 * @param $name
Chris@14 62 *
Chris@14 63 * @return \DOMElement
Chris@14 64 */
Chris@14 65 private function getNodeByName($name)
Chris@14 66 {
Chris@14 67 $node = $this->contextNode->getElementsByTagNameNS(
Chris@14 68 'http://schema.phpunit.de/coverage/1.0',
Chris@14 69 $name
Chris@14 70 )->item(0);
Chris@14 71
Chris@14 72 if (!$node) {
Chris@14 73 $node = $this->contextNode->appendChild(
Chris@14 74 $this->contextNode->ownerDocument->createElementNS(
Chris@14 75 'http://schema.phpunit.de/coverage/1.0',
Chris@14 76 $name
Chris@14 77 )
Chris@14 78 );
Chris@14 79 }
Chris@14 80
Chris@14 81 return $node;
Chris@14 82 }
Chris@14 83
Chris@14 84 /**
Chris@14 85 * @param \DateTime $date
Chris@14 86 */
Chris@14 87 public function setBuildTime(\DateTime $date)
Chris@14 88 {
Chris@14 89 $this->contextNode->setAttribute('time', $date->format('D M j G:i:s T Y'));
Chris@14 90 }
Chris@14 91
Chris@14 92 /**
Chris@14 93 * @param string $phpUnitVersion
Chris@14 94 * @param string $coverageVersion
Chris@14 95 */
Chris@14 96 public function setGeneratorVersions($phpUnitVersion, $coverageVersion)
Chris@14 97 {
Chris@14 98 $this->contextNode->setAttribute('phpunit', $phpUnitVersion);
Chris@14 99 $this->contextNode->setAttribute('coverage', $coverageVersion);
Chris@14 100 }
Chris@14 101 }