Skip to content
Snippets Groups Projects
Commit 8a8cbe83 authored by Adam G-H's avatar Adam G-H
Browse files

Issue #3364748 by phenaproxima: Add test coverage for the permissions handling...

Issue #3364748 by phenaproxima: Add test coverage for the permissions handling that SiteConfigurationExcluder does for `sites/default`
parent de0c72c8
No related branches found
No related tags found
2 merge requests!989Issue #3356804 by phenaproxima: Flag a warning during status check if the...,!902Issue #3364748: Add test coverage for the permissions handling that SiteConfigurationExcluder does for `sites/default`
......@@ -80,6 +80,34 @@ class SiteConfigurationExcluderTest extends PackageManagerKernelTestBase {
}
}
/**
* Tests that `sites/default` is made writable in the stage directory.
*/
public function testDefaultSiteDirectoryPermissions(): void {
$project_root = $this->container->get(PathLocator::class)
->getProjectRoot();
$live_dir = $project_root . '/sites/default';
chmod($live_dir, 0555);
$this->assertDirectoryIsNotWritable($live_dir);
// Record the permissions of the directory now, so we can be sure those
// permissions are restored after apply.
$original_permissions = fileperms($live_dir);
$this->assertIsInt($original_permissions);
$stage = $this->createStage();
$stage->create();
// The staged `sites/default` will be made world-writable, because we want
// to ensure the scaffold plugin can copy certain files into there.
$staged_dir = str_replace($project_root, $stage->getStageDirectory(), $live_dir);
$this->assertDirectoryIsWritable($staged_dir);
$stage->require(['ext-json:*']);
$stage->apply();
// After applying, the live directory should NOT inherit the staged
// directory's world-writable permissions.
$this->assertSame($original_permissions, fileperms($live_dir));
}
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment