function FileStorageTest::testDeleteAll

Same name in other branches
  1. 9 core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php \Drupal\Tests\Component\PhpStorage\FileStorageTest::testDeleteAll()
  2. 10 core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php \Drupal\Tests\Component\PhpStorage\FileStorageTest::testDeleteAll()
  3. 11.x core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php \Drupal\Tests\Component\PhpStorage\FileStorageTest::testDeleteAll()

@covers ::deleteAll

File

core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php, line 60

Class

FileStorageTest
@coversDefaultClass \Drupal\Component\PhpStorage\FileStorage @group Drupal @group PhpStorage

Namespace

Drupal\Tests\Component\PhpStorage

Code

public function testDeleteAll() {
    // Random generator.
    $random_generator = new Random();
    // Write out some files.
    $php = new FileStorage($this->standardSettings);
    $name = $random_generator->name(8, TRUE) . '/' . $random_generator->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;";
    $this->assertTrue($php->save($name, $code), 'Saved php file');
    $php->load($name);
    $this->assertTrue($GLOBALS[$random], 'File saved correctly with correct value');
    // Make sure directory exists prior to removal.
    $this->assertDirectoryExists($this->directory . '/test');
    $this->assertTrue($php->deleteAll(), 'Delete all reported success');
    $this->assertFalse($php->load($name));
    $this->assertDirectoryNotExists($this->directory . '/test');
    // Should still return TRUE if directory has already been deleted.
    $this->assertTrue($php->deleteAll(), 'Delete all succeeds with nothing to delete');
    unset($GLOBALS[$random]);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.