コード例 #1
0
ファイル: ClassTest.php プロジェクト: cruni505/prestomed
 /**
  * @requires PHP 7
  * @ticket   https://github.com/sebastianbergmann/php-token-stream/issues/52
  */
 public function testAnonymousClassesAreHandledCorrectly2()
 {
     $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'class_with_method_that_declares_anonymous_class2.php');
     $classes = $ts->getClasses();
     $this->assertEquals(array('Test'), array_keys($classes));
     $this->assertEquals(array('methodOne', 'methodTwo'), array_keys($classes['Test']['methods']));
     $this->assertEmpty($ts->getFunctions());
 }
コード例 #2
0
 public function testSignature()
 {
     $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source5.php');
     $f = $ts->getFunctions();
     $c = $ts->getClasses();
     $i = $ts->getInterfaces();
     $this->assertEquals('foo($a, array $b, array $c = array())', $f['foo']['signature']);
     $this->assertEquals('m($a, array $b, array $c = array())', $c['c']['methods']['m']['signature']);
     $this->assertEquals('m($a, array $b, array $c = array())', $c['a']['methods']['m']['signature']);
     $this->assertEquals('m($a, array $b, array $c = array())', $i['i']['methods']['m']['signature']);
 }
コード例 #3
0
ファイル: File.php プロジェクト: thanghexp/project
 /**
  * @param \PHP_Token_Stream $tokens
  */
 protected function processFunctions(\PHP_Token_Stream $tokens)
 {
     $functions = $tokens->getFunctions();
     unset($tokens);
     $link = $this->getId() . '.html#';
     foreach ($functions as $functionName => $function) {
         $this->functions[$functionName] = ['functionName' => $functionName, 'signature' => $function['signature'], 'startLine' => $function['startLine'], 'executableLines' => 0, 'executedLines' => 0, 'ccn' => $function['ccn'], 'coverage' => 0, 'crap' => 0, 'link' => $link . $function['startLine']];
         $this->startLines[$function['startLine']] =& $this->functions[$functionName];
         $this->endLines[$function['endLine']] =& $this->functions[$functionName];
     }
 }
コード例 #4
0
ファイル: CodeCoverage.php プロジェクト: qube81/old-phpunit
 /**
  * Processes whitelisted files that are not covered.
  */
 protected function processUncoveredFilesFromWhitelist()
 {
     $data = array();
     $uncoveredFiles = array_diff($this->filter->getWhitelist(), array_keys($this->data));
     foreach ($uncoveredFiles as $uncoveredFile) {
         if (!file_exists($uncoveredFile)) {
             continue;
         }
         if ($this->cacheTokens) {
             $tokens = PHP_Token_Stream_CachingFactory::get($uncoveredFile);
         } else {
             $tokens = new PHP_Token_Stream($uncoveredFile);
         }
         $classes = $tokens->getClasses();
         $interfaces = $tokens->getInterfaces();
         $functions = $tokens->getFunctions();
         unset($tokens);
         foreach (array_keys($classes) as $class) {
             if (class_exists($class, FALSE)) {
                 continue 2;
             }
         }
         unset($classes);
         foreach (array_keys($interfaces) as $interface) {
             if (interface_exists($interface, FALSE)) {
                 continue 2;
             }
         }
         unset($interfaces);
         foreach (array_keys($functions) as $function) {
             if (function_exists($function)) {
                 continue 2;
             }
         }
         unset($functions);
         $this->driver->start();
         include_once $uncoveredFile;
         $coverage = $this->driver->stop();
         foreach ($coverage as $file => $fileCoverage) {
             if (!isset($data[$file]) && in_array($file, $uncoveredFiles)) {
                 foreach (array_keys($fileCoverage) as $key) {
                     if ($fileCoverage[$key] == 1) {
                         $fileCoverage[$key] = -1;
                     }
                 }
                 $data[$file] = $fileCoverage;
             }
         }
     }
     $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST');
 }
コード例 #5
0
ファイル: ClassTest.php プロジェクト: diandianxiyu/ApiTesting
 /**
  * @requires PHP 5.6
  */
 public function testImportedFunctionsAreHandledCorrectly()
 {
     $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'classUsesNamespacedFunction.php');
     $this->assertEmpty($ts->getFunctions());
 }
コード例 #6
0
ファイル: File.php プロジェクト: proofek/php-code-coverage
 protected function processFunctions()
 {
     if ($this->cacheTokens) {
         $tokens = PHP_Token_Stream_CachingFactory::get($this->getPath());
     } else {
         $tokens = new PHP_Token_Stream($this->getPath());
     }
     $functions = $tokens->getFunctions();
     unset($tokens);
     if (count($functions) > 0 && !isset($this->classes['*'])) {
         $this->classes['*'] = array('methods' => array(), 'startLine' => 0, 'executableLines' => 0, 'executedLines' => 0, 'ccn' => 0);
     }
     foreach ($functions as $functionName => $function) {
         $this->classes['*']['methods'][$functionName] = array('signature' => $function['signature'], 'startLine' => $function['startLine'], 'executableLines' => 0, 'executedLines' => 0, 'ccn' => $function['ccn']);
         $this->startLines[$function['startLine']] =& $this->classes['*']['methods'][$functionName];
         $this->endLines[$function['endLine']] =& $this->classes['*']['methods'][$functionName];
     }
 }