Same filename in this branch
- 10 core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
- 10 core/tests/Drupal/KernelTests/Core/Config/Storage/FileStorageTest.php
Same filename and directory in other branches
- 8.9.x core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
- 9 core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
Namespace
Drupal\Tests\Component\PhpStorage
File
core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\Component\PhpStorage;
use Drupal\Component\PhpStorage\FileStorage;
use Drupal\Component\Utility\Random;
use Drupal\Tests\Traits\PhpUnitWarnings;
use org\bovigo\vfs\vfsStreamDirectory;
use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait;
class FileStorageTest extends PhpStorageTestBase {
use PhpUnitWarnings, ExpectDeprecationTrait;
protected $standardSettings;
protected function setUp() : void {
parent::setUp();
$this->standardSettings = [
'directory' => $this->directory,
'bin' => 'test',
];
}
public function testCRUD() {
$php = new FileStorage($this->standardSettings);
$this
->assertCRUD($php);
}
public function testWritable() {
$this
->expectDeprecation('Drupal\\Component\\PhpStorage\\FileStorage::writeable() is deprecated in drupal:10.1.0 and will be removed from drupal:11.0.0. There is no replacement. See https://www.drupal.org/node/3155413');
$php = new FileStorage($this->standardSettings);
$this
->assertTrue($php
->writeable());
}
public function testDeleteAll() {
$random_generator = new Random();
$php = new FileStorage($this->standardSettings);
$name = $random_generator
->name(8, TRUE) . '/' . $random_generator
->name(8, TRUE) . '.php';
do {
$random = 'test' . mt_rand(10000, 100000);
} while (isset($GLOBALS[$random]));
$code = "<?php\n\$GLOBALS['{$random}'] = TRUE;";
$this
->assertTrue($php
->save($name, $code), 'Saved php file');
$php
->load($name);
$this
->assertTrue($GLOBALS[$random], 'File saved correctly with correct value');
$this
->assertDirectoryExists($this->directory . '/test');
$this
->assertTrue($php
->deleteAll(), 'Delete all reported success');
$this
->assertFalse($php
->load($name));
$this
->assertDirectoryDoesNotExist($this->directory . '/test');
$this
->assertTrue($php
->deleteAll(), 'Delete all succeeds with nothing to delete');
unset($GLOBALS[$random]);
}
public function testCreateDirectoryFailWarning() {
$directory = new vfsStreamDirectory('permissionDenied', 0200);
$storage = new FileStorage([
'directory' => $directory
->url(),
'bin' => 'test',
]);
$code = "<?php\n echo 'here';";
$this
->expectWarning();
$this
->expectWarningMessage('mkdir(): Permission Denied');
$storage
->save('subdirectory/foo.php', $code);
}
}
Classes