function AccessTest::testFileCacheability
Tests cacheability metadata.
File
- 
              core/
modules/ file/ tests/ src/ Kernel/ AccessTest.php, line 169  
Class
- AccessTest
 - Tests for the File access control.
 
Namespace
Drupal\Tests\file\KernelCode
public function testFileCacheability() : void {
  $file = File::create([
    'filename' => 'green-scarf',
    'uri' => 'private://green-scarf',
    'filemime' => 'text/plain',
  ]);
  $file->setPermanent();
  $file->save();
  \Drupal::service('session')->set('anonymous_allowed_file_ids', [
    $file->id() => $file->id(),
  ]);
  $account = User::getAnonymousUser();
  $file->setOwnerId($account->id())
    ->save();
  $this->assertSame([
    'session',
    'user',
  ], $file->access('view', $account, TRUE)
    ->getCacheContexts());
  $this->assertSame([
    'session',
    'user',
  ], $file->access('download', $account, TRUE)
    ->getCacheContexts());
  $account = $this->createUser();
  $file->setOwnerId($account->id())
    ->save();
  $this->assertSame([
    'user',
  ], $file->access('view', $account, TRUE)
    ->getCacheContexts());
  $this->assertSame([
    'user',
  ], $file->access('download', $account, TRUE)
    ->getCacheContexts());
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.