diff --git a/composer.json b/composer.json index 7d85cd2f..23fd9127 100644 --- a/composer.json +++ b/composer.json @@ -16,6 +16,7 @@ "composer-runtime-api": "^2.0.0", "symfony/console": "^5.4.9 || ^6.0 || ^7.0", "symfony/finder": "^5.4 || ^6.0 || ^7.0", + "symfony/string": "^5.4 || ^6.0 || ^7.0", "twig/twig": "^2.14.0 || ^3.0.5", "webmozart/assert": "^1.10" }, diff --git a/src/File/FileHelper.php b/src/File/FileHelper.php new file mode 100644 index 00000000..0c890de1 --- /dev/null +++ b/src/File/FileHelper.php @@ -0,0 +1,74 @@ + $ignoredDir + */ + public static function getFileName( + string $absolutePath, + ?string $baseDir = null, + array $ignoredDir = [] + ): ?string { + $split = self::splitPath($absolutePath, $baseDir, $ignoredDir); + if ([] === $split) { + return null; + } + + return end($split); + } + + /** + * @param array $ignoredDir + * + * @return list + */ + public static function getDirectories( + string $absolutePath, + ?string $baseDir = null, + array $ignoredDir = [] + ): array { + $split = self::splitPath($absolutePath, $baseDir, $ignoredDir); + array_pop($split); + + return $split; + } + + /** + * @param array $ignoredDir + * + * @return list + */ + private static function splitPath( + string $absolutePath, + ?string $baseDir = null, + array $ignoredDir = [] + ): array { + $baseDir = trim($baseDir ?? '', '/'); + + if ('' === $baseDir) { + $baseDirPosition = 0; + $baseDir = '/'; + } else { + $baseDir = '/'.$baseDir.'/'; + $baseDirPosition = strrpos($absolutePath, $baseDir); + if (false === $baseDirPosition) { + return []; + } + } + + $path = substr($absolutePath, $baseDirPosition + \strlen($baseDir)); + foreach ($ignoredDir as $ignoredDirectory) { + $ignoredDirectory = trim($ignoredDirectory, '/').'/'; + if (str_starts_with($path, $ignoredDirectory)) { + return []; + } + } + + return explode('/', $path); + } +} diff --git a/src/Rules/File/DirectoryNameRule.php b/src/Rules/File/DirectoryNameRule.php new file mode 100644 index 00000000..ebf867f4 --- /dev/null +++ b/src/Rules/File/DirectoryNameRule.php @@ -0,0 +1,68 @@ + $ignoredSubDirectories + */ + public function __construct( + private string $case = self::SNAKE_CASE, + private ?string $baseDirectory = null, + private array $ignoredSubDirectories = [], + ) { + } + + public function getConfiguration(): array + { + return [ + 'case' => $this->case, + 'baseDirectory' => $this->baseDirectory, + 'ignoredSubDirectories' => $this->ignoredSubDirectories, + ]; + } + + protected function process(int $tokenPosition, array $tokens): void + { + if (0 !== $tokenPosition) { + return; + } + + $token = $tokens[$tokenPosition]; + $directories = FileHelper::getDirectories( + $token->getFilename(), + $this->baseDirectory, + $this->ignoredSubDirectories, + ); + + foreach ($directories as $directory) { + $expected = match ($this->case) { + self::SNAKE_CASE => (new UnicodeString($directory))->snake()->toString(), + self::CAMEL_CASE => (new UnicodeString($directory))->camel()->toString(), + self::PASCAL_CASE => ucfirst((new UnicodeString($directory))->camel()->toString()), + self::KEBAB_CASE => (new UnicodeString($directory))->snake()->replace('_', '-')->toString(), + }; + + if ($expected !== $directory) { + $this->addError( + sprintf('The directory name must use %s ; expected %s.', $this->case, $expected), + $token, + ); + } + } + } +} diff --git a/src/Rules/File/FileNameRule.php b/src/Rules/File/FileNameRule.php new file mode 100644 index 00000000..4cd59bcf --- /dev/null +++ b/src/Rules/File/FileNameRule.php @@ -0,0 +1,70 @@ + $ignoredSubDirectories + */ + public function __construct( + private string $case = self::SNAKE_CASE, + private ?string $baseDirectory = null, + private array $ignoredSubDirectories = [], + ) { + } + + public function getConfiguration(): array + { + return [ + 'case' => $this->case, + 'baseDirectory' => $this->baseDirectory, + 'ignoredSubDirectories' => $this->ignoredSubDirectories, + ]; + } + + protected function process(int $tokenPosition, array $tokens): void + { + if (0 !== $tokenPosition) { + return; + } + + $token = $tokens[$tokenPosition]; + $fileName = FileHelper::getFileName( + $token->getFilename(), + $this->baseDirectory, + $this->ignoredSubDirectories, + ); + if (null === $fileName) { + return; + } + $fileName = explode('.', $fileName)[0]; // Avoid conflict with some extensions + + $expected = match ($this->case) { + self::SNAKE_CASE => (new UnicodeString($fileName))->snake()->toString(), + self::CAMEL_CASE => (new UnicodeString($fileName))->camel()->toString(), + self::PASCAL_CASE => ucfirst((new UnicodeString($fileName))->camel()->toString()), + self::KEBAB_CASE => (new UnicodeString($fileName))->snake()->replace('_', '-')->toString(), + }; + + if ($expected !== $fileName) { + $this->addError( + sprintf('The file name must use %s ; expected %s.', $this->case, $expected), + $token, + ); + } + } +} diff --git a/src/Standard/Symfony.php b/src/Standard/Symfony.php new file mode 100644 index 00000000..7fa20e2b --- /dev/null +++ b/src/Standard/Symfony.php @@ -0,0 +1,26 @@ +getRules(), + new FileNameRule(baseDirectory: 'templates', ignoredSubDirectories: ['bundles']), + new DirectoryNameRule(baseDirectory: 'templates', ignoredSubDirectories: ['bundles']), + ]; + } +} diff --git a/tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingTest.fixed.twig b/tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingTest.fixed.twig rename to tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingRuleTest.fixed.twig diff --git a/tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingTest.php b/tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingRuleTest.php similarity index 88% rename from tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingTest.php rename to tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingRuleTest.php index cdc65109..e50d5875 100644 --- a/tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingTest.php +++ b/tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Delimiter\BlockNameSpacingRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class BlockNameSpacingTest extends AbstractRuleTestCase +final class BlockNameSpacingRuleTest extends AbstractRuleTestCase { public function testRule(): void { diff --git a/tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingTest.twig b/tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingRuleTest.twig similarity index 100% rename from tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingTest.twig rename to tests/Rules/Delimiter/BlockNameSpacing/BlockNameSpacingRuleTest.twig diff --git a/tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingTest.fixed.twig b/tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingTest.fixed.twig rename to tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingRuleTest.fixed.twig diff --git a/tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingTest.php b/tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingRuleTest.php similarity index 88% rename from tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingTest.php rename to tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingRuleTest.php index deb42700..07e03e8d 100644 --- a/tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingTest.php +++ b/tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Delimiter\DelimiterSpacingRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class DelimiterSpacingTest extends AbstractRuleTestCase +final class DelimiterSpacingRuleTest extends AbstractRuleTestCase { public function testRule(): void { diff --git a/tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingTest.twig b/tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingRuleTest.twig similarity index 100% rename from tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingTest.twig rename to tests/Rules/Delimiter/DelimiterSpacing/DelimiterSpacingRuleTest.twig diff --git a/tests/Rules/File/DirectoryName/DirectoryNameRuleTest.php b/tests/Rules/File/DirectoryName/DirectoryNameRuleTest.php new file mode 100644 index 00000000..7db25242 --- /dev/null +++ b/tests/Rules/File/DirectoryName/DirectoryNameRuleTest.php @@ -0,0 +1,71 @@ +checkRule(new DirectoryNameRule(baseDirectory: 'templates'), []); + } + + public function testRuleValidTemplatesDirectory(): void + { + $this->checkRule( + new DirectoryNameRule(baseDirectory: 'templates'), + [], + __DIR__.'/templates/directory_name_rule_test/DirectoryNameRuleTest.twig' + ); + } + + public function testRuleInvalidTemplatesDirectory(): void + { + $this->checkRule( + new DirectoryNameRule(baseDirectory: 'templates'), + ['DirectoryName.Error:1:1'], + __DIR__.'/templates/directoryNameRuleTest/DirectoryNameRuleTest.twig' + ); + } + + public function testRulePascalCase(): void + { + $this->checkRule(new DirectoryNameRule(DirectoryNameRule::PASCAL_CASE, baseDirectory: 'File'), []); + } + + public function testRuleInvalidDirectory(): void + { + $this->checkRule(new DirectoryNameRule(baseDirectory: 'File'), ['DirectoryName.Error:1:1']); + } + + public function testRuleKebabCase(): void + { + $this->checkRule( + new DirectoryNameRule(DirectoryNameRule::KEBAB_CASE, baseDirectory: 'templates'), + [], + __DIR__.'/templates/directory-name-rule-test/DirectoryNameRuleTest.twig', + ); + } + + public function testRuleCamelCase(): void + { + $this->checkRule( + new DirectoryNameRule(DirectoryNameRule::CAMEL_CASE, baseDirectory: 'templates'), + [], + __DIR__.'/templates/directoryNameRuleTest/DirectoryNameRuleTest.twig', + ); + } + + public function testRuleIgnoredDirectory(): void + { + $this->checkRule( + new DirectoryNameRule(baseDirectory: 'templates', ignoredSubDirectories: ['bundles']), + [], + __DIR__.'/templates/bundles/directoryNameRuleTest/DirectoryNameRuleTest.twig' + ); + } +} diff --git a/tests/Rules/File/DirectoryName/DirectoryNameRuleTest.twig b/tests/Rules/File/DirectoryName/DirectoryNameRuleTest.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/DirectoryName/DirectoryNameRuleTest.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/File/DirectoryName/templates/bundles/directoryNameRuleTest/DirectoryNameRuleTest.twig b/tests/Rules/File/DirectoryName/templates/bundles/directoryNameRuleTest/DirectoryNameRuleTest.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/DirectoryName/templates/bundles/directoryNameRuleTest/DirectoryNameRuleTest.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/File/DirectoryName/templates/directory-name-rule-test/DirectoryNameRuleTest.twig b/tests/Rules/File/DirectoryName/templates/directory-name-rule-test/DirectoryNameRuleTest.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/DirectoryName/templates/directory-name-rule-test/DirectoryNameRuleTest.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/File/DirectoryName/templates/directoryNameRuleTest/DirectoryNameRuleTest.twig b/tests/Rules/File/DirectoryName/templates/directoryNameRuleTest/DirectoryNameRuleTest.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/DirectoryName/templates/directoryNameRuleTest/DirectoryNameRuleTest.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/File/DirectoryName/templates/directory_name_rule_test/DirectoryNameRuleTest.twig b/tests/Rules/File/DirectoryName/templates/directory_name_rule_test/DirectoryNameRuleTest.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/DirectoryName/templates/directory_name_rule_test/DirectoryNameRuleTest.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/File/FileName/FileNameRuleTest.php b/tests/Rules/File/FileName/FileNameRuleTest.php new file mode 100644 index 00000000..07fa01f1 --- /dev/null +++ b/tests/Rules/File/FileName/FileNameRuleTest.php @@ -0,0 +1,43 @@ +checkRule(new FileNameRule(), [ + 'FileName.Error:1:1', + ]); + } + + public function testRulePascalCase(): void + { + $this->checkRule(new FileNameRule(FileNameRule::PASCAL_CASE), []); + } + + public function testRuleKebabCase(): void + { + $this->checkRule(new FileNameRule(FileNameRule::KEBAB_CASE), [], __DIR__.'/file-name-rule-test.twig'); + } + + public function testRuleCamelCase(): void + { + $this->checkRule(new FileNameRule(FileNameRule::CAMEL_CASE), [], __DIR__.'/fileNameRuleTest.camel.twig'); + } + + public function testRuleValidFile(): void + { + $this->checkRule(new FileNameRule(), [], __DIR__.'/file_name_rule_test.twig'); + } + + public function testRuleValidFileWithDot(): void + { + $this->checkRule(new FileNameRule(), [], __DIR__.'/file_name_rule_test.withDot.twig'); + } +} diff --git a/tests/Rules/File/FileName/FileNameRuleTest.twig b/tests/Rules/File/FileName/FileNameRuleTest.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/FileName/FileNameRuleTest.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/File/FileName/file-name-rule-test.twig b/tests/Rules/File/FileName/file-name-rule-test.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/FileName/file-name-rule-test.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/File/FileName/fileNameRuleTest.camel.twig b/tests/Rules/File/FileName/fileNameRuleTest.camel.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/FileName/fileNameRuleTest.camel.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/File/FileName/file_name_rule_test.twig b/tests/Rules/File/FileName/file_name_rule_test.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/FileName/file_name_rule_test.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/File/FileName/file_name_rule_test.withDot.twig b/tests/Rules/File/FileName/file_name_rule_test.withDot.twig new file mode 100644 index 00000000..4a584e49 --- /dev/null +++ b/tests/Rules/File/FileName/file_name_rule_test.withDot.twig @@ -0,0 +1 @@ +Nothing diff --git a/tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingTest.fixed.twig b/tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingTest.fixed.twig rename to tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingRuleTest.fixed.twig diff --git a/tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingTest.php b/tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingRuleTest.php similarity index 87% rename from tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingTest.php rename to tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingRuleTest.php index 4a3678df..ad0259b1 100644 --- a/tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingTest.php +++ b/tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Operator\OperatorNameSpacingRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class OperatorNameSpacingTest extends AbstractRuleTestCase +final class OperatorNameSpacingRuleTest extends AbstractRuleTestCase { public function testRule(): void { diff --git a/tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingTest.twig b/tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingRuleTest.twig similarity index 100% rename from tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingTest.twig rename to tests/Rules/Operator/OperatorNameSpacing/OperatorNameSpacingRuleTest.twig diff --git a/tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.fixed.twig b/tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.fixed.twig rename to tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.fixed.twig diff --git a/tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.php b/tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.php similarity index 95% rename from tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.php rename to tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.php index 499f3f79..fa3cde27 100644 --- a/tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.php +++ b/tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Operator\OperatorSpacingRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class OperatorSpacingTest extends AbstractRuleTestCase +final class OperatorSpacingRuleTest extends AbstractRuleTestCase { public function testRule(): void { @@ -64,7 +64,7 @@ public function testRuleWithTab(): void $this->checkRule( new OperatorSpacingRule(), [], - __DIR__.'/OperatorSpacingTest.tab.twig' + __DIR__.'/OperatorSpacingRuleTest.tab.twig' ); } } diff --git a/tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.tab.fixed.twig b/tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.tab.fixed.twig similarity index 100% rename from tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.tab.fixed.twig rename to tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.tab.fixed.twig diff --git a/tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.tab.twig b/tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.tab.twig similarity index 100% rename from tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.tab.twig rename to tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.tab.twig diff --git a/tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.twig b/tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.twig similarity index 100% rename from tests/Rules/Operator/OperatorSpacing/OperatorSpacingTest.twig rename to tests/Rules/Operator/OperatorSpacing/OperatorSpacingRuleTest.twig diff --git a/tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingTest.fixed.twig b/tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingTest.fixed.twig rename to tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingRuleTest.fixed.twig diff --git a/tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingTest.php b/tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingRuleTest.php similarity index 93% rename from tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingTest.php rename to tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingRuleTest.php index 26bab185..f56c1092 100644 --- a/tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingTest.php +++ b/tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Punctuation\PunctuationSpacingRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class PunctuationSpacingTest extends AbstractRuleTestCase +final class PunctuationSpacingRuleTest extends AbstractRuleTestCase { public function testRule(): void { diff --git a/tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingTest.twig b/tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingRuleTest.twig similarity index 100% rename from tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingTest.twig rename to tests/Rules/Punctuation/PunctuationSpacing/PunctuationSpacingRuleTest.twig diff --git a/tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineTest.fixed.twig b/tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineTest.fixed.twig rename to tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineRuleTest.fixed.twig diff --git a/tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineTest.php b/tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineRuleTest.php similarity index 87% rename from tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineTest.php rename to tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineRuleTest.php index 8c8a6a59..357ec010 100644 --- a/tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineTest.php +++ b/tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Punctuation\TrailingCommaSingleLineRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class TrailingCommaSingleLineTest extends AbstractRuleTestCase +final class TrailingCommaSingleLineRuleTest extends AbstractRuleTestCase { public function testRule(): void { diff --git a/tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineTest.twig b/tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineRuleTest.twig similarity index 100% rename from tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineTest.twig rename to tests/Rules/Punctuation/TrailingCommaSingleLine/TrailingCommaSingleLineRuleTest.twig diff --git a/tests/Rules/Whitespace/BlankEOF/BlankEOFTest.empty.twig b/tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.empty.twig similarity index 100% rename from tests/Rules/Whitespace/BlankEOF/BlankEOFTest.empty.twig rename to tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.empty.twig diff --git a/tests/Rules/Whitespace/BlankEOF/BlankEOFTest.empty2.fixed.twig b/tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.empty2.fixed.twig similarity index 100% rename from tests/Rules/Whitespace/BlankEOF/BlankEOFTest.empty2.fixed.twig rename to tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.empty2.fixed.twig diff --git a/tests/Rules/Whitespace/BlankEOF/BlankEOFTest.empty2.twig b/tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.empty2.twig similarity index 100% rename from tests/Rules/Whitespace/BlankEOF/BlankEOFTest.empty2.twig rename to tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.empty2.twig diff --git a/tests/Rules/Whitespace/BlankEOF/BlankEOFTest.fixed.twig b/tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Whitespace/BlankEOF/BlankEOFTest.fixed.twig rename to tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.fixed.twig diff --git a/tests/Rules/Whitespace/BlankEOF/BlankEOFTest.php b/tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.php similarity index 77% rename from tests/Rules/Whitespace/BlankEOF/BlankEOFTest.php rename to tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.php index e51cb17e..b5e88cb9 100644 --- a/tests/Rules/Whitespace/BlankEOF/BlankEOFTest.php +++ b/tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Whitespace\BlankEOFRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class BlankEOFTest extends AbstractRuleTestCase +final class BlankEOFRuleTest extends AbstractRuleTestCase { public function testRule(): void { @@ -17,15 +17,15 @@ public function testRule(): void $this->checkRule(new BlankEOFRule(), [ 'BlankEOF.Error:2:7', - ], __DIR__.'/BlankEOFTest2.twig'); + ], __DIR__.'/BlankEOFRuleTest2.twig'); } public function testRuleForEmptyFile(): void { - $this->checkRule(new BlankEOFRule(), [], __DIR__.'/BlankEOFTest.empty.twig'); + $this->checkRule(new BlankEOFRule(), [], __DIR__.'/BlankEOFRuleTest.empty.twig'); $this->checkRule(new BlankEOFRule(), [ 'BlankEOF.Error:3:1', - ], __DIR__.'/BlankEOFTest.empty2.twig'); + ], __DIR__.'/BlankEOFRuleTest.empty2.twig'); } } diff --git a/tests/Rules/Whitespace/BlankEOF/BlankEOFTest.twig b/tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.twig similarity index 100% rename from tests/Rules/Whitespace/BlankEOF/BlankEOFTest.twig rename to tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest.twig diff --git a/tests/Rules/Whitespace/BlankEOF/BlankEOFTest2.fixed.twig b/tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest2.fixed.twig similarity index 100% rename from tests/Rules/Whitespace/BlankEOF/BlankEOFTest2.fixed.twig rename to tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest2.fixed.twig diff --git a/tests/Rules/Whitespace/BlankEOF/BlankEOFTest2.twig b/tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest2.twig similarity index 100% rename from tests/Rules/Whitespace/BlankEOF/BlankEOFTest2.twig rename to tests/Rules/Whitespace/BlankEOF/BlankEOFRuleTest2.twig diff --git a/tests/Rules/Whitespace/EmptyLines/EmptyLinesTest.fixed.twig b/tests/Rules/Whitespace/EmptyLines/EmptyLinesRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Whitespace/EmptyLines/EmptyLinesTest.fixed.twig rename to tests/Rules/Whitespace/EmptyLines/EmptyLinesRuleTest.fixed.twig diff --git a/tests/Rules/Whitespace/EmptyLines/EmptyLinesTest.php b/tests/Rules/Whitespace/EmptyLines/EmptyLinesRuleTest.php similarity index 87% rename from tests/Rules/Whitespace/EmptyLines/EmptyLinesTest.php rename to tests/Rules/Whitespace/EmptyLines/EmptyLinesRuleTest.php index 7beea122..b456799d 100644 --- a/tests/Rules/Whitespace/EmptyLines/EmptyLinesTest.php +++ b/tests/Rules/Whitespace/EmptyLines/EmptyLinesRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Whitespace\EmptyLinesRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class EmptyLinesTest extends AbstractRuleTestCase +final class EmptyLinesRuleTest extends AbstractRuleTestCase { public function testRule(): void { diff --git a/tests/Rules/Whitespace/EmptyLines/EmptyLinesTest.twig b/tests/Rules/Whitespace/EmptyLines/EmptyLinesRuleTest.twig similarity index 100% rename from tests/Rules/Whitespace/EmptyLines/EmptyLinesTest.twig rename to tests/Rules/Whitespace/EmptyLines/EmptyLinesRuleTest.twig diff --git a/tests/Rules/Whitespace/Indent/IndentTest.fixed.twig b/tests/Rules/Whitespace/Indent/IndentRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Whitespace/Indent/IndentTest.fixed.twig rename to tests/Rules/Whitespace/Indent/IndentRuleTest.fixed.twig diff --git a/tests/Rules/Whitespace/Indent/IndentTest.fixed2.twig b/tests/Rules/Whitespace/Indent/IndentRuleTest.fixed2.twig similarity index 100% rename from tests/Rules/Whitespace/Indent/IndentTest.fixed2.twig rename to tests/Rules/Whitespace/Indent/IndentRuleTest.fixed2.twig diff --git a/tests/Rules/Whitespace/Indent/IndentTest.php b/tests/Rules/Whitespace/Indent/IndentRuleTest.php similarity index 84% rename from tests/Rules/Whitespace/Indent/IndentTest.php rename to tests/Rules/Whitespace/Indent/IndentRuleTest.php index ddd101ef..5d7894f2 100644 --- a/tests/Rules/Whitespace/Indent/IndentTest.php +++ b/tests/Rules/Whitespace/Indent/IndentRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Whitespace\IndentRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class IndentTest extends AbstractRuleTestCase +final class IndentRuleTest extends AbstractRuleTestCase { public function testConfiguration(): void { @@ -31,8 +31,8 @@ public function testRuleWithSpaceRatio(): void 'Indent.Error:2:1', 'Indent.Error:4:1', ], - __DIR__.'/IndentTest.twig', - __DIR__.'/IndentTest.fixed2.twig', + __DIR__.'/IndentRuleTest.twig', + __DIR__.'/IndentRuleTest.fixed2.twig', ); } } diff --git a/tests/Rules/Whitespace/Indent/IndentTest.twig b/tests/Rules/Whitespace/Indent/IndentRuleTest.twig similarity index 100% rename from tests/Rules/Whitespace/Indent/IndentTest.twig rename to tests/Rules/Whitespace/Indent/IndentRuleTest.twig diff --git a/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.empty.twig b/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.empty.twig similarity index 100% rename from tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.empty.twig rename to tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.empty.twig diff --git a/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.empty2.fixed.twig b/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.empty2.fixed.twig similarity index 100% rename from tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.empty2.fixed.twig rename to tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.empty2.fixed.twig diff --git a/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.empty2.twig b/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.empty2.twig similarity index 100% rename from tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.empty2.twig rename to tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.empty2.twig diff --git a/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.fixed.twig b/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.fixed.twig similarity index 100% rename from tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.fixed.twig rename to tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.fixed.twig diff --git a/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.php b/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.php similarity index 78% rename from tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.php rename to tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.php index d6bad6b3..34b5e0c2 100644 --- a/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.php +++ b/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.php @@ -7,7 +7,7 @@ use TwigCsFixer\Rules\Whitespace\TrailingSpaceRule; use TwigCsFixer\Tests\Rules\AbstractRuleTestCase; -final class TrailingSpaceTest extends AbstractRuleTestCase +final class TrailingSpaceRuleTest extends AbstractRuleTestCase { public function testRule(): void { @@ -22,7 +22,7 @@ public function testRuleWithTab(): void $this->checkRule(new TrailingSpaceRule(), [ 'TrailingSpace.Error:2:32', 'TrailingSpace.Error:4:21', - ], __DIR__.'/TrailingSpaceTest.tab.twig'); + ], __DIR__.'/TrailingSpaceRuleTest.tab.twig'); } public function testRuleWithEmptyFile(): void @@ -30,11 +30,11 @@ public function testRuleWithEmptyFile(): void $this->checkRule( new TrailingSpaceRule(), [], - __DIR__.'/TrailingSpaceTest.empty.twig' + __DIR__.'/TrailingSpaceRuleTest.empty.twig' ); $this->checkRule(new TrailingSpaceRule(), [ 'TrailingSpace.Error:1:2', - ], __DIR__.'/TrailingSpaceTest.empty2.twig'); + ], __DIR__.'/TrailingSpaceRuleTest.empty2.twig'); } } diff --git a/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.tab.fixed.twig b/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.tab.fixed.twig similarity index 100% rename from tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.tab.fixed.twig rename to tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.tab.fixed.twig diff --git a/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.tab.twig b/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.tab.twig similarity index 100% rename from tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.tab.twig rename to tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.tab.twig diff --git a/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.twig b/tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.twig similarity index 100% rename from tests/Rules/Whitespace/TrailingSpace/TrailingSpaceTest.twig rename to tests/Rules/Whitespace/TrailingSpace/TrailingSpaceRuleTest.twig diff --git a/tests/Standard/SymfonyTest.php b/tests/Standard/SymfonyTest.php new file mode 100644 index 00000000..36462638 --- /dev/null +++ b/tests/Standard/SymfonyTest.php @@ -0,0 +1,31 @@ +getRules()); + } +}