3 namespace Drupal\Tests\Component\PhpStorage;
5 use Drupal\Component\PhpStorage\FileStorage;
8 * @coversDefaultClass \Drupal\Component\PhpStorage\FileStorage
12 class FileStorageTest extends PhpStorageTestBase {
15 * Standard test settings to pass to storage instances.
19 protected $standardSettings;
24 protected function setUp() {
27 $this->standardSettings = [
28 'directory' => $this->directory,
34 * Tests basic load/save/delete operations.
41 public function testCRUD() {
42 $php = new FileStorage($this->standardSettings);
43 $this->assertCRUD($php);
49 public function testWriteable() {
50 $php = new FileStorage($this->standardSettings);
51 $this->assertTrue($php->writeable());
57 public function testDeleteAll() {
59 // Write out some files.
60 $php = new FileStorage($this->standardSettings);
62 $name = $this->randomMachineName() . '/' . $this->randomMachineName() . '.php';
64 // Find a global that doesn't exist.
66 $random = mt_rand(10000, 100000);
67 } while (isset($GLOBALS[$random]));
69 // Write out a PHP file and ensure it's successfully loaded.
70 $code = "<?php\n\$GLOBALS[$random] = TRUE;";
71 $this->assertTrue($php->save($name, $code), 'Saved php file');
73 $this->assertTrue($GLOBALS[$random], 'File saved correctly with correct value');
75 // Make sure directory exists prior to removal.
76 $this->assertTrue(file_exists($this->directory . '/test'), 'File storage directory does not exist.');
78 $this->assertTrue($php->deleteAll(), 'Delete all reported success');
79 $this->assertFalse($php->load($name));
80 $this->assertFalse(file_exists($this->directory . '/test'), 'File storage directory does not exist after call to deleteAll()');
82 // Should still return TRUE if directory has already been deleted.
83 $this->assertTrue($php->deleteAll(), 'Delete all succeeds with nothing to delete');
84 unset($GLOBALS[$random]);