function FormCacheTest::testGetCacheImmutableForm

Same name and namespace 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[[api-linebreak]] @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.