NodePreviewAnonymousTest.php

Same filename in other branches
  1. 9 core/modules/node/tests/src/Functional/NodePreviewAnonymousTest.php
  2. 8.9.x core/modules/node/tests/src/Functional/NodePreviewAnonymousTest.php
  3. 10 core/modules/node/tests/src/Functional/NodePreviewAnonymousTest.php

Namespace

Drupal\Tests\node\Functional

File

core/modules/node/tests/src/Functional/NodePreviewAnonymousTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\node\Functional;

use Drupal\Core\Session\AccountInterface;
use Drupal\Tests\BrowserTestBase;
use Drupal\user\Entity\Role;

/**
 * Tests the node entity preview functionality for anonymous user.
 *
 * @group node
 */
class NodePreviewAnonymousTest extends BrowserTestBase {
    
    /**
     * Enable node module to test on the preview.
     *
     * @var array
     */
    protected static $modules = [
        'node',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() : void {
        parent::setUp();
        // Create Basic page node type.
        $this->drupalCreateContentType([
            'type' => 'page',
            'name' => 'Basic page',
            'display_submitted' => FALSE,
        ]);
        // Grant create and editing permissions to anonymous user:
        $anonymous_role = Role::load(AccountInterface::ANONYMOUS_ROLE);
        $anonymous_role->grantPermission('create page content');
        $anonymous_role->save();
    }
    
    /**
     * Checks the node preview functionality for anonymous users.
     */
    public function testAnonymousPagePreview() : void {
        $title_key = 'title[0][value]';
        $body_key = 'body[0][value]';
        // Fill in node creation form and preview node.
        $edit = [
            $title_key => $this->randomMachineName(),
            $body_key => $this->randomMachineName(),
        ];
        $this->drupalGet('node/add/page');
        $this->submitForm($edit, 'Preview');
        // Check that the preview is displaying the title, body and term.
        $this->assertSession()
            ->linkExists('Back to content editing');
        $this->assertSession()
            ->responseContains($edit[$body_key]);
        $this->assertSession()
            ->titleEquals($edit[$title_key] . ' | Drupal');
    }

}

Classes

Title Deprecated Summary
NodePreviewAnonymousTest Tests the node entity preview functionality for anonymous user.

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