当前路径:vendor/phpunit/php-code-coverage/tests/tests/FilterTest.php <?php declare(strict_types=1); /* * This file is part of the php-code-coverage package. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeCoverage; use PHPUnit\Framework\TestCase; use SebastianBergmann\FileIterator\Facade as FileIteratorFacade; class FilterTest extends TestCase { /** * @var Filter */ private $filter; /** * @var array */ private $files = []; protected function setUp(): void { $this->filter = \unserialize('O:37:"SebastianBergmann\CodeCoverage\Filter":0:{}'); $this->files = [ TEST_FILES_PATH . 'BankAccount.php', TEST_FILES_PATH . 'BankAccountTest.php', TEST_FILES_PATH . 'CoverageClassExtendedTest.php', TEST_FILES_PATH . 'CoverageClassTest.php', TEST_FILES_PATH . 'CoverageFunctionParenthesesTest.php', TEST_FILES_PATH . 'CoverageFunctionParenthesesWhitespaceTest.php', TEST_FILES_PATH . 'CoverageFunctionTest.php', TEST_FILES_PATH . 'CoverageMethodOneLineAnnotationTest.php', TEST_FILES_PATH . 'CoverageMethodParenthesesTest.php', TEST_FILES_PATH . 'CoverageMethodParenthesesWhitespaceTest.php', TEST_FILES_PATH . 'CoverageMethodTest.php', TEST_FILES_PATH . 'CoverageNoneTest.php', TEST_FILES_PATH . 'CoverageNotPrivateTest.php', TEST_FILES_PATH . 'CoverageNotProtectedTest.php', TEST_FILES_PATH . 'CoverageNotPublicTest.php', TEST_FILES_PATH . 'CoverageNothingTest.php', TEST_FILES_PATH . 'CoveragePrivateTest.php', TEST_FILES_PATH . 'CoverageProtectedTest.php', TEST_FILES_PATH . 'CoveragePublicTest.php', TEST_FILES_PATH . 'CoverageTwoDefaultClassAnnotations.php', TEST_FILES_PATH . 'CoveredClass.php', TEST_FILES_PATH . 'CoveredFunction.php', TEST_FILES_PATH . 'Crash.php', TEST_FILES_PATH . 'NamespaceCoverageClassExtendedTest.php', TEST_FILES_PATH . 'NamespaceCoverageClassTest.php', TEST_FILES_PATH . 'NamespaceCoverageCoversClassPublicTest.php', TEST_FILES_PATH . 'NamespaceCoverageCoversClassTest.php', TEST_FILES_PATH . 'NamespaceCoverageMethodTest.php', TEST_FILES_PATH . 'NamespaceCoverageNotPrivateTest.php', TEST_FILES_PATH . 'NamespaceCoverageNotProtectedTest.php', TEST_FILES_PATH . 'NamespaceCoverageNotPublicTest.php', TEST_FILES_PATH . 'NamespaceCoveragePrivateTest.php', TEST_FILES_PATH . 'NamespaceCoverageProtectedTest.php', TEST_FILES_PATH . 'NamespaceCoveragePublicTest.php', TEST_FILES_PATH . 'NamespaceCoveredClass.php', TEST_FILES_PATH . 'NotExistingCoveredElementTest.php', TEST_FILES_PATH . 'source_with_class_and_anonymous_function.php', TEST_FILES_PATH . 'source_with_ignore.php', TEST_FILES_PATH . 'source_with_namespace.php', TEST_FILES_PATH . 'source_with_oneline_annotations.php', TEST_FILES_PATH . 'source_with_use_statements.php', TEST_FILES_PATH . 'source_without_ignore.php', TEST_FILES_PATH . 'source_without_namespace.php', ]; } /** * @covers SebastianBergmann\CodeCoverage\Filter::addFileToWhitelist * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist */ public function testAddingAFileToTheWhitelistWorks(): void { $this->filter->addFileToWhitelist($this->files[0]); $this->assertEquals( [$this->files[0]], $this->filter->getWhitelist() ); } /** * @covers SebastianBergmann\CodeCoverage\Filter::removeFileFromWhitelist * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist */ public function testRemovingAFileFromTheWhitelistWorks(): void { $this->filter->addFileToWhitelist($this->files[0]); $this->filter->removeFileFromWhitelist($this->files[0]); $this->assertEquals([], $this->filter->getWhitelist()); } /** * @covers SebastianBergmann\CodeCoverage\Filter::addDirectoryToWhitelist * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist * @depends testAddingAFileToTheWhitelistWorks */ public function testAddingADirectoryToTheWhitelistWorks(): void { $this->filter->addDirectoryToWhitelist(TEST_FILES_PATH); $whitelist = $this->filter->getWhitelist(); \sort($whitelist); $this->assertEquals($this->files, $whitelist); } /** * @covers SebastianBergmann\CodeCoverage\Filter::addFilesToWhitelist * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist */ public function testAddingFilesToTheWhitelistWorks(): void { $facade = new FileIteratorFacade; $files = $facade->getFilesAsArray( TEST_FILES_PATH, $suffixes = '.php' ); $this->filter->addFilesToWhitelist($files); $whitelist = $this->filter->getWhitelist(); \sort($whitelist); $this->assertEquals($this->files, $whitelist); } /** * @covers SebastianBergmann\CodeCoverage\Filter::removeDirectoryFromWhitelist * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist * @depends testAddingADirectoryToTheWhitelistWorks */ public function testRemovingADirectoryFromTheWhitelistWorks(): void { $this->filter->addDirectoryToWhitelist(TEST_FILES_PATH); $this->filter->removeDirectoryFromWhitelist(TEST_FILES_PATH); $this->assertEquals([], $this->filter->getWhitelist()); } /** * @covers SebastianBergmann\CodeCoverage\Filter::isFile */ public function testIsFile(): void { $this->assertFalse($this->filter->isFile('vfs://root/a/path')); $this->assertFalse($this->filter->isFile('xdebug://debug-eval')); $this->assertFalse($this->filter->isFile('eval()\'d code')); $this->assertFalse($this->filter->isFile('runtime-created function')); $this->assertFalse($this->filter->isFile('assert code')); $this->assertFalse($this->filter->isFile('regexp code')); $this->assertTrue($this->filter->isFile(__FILE__)); } /** * @covers SebastianBergmann\CodeCoverage\Filter::isFiltered */ public function testWhitelistedFileIsNotFiltered(): void { $this->filter->addFileToWhitelist($this->files[0]); $this->assertFalse($this->filter->isFiltered($this->files[0])); } /** * @covers SebastianBergmann\CodeCoverage\Filter::isFiltered */ public function testNotWhitelistedFileIsFiltered(): void { $this->filter->addFileToWhitelist($this->files[0]); $this->assertTrue($this->filter->isFiltered($this->files[1])); } /** * @covers SebastianBergmann\CodeCoverage\Filter::isFiltered * @covers SebastianBergmann\CodeCoverage\Filter::isFile */ public function testNonFilesAreFiltered(): void { $this->assertTrue($this->filter->isFiltered('vfs://root/a/path')); $this->assertTrue($this->filter->isFiltered('xdebug://debug-eval')); $this->assertTrue($this->filter->isFiltered('eval()\'d code')); $this->assertTrue($this->filter->isFiltered('runtime-created function')); $this->assertTrue($this->filter->isFiltered('assert code')); $this->assertTrue($this->filter->isFiltered('regexp code')); } /** * @covers SebastianBergmann\CodeCoverage\Filter::addFileToWhitelist * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist * * @ticket https://github.com/sebastianbergmann/php-code-coverage/issues/664 */ public function testTryingToAddFileThatDoesNotExistDoesNotChangeFilter(): void { $filter = new Filter; $filter->addFileToWhitelist('does_not_exist'); $this->assertEmpty($filter->getWhitelistedFiles()); } }
相关源码
- 可旋转的彩色立方体C#源代码2021-10-29
- 在线考试系统2021-10-15
- EduSoho开源网校系统源码2019-06-27
- 仿拼多多小程序商城源码2019-06-06
- PHP5网站运行监测系统源码2017-04-14
关于我们 | 顾问团队 | 发展历程 | 联系我们 | 源码上传
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2023. 京ICP备09089570号 | 京公网安备11010702000869号
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2023. 京ICP备09089570号 | 京公网安备11010702000869号