REDROOM
PHP 8.3.31
Path:
Logout
Edit File
Size: 8.30 KB
Close
/proc/self/root/opt/cpanel/ea-wappspector/vendor/squizlabs/php_codesniffer/tests/Core/Generators/GeneratorTest.php
Text
Base64
<?php /** * Tests the functionality in the abstract Generator class. * * @copyright 2024 PHPCSStandards and contributors * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/HEAD/licence.txt BSD Licence */ namespace PHP_CodeSniffer\Tests\Core\Generators; use PHP_CodeSniffer\Ruleset; use PHP_CodeSniffer\Tests\ConfigDouble; use PHP_CodeSniffer\Tests\Core\Generators\Fixtures\MockGenerator; use PHPUnit\Framework\TestCase; /** * Tests the functionality in the abstract Generator class. * * @covers \PHP_CodeSniffer\Generators\Generator * @group Windows */ final class GeneratorTest extends TestCase { /** * Test the list of available documentation for a standard is generated correctly. * * @param string $standard The standard to use for the test. * @param array<string> $expected The expected list of found docs. * * @dataProvider dataConstructor * * @return void */ public function testConstructor($standard, array $expected) { // Set up the ruleset. $config = new ConfigDouble(["--standard=$standard"]); $ruleset = new Ruleset($config); $generator = new MockGenerator($ruleset); $this->assertSame($expected, $generator->docFiles); }//end testConstructor() /** * Data provider. * * @return array<string, array<string, string|array<string>>> */ public static function dataConstructor() { $pathToDocsInFixture = __DIR__.DIRECTORY_SEPARATOR.'Fixtures'; $pathToDocsInFixture .= DIRECTORY_SEPARATOR.'StandardWithDocs'; $pathToDocsInFixture .= DIRECTORY_SEPARATOR.'Docs'.DIRECTORY_SEPARATOR; return [ 'Standard without docs' => [ 'standard' => __DIR__.'/NoDocsTest.xml', 'expected' => [], ], 'Standard with an invalid doc file' => [ 'standard' => __DIR__.'/NoValidDocsTest.xml', 'expected' => [ $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'NoDocumentationElementStandard.xml', ], ], 'Standard with one doc file' => [ 'standard' => __DIR__.'/OneDocTest.xml', 'expected' => [ $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'OneStandardBlockNoCodeStandard.xml', ], ], 'Standard with multiple doc files' => [ 'standard' => __DIR__.'/StructureDocsTest.xml', 'expected' => [ $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'NoContentStandard.xml', $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'OneCodeComparisonNoStandardStandard.xml', $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'OneStandardBlockCodeComparisonStandard.xml', $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'OneStandardBlockNoCodeStandard.xml', $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'OneStandardBlockTwoCodeComparisonsStandard.xml', $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'TwoStandardBlocksNoCodeStandard.xml', $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'TwoStandardBlocksOneCodeComparisonStandard.xml', $pathToDocsInFixture.'Structure'.DIRECTORY_SEPARATOR.'TwoStandardBlocksThreeCodeComparisonsStandard.xml', ], ], ]; }//end dataConstructor() /** * Verify that an XML doc which isn't valid documentation yields an Exception to warn devs. * * This should not be hidden via defensive coding! * * @return void */ public function testGeneratingInvalidDocsResultsInException() { // Set up the ruleset. $standard = __DIR__.'/NoValidDocsTest.xml'; $config = new ConfigDouble(["--standard=$standard"]); $ruleset = new Ruleset($config); if (PHP_VERSION_ID >= 80000) { $exception = 'TypeError'; $message = 'processSniff(): Argument #1 ($doc) must be of type DOMNode, null given'; } else if (PHP_VERSION_ID >= 70000) { $exception = 'TypeError'; $message = 'processSniff() must be an instance of DOMNode, null given'; } else { $exception = 'PHPUnit_Framework_Error'; $message = 'processSniff() must be an instance of DOMNode, null given'; } if (method_exists($this, 'expectExceptionMessage') === true) { // PHPUnit 5.2.0+. $this->expectException($exception); $this->expectExceptionMessage($message); } else { // Ancient PHPUnit. $this->setExpectedException($exception, $message); } $generator = new MockGenerator($ruleset); $generator->generate(); }//end testGeneratingInvalidDocsResultsInException() /** * Verify the wiring for the generate() function. * * @param string $standard The standard to use for the test. * @param string $expected The expected function output. * * @dataProvider dataGeneratingDocs * * @return void */ public function testGeneratingDocs($standard, $expected) { // Set up the ruleset. $config = new ConfigDouble(["--standard=$standard"]); $ruleset = new Ruleset($config); $this->expectOutputString($expected); $generator = new MockGenerator($ruleset); $generator->generate(); }//end testGeneratingDocs() /** * Data provider. * * @return array<string, array<string, string>> */ public static function dataGeneratingDocs() { $multidocExpected = []; $multidocExpected[] = 'No Content'; $multidocExpected[] = 'Code Comparison Only, Missing Standard Block'; $multidocExpected[] = 'One Standard Block, Code Comparison'; $multidocExpected[] = 'One Standard Block, No Code'; $multidocExpected[] = 'One Standard Block, Two Code Comparisons'; $multidocExpected[] = 'Two Standard Blocks, No Code'; $multidocExpected[] = 'Two Standard Blocks, One Code Comparison'; $multidocExpected[] = 'Two Standard Blocks, Three Code Comparisons'; $multidocExpected = implode(PHP_EOL, $multidocExpected).PHP_EOL; return [ 'Standard without docs' => [ 'standard' => __DIR__.'/NoDocsTest.xml', 'expected' => '', ], 'Standard with one doc file' => [ 'standard' => __DIR__.'/OneDocTest.xml', 'expected' => 'One Standard Block, No Code'.PHP_EOL, ], 'Standard with multiple doc files' => [ 'standard' => __DIR__.'/StructureDocsTest.xml', 'expected' => $multidocExpected, ], ]; }//end dataGeneratingDocs() /** * Verify that if the `<documentation>` title is missing, it will fallback to the file name * and split the CamelCaps name correctly. * * @return void */ public function testGetTitleFallbackToFilename() { // Set up the ruleset. $standard = __DIR__.'/AllValidDocsTest.xml'; $sniffs = 'StandardWithDocs.Content.DocumentationTitlePCREFallback'; $config = new ConfigDouble(["--standard=$standard", "--sniffs=$sniffs"]); $ruleset = new Ruleset($config); // In tests, the `--sniffs` setting doesn't work out of the box. $sniffParts = explode('.', $sniffs); $sniffFile = __DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.$sniffParts[0].DIRECTORY_SEPARATOR; $sniffFile .= 'Sniffs'.DIRECTORY_SEPARATOR.$sniffParts[1].DIRECTORY_SEPARATOR.$sniffParts[2].'Sniff.php'; $sniffParts = array_map('strtolower', $sniffParts); $sniffName = $sniffParts[0].'\sniffs\\'.$sniffParts[1].'\\'.$sniffParts[2].'sniff'; $restrictions = [$sniffName => true]; $ruleset->registerSniffs([$sniffFile], $restrictions, []); // Make the test OS independent. $this->expectOutputString('Documentation Title PCRE Fallback'.PHP_EOL); $generator = new MockGenerator($ruleset); $generator->generate(); }//end testGetTitleFallbackToFilename() }//end class
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 2 × Files: 10
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Expectations
DIR
-
drwxr-xr-x
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Fixtures
DIR
-
drwxr-xr-x
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
AllValidDocsTest.xml
398 B
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
AnchorLinksTest.xml
501 B
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
GeneratorTest.php
8.30 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
HTMLTest.php
18.00 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
MarkdownTest.php
17.02 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
NoDocsTest.xml
342 B
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
NoValidDocsTest.xml
344 B
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
OneDocTest.xml
344 B
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
StructureDocsTest.xml
408 B
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
TextTest.php
11.62 KB
lrw-r--r--
2025-11-04 16:30:35
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).