protected function PHPUnit_TextUI_TestRunner::handleConfiguration

@since Method available since Release 3.2.1

Parameters

array $arguments:

1 call to PHPUnit_TextUI_TestRunner::handleConfiguration()
PHPUnit_TextUI_TestRunner::doRun in drupal/core/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php

File

drupal/core/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php, line 501

Class

PHPUnit_TextUI_TestRunner
A TestRunner for the Command Line Interface (CLI) PHP SAPI Module.

Code

protected function handleConfiguration(array &$arguments) {
  if (isset($arguments['configuration']) && !$arguments['configuration'] instanceof PHPUnit_Util_Configuration) {
    $arguments['configuration'] = PHPUnit_Util_Configuration::getInstance($arguments['configuration']);
  }
  $arguments['debug'] = isset($arguments['debug']) ? $arguments['debug'] : FALSE;
  $arguments['filter'] = isset($arguments['filter']) ? $arguments['filter'] : FALSE;
  $arguments['listeners'] = isset($arguments['listeners']) ? $arguments['listeners'] : array();
  if (isset($arguments['configuration'])) {
    $arguments['configuration']
      ->handlePHPConfiguration();
    $phpunitConfiguration = $arguments['configuration']
      ->getPHPUnitConfiguration();
    if (isset($phpunitConfiguration['backupGlobals']) && !isset($arguments['backupGlobals'])) {
      $arguments['backupGlobals'] = $phpunitConfiguration['backupGlobals'];
    }
    if (isset($phpunitConfiguration['backupStaticAttributes']) && !isset($arguments['backupStaticAttributes'])) {
      $arguments['backupStaticAttributes'] = $phpunitConfiguration['backupStaticAttributes'];
    }
    if (isset($phpunitConfiguration['bootstrap']) && !isset($arguments['bootstrap'])) {
      $arguments['bootstrap'] = $phpunitConfiguration['bootstrap'];
    }
    if (isset($phpunitConfiguration['cacheTokens']) && !isset($arguments['cacheTokens'])) {
      $arguments['cacheTokens'] = $phpunitConfiguration['cacheTokens'];
    }
    if (isset($phpunitConfiguration['colors']) && !isset($arguments['colors'])) {
      $arguments['colors'] = $phpunitConfiguration['colors'];
    }
    if (isset($phpunitConfiguration['convertErrorsToExceptions']) && !isset($arguments['convertErrorsToExceptions'])) {
      $arguments['convertErrorsToExceptions'] = $phpunitConfiguration['convertErrorsToExceptions'];
    }
    if (isset($phpunitConfiguration['convertNoticesToExceptions']) && !isset($arguments['convertNoticesToExceptions'])) {
      $arguments['convertNoticesToExceptions'] = $phpunitConfiguration['convertNoticesToExceptions'];
    }
    if (isset($phpunitConfiguration['convertWarningsToExceptions']) && !isset($arguments['convertWarningsToExceptions'])) {
      $arguments['convertWarningsToExceptions'] = $phpunitConfiguration['convertWarningsToExceptions'];
    }
    if (isset($phpunitConfiguration['processIsolation']) && !isset($arguments['processIsolation'])) {
      $arguments['processIsolation'] = $phpunitConfiguration['processIsolation'];
    }
    if (isset($phpunitConfiguration['stopOnFailure']) && !isset($arguments['stopOnFailure'])) {
      $arguments['stopOnFailure'] = $phpunitConfiguration['stopOnFailure'];
    }
    if (isset($phpunitConfiguration['timeoutForSmallTests']) && !isset($arguments['timeoutForSmallTests'])) {
      $arguments['timeoutForSmallTests'] = $phpunitConfiguration['timeoutForSmallTests'];
    }
    if (isset($phpunitConfiguration['timeoutForMediumTests']) && !isset($arguments['timeoutForMediumTests'])) {
      $arguments['timeoutForMediumTests'] = $phpunitConfiguration['timeoutForMediumTests'];
    }
    if (isset($phpunitConfiguration['timeoutForLargeTests']) && !isset($arguments['timeoutForLargeTests'])) {
      $arguments['timeoutForLargeTests'] = $phpunitConfiguration['timeoutForLargeTests'];
    }
    if (isset($phpunitConfiguration['strict']) && !isset($arguments['strict'])) {
      $arguments['strict'] = $phpunitConfiguration['strict'];
    }
    if (isset($phpunitConfiguration['verbose']) && !isset($arguments['verbose'])) {
      $arguments['verbose'] = $phpunitConfiguration['verbose'];
    }
    if (isset($phpunitConfiguration['forceCoversAnnotation']) && !isset($arguments['forceCoversAnnotation'])) {
      $arguments['forceCoversAnnotation'] = $phpunitConfiguration['forceCoversAnnotation'];
    }
    if (isset($phpunitConfiguration['mapTestClassNameToCoveredClassName']) && !isset($arguments['mapTestClassNameToCoveredClassName'])) {
      $arguments['mapTestClassNameToCoveredClassName'] = $phpunitConfiguration['mapTestClassNameToCoveredClassName'];
    }
    $groupCliArgs = array();
    if (!empty($arguments['groups'])) {
      $groupCliArgs = $arguments['groups'];
    }
    $groupConfiguration = $arguments['configuration']
      ->getGroupConfiguration();
    if (!empty($groupConfiguration['include']) && !isset($arguments['groups'])) {
      $arguments['groups'] = $groupConfiguration['include'];
    }
    if (!empty($groupConfiguration['exclude']) && !isset($arguments['excludeGroups'])) {
      $arguments['excludeGroups'] = array_diff($groupConfiguration['exclude'], $groupCliArgs);
    }
    foreach ($arguments['configuration']
      ->getListenerConfiguration() as $listener) {
      if (!class_exists($listener['class'], FALSE) && $listener['file'] !== '') {
        require_once $listener['file'];
      }
      if (class_exists($listener['class'])) {
        if (count($listener['arguments']) == 0) {
          $listener = new $listener['class']();
        }
        else {
          $listenerClass = new ReflectionClass($listener['class']);
          $listener = $listenerClass
            ->newInstanceArgs($listener['arguments']);
        }
        if ($listener instanceof PHPUnit_Framework_TestListener) {
          $arguments['listeners'][] = $listener;
        }
      }
    }
    $loggingConfiguration = $arguments['configuration']
      ->getLoggingConfiguration();
    if (isset($loggingConfiguration['coverage-html']) && !isset($arguments['reportDirectory'])) {
      if (isset($loggingConfiguration['charset']) && !isset($arguments['reportCharset'])) {
        $arguments['reportCharset'] = $loggingConfiguration['charset'];
      }
      if (isset($loggingConfiguration['highlight']) && !isset($arguments['reportHighlight'])) {
        $arguments['reportHighlight'] = $loggingConfiguration['highlight'];
      }
      if (isset($loggingConfiguration['lowUpperBound']) && !isset($arguments['reportLowUpperBound'])) {
        $arguments['reportLowUpperBound'] = $loggingConfiguration['lowUpperBound'];
      }
      if (isset($loggingConfiguration['highLowerBound']) && !isset($arguments['reportHighLowerBound'])) {
        $arguments['reportHighLowerBound'] = $loggingConfiguration['highLowerBound'];
      }
      $arguments['reportDirectory'] = $loggingConfiguration['coverage-html'];
    }
    if (isset($loggingConfiguration['coverage-clover']) && !isset($arguments['coverageClover'])) {
      $arguments['coverageClover'] = $loggingConfiguration['coverage-clover'];
    }
    if (isset($loggingConfiguration['coverage-php']) && !isset($arguments['coveragePHP'])) {
      $arguments['coveragePHP'] = $loggingConfiguration['coverage-php'];
    }
    if (isset($loggingConfiguration['coverage-text']) && !isset($arguments['coverageText'])) {
      $arguments['coverageText'] = $loggingConfiguration['coverage-text'];
      if (isset($loggingConfiguration['coverageTextShowUncoveredFiles'])) {
        $arguments['coverageTextShowUncoveredFiles'] = $loggingConfiguration['coverageTextShowUncoveredFiles'];
      }
      else {
        $arguments['coverageTextShowUncoveredFiles'] = FALSE;
      }
    }
    if (isset($loggingConfiguration['json']) && !isset($arguments['jsonLogfile'])) {
      $arguments['jsonLogfile'] = $loggingConfiguration['json'];
    }
    if (isset($loggingConfiguration['plain'])) {
      $arguments['listeners'][] = new PHPUnit_TextUI_ResultPrinter($loggingConfiguration['plain'], TRUE);
    }
    if (isset($loggingConfiguration['tap']) && !isset($arguments['tapLogfile'])) {
      $arguments['tapLogfile'] = $loggingConfiguration['tap'];
    }
    if (isset($loggingConfiguration['junit']) && !isset($arguments['junitLogfile'])) {
      $arguments['junitLogfile'] = $loggingConfiguration['junit'];
      if (isset($loggingConfiguration['logIncompleteSkipped']) && !isset($arguments['logIncompleteSkipped'])) {
        $arguments['logIncompleteSkipped'] = $loggingConfiguration['logIncompleteSkipped'];
      }
    }
    if (isset($loggingConfiguration['testdox-html']) && !isset($arguments['testdoxHTMLFile'])) {
      $arguments['testdoxHTMLFile'] = $loggingConfiguration['testdox-html'];
    }
    if (isset($loggingConfiguration['testdox-text']) && !isset($arguments['testdoxTextFile'])) {
      $arguments['testdoxTextFile'] = $loggingConfiguration['testdox-text'];
    }
    if ((isset($arguments['coverageClover']) || isset($arguments['reportDirectory']) || isset($arguments['coveragePHP']) || isset($arguments['coverageText'])) && extension_loaded('xdebug')) {
      $filterConfiguration = $arguments['configuration']
        ->getFilterConfiguration();
      $arguments['addUncoveredFilesFromWhitelist'] = $filterConfiguration['whitelist']['addUncoveredFilesFromWhitelist'];
      $arguments['processUncoveredFilesFromWhitelist'] = $filterConfiguration['whitelist']['processUncoveredFilesFromWhitelist'];
      foreach ($filterConfiguration['blacklist']['include']['directory'] as $dir) {
        $this->codeCoverageFilter
          ->addDirectoryToBlacklist($dir['path'], $dir['suffix'], $dir['prefix'], $dir['group']);
      }
      foreach ($filterConfiguration['blacklist']['include']['file'] as $file) {
        $this->codeCoverageFilter
          ->addFileToBlacklist($file);
      }
      foreach ($filterConfiguration['blacklist']['exclude']['directory'] as $dir) {
        $this->codeCoverageFilter
          ->removeDirectoryFromBlacklist($dir['path'], $dir['suffix'], $dir['prefix'], $dir['group']);
      }
      foreach ($filterConfiguration['blacklist']['exclude']['file'] as $file) {
        $this->codeCoverageFilter
          ->removeFileFromBlacklist($file);
      }
      foreach ($filterConfiguration['whitelist']['include']['directory'] as $dir) {
        $this->codeCoverageFilter
          ->addDirectoryToWhitelist($dir['path'], $dir['suffix'], $dir['prefix']);
      }
      foreach ($filterConfiguration['whitelist']['include']['file'] as $file) {
        $this->codeCoverageFilter
          ->addFileToWhitelist($file);
      }
      foreach ($filterConfiguration['whitelist']['exclude']['directory'] as $dir) {
        $this->codeCoverageFilter
          ->removeDirectoryFromWhitelist($dir['path'], $dir['suffix'], $dir['prefix']);
      }
      foreach ($filterConfiguration['whitelist']['exclude']['file'] as $file) {
        $this->codeCoverageFilter
          ->removeFileFromWhitelist($file);
      }
    }
  }
  $arguments['addUncoveredFilesFromWhitelist'] = isset($arguments['addUncoveredFilesFromWhitelist']) ? $arguments['addUncoveredFilesFromWhitelist'] : TRUE;
  $arguments['processUncoveredFilesFromWhitelist'] = isset($arguments['processUncoveredFilesFromWhitelist']) ? $arguments['processUncoveredFilesFromWhitelist'] : FALSE;
  $arguments['backupGlobals'] = isset($arguments['backupGlobals']) ? $arguments['backupGlobals'] : NULL;
  $arguments['backupStaticAttributes'] = isset($arguments['backupStaticAttributes']) ? $arguments['backupStaticAttributes'] : NULL;
  $arguments['cacheTokens'] = isset($arguments['cacheTokens']) ? $arguments['cacheTokens'] : FALSE;
  $arguments['colors'] = isset($arguments['colors']) ? $arguments['colors'] : FALSE;
  $arguments['convertErrorsToExceptions'] = isset($arguments['convertErrorsToExceptions']) ? $arguments['convertErrorsToExceptions'] : TRUE;
  $arguments['convertNoticesToExceptions'] = isset($arguments['convertNoticesToExceptions']) ? $arguments['convertNoticesToExceptions'] : TRUE;
  $arguments['convertWarningsToExceptions'] = isset($arguments['convertWarningsToExceptions']) ? $arguments['convertWarningsToExceptions'] : TRUE;
  $arguments['excludeGroups'] = isset($arguments['excludeGroups']) ? $arguments['excludeGroups'] : array();
  $arguments['groups'] = isset($arguments['groups']) ? $arguments['groups'] : array();
  $arguments['logIncompleteSkipped'] = isset($arguments['logIncompleteSkipped']) ? $arguments['logIncompleteSkipped'] : FALSE;
  $arguments['processIsolation'] = isset($arguments['processIsolation']) ? $arguments['processIsolation'] : FALSE;
  $arguments['repeat'] = isset($arguments['repeat']) ? $arguments['repeat'] : FALSE;
  $arguments['reportCharset'] = isset($arguments['reportCharset']) ? $arguments['reportCharset'] : 'UTF-8';
  $arguments['reportHighlight'] = isset($arguments['reportHighlight']) ? $arguments['reportHighlight'] : FALSE;
  $arguments['reportHighLowerBound'] = isset($arguments['reportHighLowerBound']) ? $arguments['reportHighLowerBound'] : 70;
  $arguments['reportLowUpperBound'] = isset($arguments['reportLowUpperBound']) ? $arguments['reportLowUpperBound'] : 35;
  $arguments['stopOnError'] = isset($arguments['stopOnError']) ? $arguments['stopOnError'] : FALSE;
  $arguments['stopOnFailure'] = isset($arguments['stopOnFailure']) ? $arguments['stopOnFailure'] : FALSE;
  $arguments['stopOnIncomplete'] = isset($arguments['stopOnIncomplete']) ? $arguments['stopOnIncomplete'] : FALSE;
  $arguments['stopOnSkipped'] = isset($arguments['stopOnSkipped']) ? $arguments['stopOnSkipped'] : FALSE;
  $arguments['timeoutForSmallTests'] = isset($arguments['timeoutForSmallTests']) ? $arguments['timeoutForSmallTests'] : 1;
  $arguments['timeoutForMediumTests'] = isset($arguments['timeoutForMediumTests']) ? $arguments['timeoutForMediumTests'] : 10;
  $arguments['timeoutForLargeTests'] = isset($arguments['timeoutForLargeTests']) ? $arguments['timeoutForLargeTests'] : 60;
  $arguments['strict'] = isset($arguments['strict']) ? $arguments['strict'] : FALSE;
  $arguments['verbose'] = isset($arguments['verbose']) ? $arguments['verbose'] : FALSE;
  if ($arguments['filter'] !== FALSE && preg_match('/^[a-zA-Z0-9_]/', $arguments['filter'])) {

    // Escape delimiters in regular expression. Do NOT use preg_quote,
    // to keep magic characters.
    $arguments['filter'] = '/' . str_replace('/', '\\/', $arguments['filter']) . '/';
  }
}