class ConfigTest
@coversDefaultClass Drupal\Composer\Plugin\VendorHardening\Config
@group VendorHardening
Hierarchy
- class \Drupal\Tests\Composer\Plugin\VendorHardening\ConfigTest uses \Drupal\Tests\Traits\PhpUnitWarnings extends \PHPUnit\Framework\TestCase
Expanded class hierarchy of ConfigTest
File
-
core/
tests/ Drupal/ Tests/ Composer/ Plugin/ VendorHardening/ ConfigTest.php, line 14
Namespace
Drupal\Tests\Composer\Plugin\VendorHardeningView source
class ConfigTest extends TestCase {
use PhpUnitWarnings;
/**
* @covers ::getPathsForPackage
*/
public function testGetPathsForPackageMixedCase() {
$config = $this->getMockBuilder(Config::class)
->onlyMethods([
'getAllCleanupPaths',
])
->disableOriginalConstructor()
->getMock();
$config->expects($this->once())
->method('getAllCleanupPaths')
->willReturn([
'package' => [
'path',
],
]);
$this->assertSame([
'path',
], $config->getPathsForPackage('pACKage'));
}
/**
* @covers ::getAllCleanupPaths
*/
public function testNoRootMergeConfig() {
// Root package has no extra field.
$root = $this->getMockBuilder(RootPackageInterface::class)
->onlyMethods([
'getExtra',
])
->getMockForAbstractClass();
$root->expects($this->once())
->method('getExtra')
->willReturn([]);
$config = new Config($root);
$ref_default = new \ReflectionProperty($config, 'defaultConfig');
$ref_default->setAccessible(TRUE);
$ref_plugin_config = new \ReflectionMethod($config, 'getAllCleanupPaths');
$ref_plugin_config->setAccessible(TRUE);
$this->assertEquals($ref_default->getValue($config), $ref_plugin_config->invoke($config));
}
/**
* @covers ::getAllCleanupPaths
*/
public function testRootMergeConfig() {
// Root package has configuration in extra.
$root = $this->getMockBuilder(RootPackageInterface::class)
->onlyMethods([
'getExtra',
])
->getMockForAbstractClass();
$root->expects($this->once())
->method('getExtra')
->willReturn([
'drupal-core-vendor-hardening' => [
'isa/string' => 'test_dir',
'an/array' => [
'test_dir',
'doc_dir',
],
],
]);
$config = new Config($root);
$ref_plugin_config = new \ReflectionMethod($config, 'getAllCleanupPaths');
$ref_plugin_config->setAccessible(TRUE);
$plugin_config = $ref_plugin_config->invoke($config);
$this->assertSame([
'test_dir',
], $plugin_config['isa/string']);
$this->assertSame([
'test_dir',
'doc_dir',
], $plugin_config['an/array']);
}
/**
* @covers ::getAllCleanupPaths
*/
public function testMixedCaseConfigCleanupPackages() {
// Root package has configuration in extra.
$root = $this->getMockBuilder(RootPackageInterface::class)
->onlyMethods([
'getExtra',
])
->getMockForAbstractClass();
$root->expects($this->once())
->method('getExtra')
->willReturn([
'drupal-core-vendor-hardening' => [
'NotMikey179/vfsStream' => [
'src/test',
],
],
]);
$config = new Config($root);
$ref_plugin_config = new \ReflectionMethod($config, 'getAllCleanupPaths');
$ref_plugin_config->setAccessible(TRUE);
// Put some mixed-case in the defaults.
$ref_default = new \ReflectionProperty($config, 'defaultConfig');
$ref_default->setAccessible(TRUE);
$ref_default->setValue($config, [
'BeHatted/Mank' => [
'tests',
],
'SymFunic/HTTPFoundational' => [
'src',
],
]);
$plugin_config = $ref_plugin_config->invoke($config);
foreach (array_keys($plugin_config) as $package_name) {
$this->assertDoesNotMatchRegularExpression('/[A-Z]/', $package_name);
}
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
ConfigTest::testGetPathsForPackageMixedCase | public | function | @covers ::getPathsForPackage[[api-linebreak]] |
ConfigTest::testMixedCaseConfigCleanupPackages | public | function | @covers ::getAllCleanupPaths[[api-linebreak]] |
ConfigTest::testNoRootMergeConfig | public | function | @covers ::getAllCleanupPaths[[api-linebreak]] |
ConfigTest::testRootMergeConfig | public | function | @covers ::getAllCleanupPaths[[api-linebreak]] |
PhpUnitWarnings::$deprecationWarnings | private static | property | Deprecation warnings from PHPUnit to raise with @trigger_error(). |
PhpUnitWarnings::addWarning | public | function | Converts PHPUnit deprecation warnings to E_USER_DEPRECATED. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.