summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests/form_test.module
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-12-05 14:33:55 +0000
committerDries Buytaert <dries@buytaert.net>2009-12-05 14:33:55 +0000
commit0014a64d37e42ccc63f0b44a0ce32a06fca67b1d (patch)
treefb4041a550379b11917bc698d0ca62d440f79d23 /modules/simpletest/tests/form_test.module
parent6c37dbae290ac9f9d83770d399d1286bdfd01f99 (diff)
downloadbrdo-0014a64d37e42ccc63f0b44a0ce32a06fca67b1d.tar.gz
brdo-0014a64d37e42ccc63f0b44a0ce32a06fca67b1d.tar.bz2
- Patch #641356 by fago, sun: cache more of () when form caching is enabled.
Diffstat (limited to 'modules/simpletest/tests/form_test.module')
-rw-r--r--modules/simpletest/tests/form_test.module50
1 files changed, 50 insertions, 0 deletions
diff --git a/modules/simpletest/tests/form_test.module b/modules/simpletest/tests/form_test.module
index 024917b86..3e9a3720a 100644
--- a/modules/simpletest/tests/form_test.module
+++ b/modules/simpletest/tests/form_test.module
@@ -102,6 +102,14 @@ function form_test_menu() {
'type' => MENU_CALLBACK,
);
+ $items['form-test/state-persist'] = array(
+ 'title' => 'Form state persistence without storage',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('form_test_state_persist'),
+ 'access callback' => TRUE,
+ 'type' => MENU_CALLBACK,
+ );
+
return $items;
}
@@ -742,3 +750,45 @@ function form_test_form_rebuild_preserve_values_form_submit($form, &$form_state)
// Finish the workflow. Do not rebuild.
drupal_set_message(t('Form values: %values', array('%values' => var_export($form_state['values'], TRUE))));
}
+
+/**
+ * Form constructor for testing form state persistence.
+ */
+function form_test_state_persist($form, &$form_state) {
+ $form['title'] = array(
+ '#type' => 'textfield',
+ '#title' => 'title',
+ '#default_value' => 'DEFAULT',
+ '#required' => TRUE,
+ );
+ $form_state['value'] = 'State persisted.';
+
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Submit'),
+ );
+ return $form;
+}
+
+/**
+ * Submit handler.
+ *
+ * @see form_test_state_persist()
+ */
+function form_test_state_persist_submit($form, &$form_state) {
+ drupal_set_message($form_state['value']);
+ $form_state['rebuild'] = TRUE;
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter().
+ *
+ * @see form_test_state_persist()
+ */
+function form_test_form_form_test_state_persist_alter(&$form, &$form_state) {
+ // Simulate a form alter implementation inserting form elements that enable
+ // caching of the form, e.g. elements having #ajax.
+ if (!empty($_REQUEST['cache'])) {
+ $form_state['cache'] = TRUE;
+ }
+}