X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fcore%2Fmodules%2Fsystem%2Ftests%2Fmodules%2Fform_test%2Fsrc%2FController%2FFormTestController.php;fp=web%2Fcore%2Fmodules%2Fsystem%2Ftests%2Fmodules%2Fform_test%2Fsrc%2FController%2FFormTestController.php;h=4c9fbe2c8c2a93906cbd3080959b56638ce86bfd;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/core/modules/system/tests/modules/form_test/src/Controller/FormTestController.php b/web/core/modules/system/tests/modules/form_test/src/Controller/FormTestController.php new file mode 100644 index 000000000..4c9fbe2c8 --- /dev/null +++ b/web/core/modules/system/tests/modules/form_test/src/Controller/FormTestController.php @@ -0,0 +1,58 @@ +currentUser(); + $values = [ + 'uid' => $user->id(), + 'name' => $user->getUsername(), + 'type' => 'page', + 'langcode' => LanguageInterface::LANGCODE_NOT_SPECIFIED, + ]; + $node1 = $this->entityManager()->getStorage('node')->create($values); + $node2 = clone($node1); + $return['node_form_1'] = $this->entityFormBuilder()->getForm($node1); + $return['node_form_2'] = $this->entityFormBuilder()->getForm($node2); + return $return; + } + + /** + * Emulate legacy AHAH-style ajax callback. + * + * Drupal 6 AHAH callbacks used to operate directly on forms retrieved using + * \Drupal::formBuilder()->getCache() and stored using + * \Drupal::formBuilder()->setCache() after manipulation. This callback helps + * testing whether \Drupal::formBuilder()->setCache() prevents resaving of + * immutable forms. + */ + public function storageLegacyHandler($form_build_id) { + $form_state = new FormState(); + $form = $this->formBuilder()->getCache($form_build_id, $form_state); + $result = [ + 'form' => $form, + 'form_state' => $form_state, + ]; + $form['#poisoned'] = TRUE; + $form_state->set('poisoned', TRUE); + $this->formBuilder()->setCache($form_build_id, $form, $form_state); + return new JsonResponse($result); + } + +}