function FormCacheTest::testGetCacheImmutableForm

Same name in other branches
  1. 9 core/tests/Drupal/Tests/Core/Form/FormCacheTest.php \Drupal\Tests\Core\Form\FormCacheTest::testGetCacheImmutableForm()
  2. 8.9.x core/tests/Drupal/Tests/Core/Form/FormCacheTest.php \Drupal\Tests\Core\Form\FormCacheTest::testGetCacheImmutableForm()

@covers ::getCache

File

core/tests/Drupal/Tests/Core/Form/FormCacheTest.php, line 239

Class

FormCacheTest
@coversDefaultClass \Drupal\Core\Form\FormCache @group Form

Namespace

Drupal\Tests\Core\Form

Code

public function testGetCacheImmutableForm() : void {
    $form_build_id = 'the_form_build_id';
    $form_state = (new FormState())->addBuildInfo('immutable', TRUE);
    $cached_form = [
        '#build_id' => 'the_old_build_form_id',
    ];
    $this->account
        ->expects($this->once())
        ->method('isAnonymous')
        ->willReturn(TRUE);
    $this->formCacheStore
        ->expects($this->once())
        ->method('get')
        ->with($form_build_id)
        ->willReturn($cached_form);
    $form = $this->formCache
        ->getCache($form_build_id, $form_state);
    $this->assertSame($cached_form['#build_id'], $form['#build_id_old']);
    $this->assertNotSame($cached_form['#build_id'], $form['#build_id']);
    $this->assertSame($form['#build_id'], $form['form_build_id']['#value']);
    $this->assertSame($form['#build_id'], $form['form_build_id']['#id']);
}

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