/** * @covers ::deleteCache */ public function testDeleteCache() { $form_build_id = 'the_form_build_id'; $this->formCacheStore->expects($this->once())->method('delete')->with($form_build_id); $this->formStateCacheStore->expects($this->once())->method('delete')->with($form_build_id); $this->formCache->deleteCache($form_build_id); }
/** * @covers ::setCache */ public function testSetCacheImmutableForm() { $form_build_id = 'the_form_build_id'; $form = ['#form_id' => 'the_form_id']; $form_state = new FormState(); $this->formCacheStore->expects($this->once())->method('setWithExpire')->with($form_build_id, $form, $this->isType('int')); $form_state_data = $form_state->getCacheableArray(); $form_state_data['build_info']['safe_strings'] = []; // Ensure that the form is marked immutable. $form_state_data['build_info']['immutable'] = TRUE; $this->formStateCacheStore->expects($this->once())->method('setWithExpire')->with($form_build_id, $form_state_data, $this->isType('int')); // Rebuild the FormCache with a config factory that will return a config // object with the internal page cache enabled. $this->configFactory = $this->getConfigFactoryStub(['system.performance' => ['cache.page.use_internal' => TRUE]]); $this->formCache = $this->getMockBuilder('Drupal\\Core\\Form\\FormCache')->setConstructorArgs([$this->keyValueExpirableFactory, $this->moduleHandler, $this->account, $this->csrfToken, $this->logger, $this->configFactory, $this->requestStack, $this->requestPolicy])->setMethods(['isPageCacheable'])->getMock(); $this->formCache->expects($this->once())->method('isPageCacheable')->willReturn(TRUE); $this->formCache->setCache($form_build_id, $form, $form_state); }