function FileStorageTest::testReadOnly

Tests writing with one class and reading with another.

File

drupal/core/modules/system/lib/Drupal/system/Tests/PhpStorage/FileStorageTest.php, line 50
Definition of Drupal\system\Tests\PhpStorage\FileStorageTest.

Class

FileStorageTest
Tests the simple file storage.

Namespace

Drupal\system\Tests\PhpStorage

Code

function testReadOnly() {
  $php = $this->storageFactory
    ->get('simpletest');
  $name = $this
    ->randomName() . '/' . $this
    ->randomName() . '.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
    ->assertIdentical($success, TRUE);
  $php_read = $this->storageFactory
    ->get('readonly');
  $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
    ->assertIdentical($php_read
    ->exists($name), TRUE);

  // Saving and deleting should always fail.
  $this
    ->assertFalse($php_read
    ->save($name, $code));
  $this
    ->assertFalse($php_read
    ->delete($name));
}