function FormCacheTest::testGetCacheImmutableForm

Same name and namespace in other branches
  1. 8.9.x core/tests/Drupal/Tests/Core/Form/FormCacheTest.php \Drupal\Tests\Core\Form\FormCacheTest::testGetCacheImmutableForm()
  2. 10 core/tests/Drupal/Tests/Core/Form/FormCacheTest.php \Drupal\Tests\Core\Form\FormCacheTest::testGetCacheImmutableForm()
  3. 11.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 237

Class

FormCacheTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Form%21FormCache.php/class/FormCache/9" title="Encapsulates the caching of a form and its form state." class="local">\Drupal\Core\Form\FormCache</a> @group Form

Namespace

Drupal\Tests\Core\Form

Code

public function testGetCacheImmutableForm() {
    $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.