Skip to content

Commit 7947a3a

Browse files
committed
minor #4844 Same requirements for descriptions (SpacePossum)
This PR was merged into the 2.15 branch. Discussion ---------- Same requirements for descriptions Commits ------- 4cbaf27 Same requirements for descriptions
2 parents 4def45b + 4cbaf27 commit 7947a3a

File tree

4 files changed

+26
-15
lines changed

4 files changed

+26
-15
lines changed

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1806,7 +1806,7 @@ Choose from the list of available rules:
18061806

18071807
Lambdas not (indirect) referencing ``$this`` must be declared ``static``.
18081808

1809-
*Risky rule: risky when using "->bindTo" on lambdas without referencing to ``$this``.*
1809+
*Risky rule: risky when using ``->bindTo`` on lambdas without referencing to ``$this``.*
18101810

18111811
* **strict_comparison** [@PhpCsFixer:risky]
18121812

src/Fixer/Comment/CommentToPhpdocFixer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public function getDefinition()
6363
'Comments with annotation should be docblock when used on structural elements.',
6464
[new CodeSample("<?php /* header */ \$x = true; /* @var bool \$isFoo */ \$isFoo = true;\n")],
6565
null,
66-
'Risky as new docblocks might mean more, e.g. a Doctrine entity might have a new column in database'
66+
'Risky as new docblocks might mean more, e.g. a Doctrine entity might have a new column in database.'
6767
);
6868
}
6969

src/Fixer/FunctionNotation/StaticLambdaFixer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public function getDefinition()
3434
'Lambdas not (indirect) referencing `$this` must be declared `static`.',
3535
[new CodeSample("<?php\n\$a = function () use (\$b)\n{ echo \$b;\n};\n")],
3636
null,
37-
'Risky when using "->bindTo" on lambdas without referencing to `$this`.'
37+
'Risky when using `->bindTo` on lambdas without referencing to `$this`.'
3838
);
3939
}
4040

tests/AutoReview/FixerTest.php

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
use PhpCsFixer\Fixer\DeprecatedFixerInterface;
1919
use PhpCsFixer\Fixer\FixerInterface;
2020
use PhpCsFixer\Fixer\Whitespace\SingleBlankLineAtEofFixer;
21+
use PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface;
22+
use PhpCsFixer\FixerConfiguration\FixerOptionInterface;
2123
use PhpCsFixer\FixerDefinition\CodeSampleInterface;
2224
use PhpCsFixer\FixerDefinition\FileSpecificCodeSampleInterface;
2325
use PhpCsFixer\FixerDefinition\VersionSpecificCodeSampleInterface;
@@ -52,16 +54,13 @@ final class FixerTest extends TestCase
5254
*/
5355
public function testFixerDefinitions(AbstractFixer $fixer)
5456
{
55-
static::assertInstanceOf(\PhpCsFixer\Fixer\DefinedFixerInterface::class, $fixer);
57+
static::assertInstanceOf(DefinedFixerInterface::class, $fixer);
5658

5759
$fixerName = $fixer->getName();
5860
$definition = $fixer->getDefinition();
5961
$fixerIsConfigurable = $fixer instanceof ConfigurationDefinitionFixerInterface;
6062

61-
static::assertRegExp('/^[A-Z`].*\.$/', $definition->getSummary(), sprintf('[%s] Description must start with capital letter or a ` and end with dot.', $fixerName));
62-
static::assertNotContains('phpdocs', $definition->getSummary(), sprintf('[%s] `PHPDoc` must not be in the plural in description.', $fixerName), true);
63-
static::assertCorrectCasing($definition->getSummary(), 'PHPDoc', sprintf('[%s] `PHPDoc` must be in correct casing in description.', $fixerName));
64-
static::assertCorrectCasing($definition->getSummary(), 'PHPUnit', sprintf('[%s] `PHPUnit` must be in correct casing in description.', $fixerName));
63+
self::assertValidDescription($fixerName, 'summary', $definition->getSummary());
6564

6665
$samples = $definition->getCodeSamples();
6766
static::assertNotEmpty($samples, sprintf('[%s] Code samples are required.', $fixerName));
@@ -169,10 +168,7 @@ public function testFixerDefinitions(AbstractFixer $fixer)
169168
}
170169

