FileSaveHtaccessLoggingTest.php

Same filename in other branches
  1. 9 core/modules/system/tests/src/Functional/File/FileSaveHtaccessLoggingTest.php
  2. 8.9.x core/modules/system/tests/src/Functional/File/FileSaveHtaccessLoggingTest.php
  3. 11.x core/modules/system/tests/src/Functional/File/FileSaveHtaccessLoggingTest.php

Namespace

Drupal\Tests\system\Functional\File

File

core/modules/system/tests/src/Functional/File/FileSaveHtaccessLoggingTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\system\Functional\File;

use Drupal\Component\FileSecurity\FileSecurity;
use Drupal\Tests\BrowserTestBase;

/**
 * Tests the log message added by file_save_htaccess().
 *
 * @group File
 */
class FileSaveHtaccessLoggingTest extends BrowserTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'dblog',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * Tests file_save_htaccess().
     */
    public function testHtaccessSave() : void {
        // Prepare test directories.
        $private = $this->publicFilesDirectory . '/test/private';
        // Verify that file_save_htaccess() returns FALSE if .htaccess cannot be
        // written and writes a correctly formatted message to the error log. Set
        // $private to TRUE so all possible .htaccess lines are written.
        
        /** @var \Drupal\Core\File\HtaccessWriterInterface $htaccess */
        $htaccess = \Drupal::service('file.htaccess_writer');
        $this->assertFalse($htaccess->write($private, TRUE));
        $this->drupalLogin($this->drupalCreateUser([
            'access site reports',
        ]));
        $this->drupalGet('admin/reports/dblog');
        $this->clickLink("Security warning: Couldn't write .htaccess file.");
        $lines = FileSecurity::htaccessLines(TRUE);
        foreach (array_filter(explode("\n", $lines)) as $line) {
            $this->assertSession()
                ->assertEscaped($line);
        }
    }

}

Classes

Title Deprecated Summary
FileSaveHtaccessLoggingTest Tests the log message added by file_save_htaccess().

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