1 config.test public ConfigurationTest::testConfigHtaccess()

Tests that config directories are protected by .htaccess files.

File

core/modules/config/tests/config.test, line 167
Tests for Configuration module.

Class

ConfigurationTest
Tests reading and writing file contents.

Code

public function testConfigHtaccess() {
  // This test only run if using file-based config storage.
  $active_storage = config_get_config_storage();
  $active_dir = config_get_config_directory();
  if (!is_a($active_storage, 'ConfigFileStorage')) {
    $this->assert(TRUE, 'Config storage is not file-based, so .htaccess test skipped.');
    return;
  }

  // Visit the status report to confirm the file is re-created automatically.
  $admin_user = $this->backdropCreateUser(array(
    'access administration pages',
    'access site reports',
  ));
  $this->backdropLogin($admin_user);

  // Remove .htaccess file so we can test that it gets re-created.
  @backdrop_unlink($active_dir . '/.htaccess');
  $this->assertFalse(is_file($active_dir . '/.htaccess'), "Removed the .htaccess file in the 'active' config directory.");

  $this->backdropGet('admin/reports/status');
  $this->assertTrue(is_file($active_dir . '/.htaccess'), "Re-created the .htaccess file in the 'active' config directory.");

  // Verify contents of .htaccess file.
  $file = file_get_contents($active_dir . '/.htaccess');
  $this->assertEqual($file, file_htaccess_lines(), 'The .htaccess file contains the proper content.');
}