UpdateDeleteFileIfStaleTest.php

Same filename in other branches
  1. 9 core/modules/update/tests/src/Kernel/UpdateDeleteFileIfStaleTest.php
  2. 8.9.x core/modules/update/tests/src/Kernel/UpdateDeleteFileIfStaleTest.php
  3. 11.x core/modules/update/tests/src/Kernel/UpdateDeleteFileIfStaleTest.php

Namespace

Drupal\Tests\update\Kernel

File

core/modules/update/tests/src/Kernel/UpdateDeleteFileIfStaleTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\update\Kernel;

use Drupal\KernelTests\KernelTestBase;

/**
 * Tests the update_delete_file_if_stale() function.
 *
 * @group update
 */
class UpdateDeleteFileIfStaleTest extends KernelTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'system',
        'update',
    ];
    
    /**
     * Tests the deletion of stale files.
     */
    public function testUpdateDeleteFileIfStale() : void {
        $file_system = $this->container
            ->get('file_system');
        $file_name = $file_system->saveData($this->randomMachineName(), 'public://');
        $this->assertNotNull($file_name);
        $file_path = $file_system->realpath($file_name);
        // During testing, the file change and the stale checking occurs in the same
        // request, so the beginning of request will be before the file changes and
        // \Drupal::time()->getRequestTime() - $filectime is negative or zero.
        // Set the maximum age to a number even smaller than that.
        $this->config('system.file')
            ->set('temporary_maximum_age', 100000)
            ->save();
        // First test that the file is not stale and thus not deleted.
        $deleted = update_delete_file_if_stale($file_path);
        $this->assertFalse($deleted);
        $this->assertFileExists($file_path);
        // Set the maximum age to a number smaller than
        // \Drupal::time()->getRequestTime() - $filectime.
        $this->config('system.file')
            ->set('temporary_maximum_age', -100000)
            ->save();
        // Now attempt to delete the file; as it should be considered stale, this
        // attempt should succeed.
        $deleted = update_delete_file_if_stale($file_path);
        $this->assertTrue($deleted);
        $this->assertFileDoesNotExist($file_path);
    }

}

Classes

Title Deprecated Summary
UpdateDeleteFileIfStaleTest Tests the update_delete_file_if_stale() function.

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