function PhpStorageFactoryTest::testGetOverride

Same name in other branches
  1. 9 core/modules/system/tests/src/Kernel/PhpStorage/PhpStorageFactoryTest.php \Drupal\Tests\system\Kernel\PhpStorage\PhpStorageFactoryTest::testGetOverride()
  2. 8.9.x core/modules/system/tests/src/Kernel/PhpStorage/PhpStorageFactoryTest.php \Drupal\Tests\system\Kernel\PhpStorage\PhpStorageFactoryTest::testGetOverride()
  3. 10 core/modules/system/tests/src/Kernel/PhpStorage/PhpStorageFactoryTest.php \Drupal\Tests\system\Kernel\PhpStorage\PhpStorageFactoryTest::testGetOverride()

Tests the get() method with overridden settings.

File

core/modules/system/tests/src/Kernel/PhpStorage/PhpStorageFactoryTest.php, line 55

Class

PhpStorageFactoryTest
Tests the PHP storage factory.

Namespace

Drupal\Tests\system\Kernel\PhpStorage

Code

public function testGetOverride() : void {
    $this->setSettings('test');
    $php = PhpStorageFactory::get('test');
    // The FileReadOnlyStorage should be used from settings.
    $this->assertInstanceOf(MockPhpStorage::class, $php);
    // Test that the name is used for the bin when it is NULL.
    $this->setSettings('test', [
        'bin' => NULL,
    ]);
    $php = PhpStorageFactory::get('test');
    $this->assertInstanceOf(MockPhpStorage::class, $php);
    $this->assertSame('test', $php->getConfigurationValue('bin'), 'Name value was used for bin.');
    // Test that a default directory is set if it's empty.
    $this->setSettings('test', [
        'directory' => NULL,
    ]);
    $php = PhpStorageFactory::get('test');
    $this->assertInstanceOf(MockPhpStorage::class, $php);
    $this->assertSame(PublicStream::basePath() . '/php', $php->getConfigurationValue('directory'), 'Default file directory was used.');
    // Test that a default storage class is set if it's empty.
    $this->setSettings('test', [
        'class' => NULL,
    ]);
    $php = PhpStorageFactory::get('test');
    $this->assertInstanceOf(MTimeProtectedFileStorage::class, $php);
    // Test that a default secret is not returned if it's set in the override.
    $this->setSettings('test');
    $php = PhpStorageFactory::get('test');
    $this->assertNotEquals('mock hash salt', $php->getConfigurationValue('secret'), 'The default secret is not used if a secret is set in the overridden settings.');
    // Test that a default secret is set if it's empty.
    $this->setSettings('test', [
        'secret' => NULL,
    ]);
    $php = PhpStorageFactory::get('test');
    $this->assertSame('mock hash salt', $php->getConfigurationValue('secret'), 'The default secret is used if one is not set in the overridden settings.');
}

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