protected function PHP_CodeCoverage::applyCoversAnnotationFilter

Applies the @covers annotation filtering.

Parameters

array $data:

mixed $id:

1 call to PHP_CodeCoverage::applyCoversAnnotationFilter()
PHP_CodeCoverage::append in drupal/core/vendor/phpunit/php-code-coverage/PHP/CodeCoverage.php
Appends code coverage data.

File

drupal/core/vendor/phpunit/php-code-coverage/PHP/CodeCoverage.php, line 441

Class

PHP_CodeCoverage
Provides collection functionality for PHP code coverage information.

Code

protected function applyCoversAnnotationFilter(&$data, $id) {
  if ($id instanceof PHPUnit_Framework_TestCase) {
    $testClassName = get_class($id);
    $linesToBeCovered = $this
      ->getLinesToBeCovered($testClassName, $id
      ->getName());
    if ($linesToBeCovered === FALSE) {
      $data = array();
      return;
    }
    if ($this->mapTestClassNameToCoveredClassName && empty($linesToBeCovered)) {
      $testedClass = substr($testClassName, 0, -4);
      if (class_exists($testedClass)) {
        $class = new ReflectionClass($testedClass);
        $linesToBeCovered = array(
          $class
            ->getFileName() => range($class
            ->getStartLine(), $class
            ->getEndLine()),
        );
      }
    }
  }
  else {
    $linesToBeCovered = array();
  }
  if (!empty($linesToBeCovered)) {
    $data = array_intersect_key($data, $linesToBeCovered);
    foreach (array_keys($data) as $filename) {
      $data[$filename] = array_intersect_key($data[$filename], array_flip($linesToBeCovered[$filename]));
    }
  }
  else {
    if ($this->forceCoversAnnotation) {
      $data = array();
    }
  }
}