/** * Tests writing with one class and reading with another. * * @group Drupal * @group PhpStorage */ public function testReadOnly() { $php = new FileStorage($this->standardSettings); $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->assertSame($success, TRUE); $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->assertSame($php_read->exists($name), TRUE); // Saving and deleting should always fail. $this->assertFalse($php_read->save($name, $code)); $this->assertFalse($php_read->delete($name)); }