function WritableFileSystemValidatorTest::setUpPermissions

Sets the permissions of the test project's directories.

Parameters

int $root_permissions: The permissions for the project root.

int $web_root_permissions: The permissions for the web root.

int $vendor_permissions: The permissions for the vendor directory.

string $relative_web_root: The web root path, relative to the project root, or an empty string if the web root and project root are the same.

2 calls to WritableFileSystemValidatorTest::setUpPermissions()
WritableFileSystemValidatorTest::testWritable in core/modules/package_manager/tests/src/Kernel/WritableFileSystemValidatorTest.php
Tests the file system permissions validator.
WritableFileSystemValidatorTest::testWritableDuringPreApply in core/modules/package_manager/tests/src/Kernel/WritableFileSystemValidatorTest.php
Tests the file system permissions validator during pre-apply.

File

core/modules/package_manager/tests/src/Kernel/WritableFileSystemValidatorTest.php, line 183

Class

WritableFileSystemValidatorTest
Unit tests the file system permissions validator.

Namespace

Drupal\Tests\package_manager\Kernel

Code

private function setUpPermissions(int $root_permissions, int $web_root_permissions, int $vendor_permissions, string $relative_web_root) : void {
    
    /** @var \Drupal\package_manager_bypass\MockPathLocator $path_locator */
    $path_locator = $this->container
        ->get(PathLocator::class);
    $project_root = $web_root = $path_locator->getProjectRoot();
    $vendor_dir = $path_locator->getVendorDirectory();
    // Create the web root directory, if necessary.
    if (!empty($relative_web_root)) {
        $web_root .= '/' . $relative_web_root;
        mkdir($web_root);
    }
    $path_locator->setPaths($project_root, $vendor_dir, $relative_web_root, $path_locator->getStagingRoot());
    // We need to set the vendor directory and web root permissions first
    // because they may be located inside the project root.
    $this->assertTrue(chmod($vendor_dir, $vendor_permissions));
    if ($project_root !== $web_root) {
        $this->assertTrue(chmod($web_root, $web_root_permissions));
    }
    $this->assertTrue(chmod($project_root, $root_permissions));
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.