public function FileStorageReadOnlyTest::testReadOnly in Drupal 10
Same name and namespace in other branches
- 8 core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php \Drupal\Tests\Component\PhpStorage\FileStorageReadOnlyTest::testReadOnly()
- 9 core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php \Drupal\Tests\Component\PhpStorage\FileStorageReadOnlyTest::testReadOnly()
Tests writing with one class and reading with another.
File
- core/tests/ Drupal/ Tests/ Component/ PhpStorage/ FileStorageReadOnlyTest.php, line 51 
Class
- FileStorageReadOnlyTest
- @coversDefaultClass \Drupal\Component\PhpStorage\FileReadOnlyStorage
Namespace
Drupal\Tests\Component\PhpStorageCode
public function testReadOnly() {
  // Random generator.
  $random = new Random();
  $php = new FileStorage($this->standardSettings);
  $name = $random
    ->name(8, TRUE) . '/' . $random
    ->name(8, TRUE) . '.php';
  // Find a global that doesn't exist.
  do {
    $random = mt_rand(10000, 100000);
  } while (isset($GLOBALS[$random]));
  // Write out a PHP file and ensure it's successfully loaded.
  $code = "<?php\n\$GLOBALS[{$random}] = TRUE;";
  $success = $php
    ->save($name, $code);
  $this
    ->assertTrue($success);
  $php_read = new FileReadOnlyStorage($this->readonlyStorage);
  $php_read
    ->load($name);
  $this
    ->assertTrue($GLOBALS[$random]);
  // If the file was successfully loaded, it must also exist, but ensure the
  // exists() method returns that correctly.
  $this
    ->assertTrue($php_read
    ->exists($name));
  // Saving and deleting should always fail.
  $this
    ->assertFalse($php_read
    ->save($name, $code));
  $this
    ->assertFalse($php_read
    ->delete($name));
  unset($GLOBALS[$random]);
}