Skip to content
Snippets Groups Projects

Issue #3364748: Add test coverage for the permissions handling that SiteConfigurationExcluder does for `sites/default`

Merged Issue #3364748: Add test coverage for the permissions handling that SiteConfigurationExcluder does for `sites/default`
Merged Adam G-H requested to merge issue/automatic_updates-3364748:sites-default-test into 3.0.x
@@ -80,6 +80,34 @@ class SiteConfigurationExcluderTest extends PackageManagerKernelTestBase {
@@ -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));
 
}
 
}
}
/**
/**
Loading