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) { + } + +}