X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=inline;f=web%2Fcore%2Fmodules%2Fsystem%2Ftests%2Fmodules%2Fajax_forms_test%2Fsrc%2FForm%2FAjaxFormsTestSimpleForm.php;fp=web%2Fcore%2Fmodules%2Fsystem%2Ftests%2Fmodules%2Fajax_forms_test%2Fsrc%2FForm%2FAjaxFormsTestSimpleForm.php;h=f69a1232319cd9363e0f334666e108522aa09ab0;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website
diff --git a/web/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestSimpleForm.php b/web/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestSimpleForm.php
new file mode 100644
index 000000000..f69a12323
--- /dev/null
+++ b/web/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestSimpleForm.php
@@ -0,0 +1,121 @@
+ $this->t('Color'),
+ '#type' => 'select',
+ '#options' => [
+ 'red' => 'red',
+ 'green' => 'green',
+ 'blue' => 'blue'],
+ '#ajax' => [
+ 'callback' => [$object, 'selectCallback'],
+ ],
+ '#suffix' => '
No color yet selected
',
+ ];
+
+ $form['checkbox'] = [
+ '#type' => 'checkbox',
+ '#title' => $this->t('Test checkbox'),
+ '#ajax' => [
+ 'callback' => [$object, 'checkboxCallback'],
+ ],
+ '#suffix' => 'No action yet
',
+ ];
+ $form['submit'] = [
+ '#type' => 'submit',
+ '#value' => $this->t('submit'),
+ ];
+
+ // This is for testing invalid callbacks that should return a 500 error in
+ // \Drupal\Core\Form\FormAjaxResponseBuilderInterface::buildResponse().
+ $invalid_callbacks = [
+ 'null' => NULL,
+ 'empty' => '',
+ 'nonexistent' => 'some_function_that_does_not_exist',
+ ];
+ foreach ($invalid_callbacks as $key => $value) {
+ $form['select_' . $key . '_callback'] = [
+ '#type' => 'select',
+ '#title' => $this->t('Test %key callbacks', ['%key' => $key]),
+ '#options' => ['red' => 'red'],
+ '#ajax' => ['callback' => $value],
+ ];
+ }
+
+ $form['test_group'] = [
+ '#type' => 'details',
+ '#title' => $this->t('Test group'),
+ '#open' => TRUE,
+ ];
+
+ // Test ajax element in a #group.
+ $form['checkbox_in_group_wrapper'] = [
+ '#type' => 'container',
+ '#attributes' => ['id' => 'checkbox-wrapper'],
+ '#group' => 'test_group',
+ 'checkbox_in_group' => [
+ '#type' => 'checkbox',
+ '#title' => $this->t('AJAX checkbox in a group'),
+ '#ajax' => [
+ 'callback' => [$object, 'checkboxGroupCallback'],
+ 'wrapper' => 'checkbox-wrapper',
+ ],
+ ],
+ 'nested_group' => [
+ '#type' => 'details',
+ '#title' => $this->t('Nested group'),
+ '#open' => TRUE,
+ ],
+ 'checkbox_in_nested' => [
+ '#type' => 'checkbox',
+ '#group' => 'nested_group',
+ '#title' => $this->t('AJAX checkbox in a nested group'),
+ '#ajax' => [
+ 'callback' => [$object, 'checkboxGroupCallback'],
+ 'wrapper' => 'checkbox-wrapper',
+ ],
+ ],
+ ];
+
+ $form['another_checkbox_in_nested'] = [
+ '#type' => 'checkbox',
+ '#group' => 'nested_group',
+ '#title' => $this->t('Another AJAX checkbox in a nested group'),
+ ];
+
+
+ return $form;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function submitForm(array &$form, FormStateInterface $form_state) {
+ }
+
+}