RedirectCacheTest.php in Redirect 403 to User Login 2.x
File
tests/src/Functional/RedirectCacheTest.php
View source
<?php
namespace Drupal\Tests\r4032login\Functional;
use Drupal\file\Entity\File;
use Drupal\node\Entity\NodeType;
use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\file\Functional\FileFieldCreationTrait;
class RedirectCacheTest extends BrowserTestBase {
use FileFieldCreationTrait;
protected $defaultTheme = 'stark';
protected static $modules = [
'file',
'node',
'page_cache',
'r4032login',
];
protected $node;
protected $file;
protected function setUp() {
parent::setUp();
$config = $this
->config('r4032login.settings');
$config
->set('display_denied_message', FALSE);
$config
->save();
$nodeType = NodeType::create([
'type' => 'page',
'name' => 'Basic page',
]);
$nodeType
->save();
$this
->createFileField('field_text_file', 'node', 'page', [
'uri_scheme' => 'private',
]);
$this->node = $this
->drupalCreateNode();
file_put_contents('private://test.txt', 'test');
$this->file = File::create([
'uri' => 'private://test.txt',
'filename' => 'test.txt',
]);
$this->file
->save();
$this->node
->set('field_text_file', $this->file
->id());
$this->node
->setUnpublished()
->save();
}
public function testNodeRedirectCache() {
$this
->drupalGet('node/' . $this->node
->id());
$this
->assertSession()
->addressEquals('user/login');
$this->node
->setPublished()
->save();
$this
->drupalGet('node/' . $this->node
->id());
$this
->assertSession()
->addressEquals('node/' . $this->node
->id());
}
public function testPrivateFileRedirectCache() {
$this
->drupalGet(file_create_url($this->file
->getFileUri()));
$this
->assertSession()
->addressEquals('user/login');
$this->node
->setPublished()
->save();
$this
->drupalGet(file_create_url($this->file
->getFileUri()));
$this
->assertSession()
->addressEquals(file_create_url($this->file
->getFileUri()));
}
}