171170
if ($fixer->isRisky()) {
172-
static::assertStringIsNotEmpty($definition->getRiskyDescription(), sprintf('[%s] Risky reasoning is required.', $fixerName));
173-
static::assertNotContains('phpdocs', $definition->getRiskyDescription(), sprintf('[%s] `PHPDoc` must not be in the plural in risky reasoning.', $fixerName), true);
174-
static::assertCorrectCasing($definition->getRiskyDescription(), 'PHPDoc', sprintf('[%s] `PHPDoc` must be in correct casing in risky reasoning.', $fixerName));
175-
static::assertCorrectCasing($definition->getRiskyDescription(), 'PHPUnit', sprintf('[%s] `PHPUnit` must be in correct casing in risky reasoning.', $fixerName));
171+
self::assertValidDescription($fixerName, 'risky description', $definition->getRiskyDescription());
176172
} else {
177173
static::assertNull($definition->getRiskyDescription(), sprintf('[%s] Fixer is not risky so no description of it expected.', $fixerName));
178174
}
@@ -210,7 +206,7 @@ public function testFixersAreFinal(FixerInterface $fixer)
210206
*/
211207
public function testFixersAreDefined(FixerInterface $fixer)
212208
{
213-
static::assertInstanceOf(\PhpCsFixer\Fixer\DefinedFixerInterface::class, $fixer);
209+
static::assertInstanceOf(DefinedFixerInterface::class, $fixer);
214210
}
215211

216212
/**
@@ -248,10 +244,10 @@ public function testFixerConfigurationDefinitions(ConfigurationDefinitionFixerIn
248244
{
249245
$configurationDefinition = $fixer->getConfigurationDefinition();
250246

251-
static::assertInstanceOf(\PhpCsFixer\FixerConfiguration\FixerConfigurationResolverInterface::class, $configurationDefinition);
247+
static::assertInstanceOf(FixerConfigurationResolverInterface::class, $configurationDefinition);
252248

253249
foreach ($configurationDefinition->getOptions() as $option) {
254-
static::assertInstanceOf(\PhpCsFixer\FixerConfiguration\FixerOptionInterface::class, $option);
250+
static::assertInstanceOf(FixerOptionInterface::class, $option);
255251
static::assertNotEmpty($option->getDescription());
256252

257253
static::assertSame(
@@ -339,4 +335,19 @@ private static function assertCorrectCasing($needle, $haystack, $message)
339335
{
340336
static::assertSame(substr_count(strtolower($haystack), strtolower($needle)), substr_count($haystack, $needle), $message);
341337
}
338+
339+
/**
340+
* @param string $fixerName
341+
* @param string $descriptionType
342+
* @param mixed $description
343+
*/
344+
private static function assertValidDescription($fixerName, $descriptionType, $description)
345+
{
346+
static::assertInternalType('string', $description);
347+
static::assertRegExp('/^[A-Z`][^"]+\.$/', $description, sprintf('[%s] The %s must start with capital letter or a ` and end with dot.', $fixerName, $descriptionType));
348+
static::assertNotContains('phpdocs', $description, sprintf('[%s] `PHPDoc` must not be in the plural in %s.', $fixerName, $descriptionType), true);
349+
static::assertCorrectCasing($description, 'PHPDoc', sprintf('[%s] `PHPDoc` must be in correct casing in %s.', $fixerName, $descriptionType));
350+
static::assertCorrectCasing($description, 'PHPUnit', sprintf('[%s] `PHPUnit` must be in correct casing in %s.', $fixerName, $descriptionType));
351+
static::assertFalse(strpos($descriptionType, '``'), sprintf('[%s] The %s must no contain sequential backticks.', $fixerName, $descriptionType));
352+
}
342353
}

0 commit comments

Comments
 (0)