Security update for Core, with self-updated composer
[yaffs-website] / web / core / modules / system / tests / modules / form_test / src / Form / FormTestSelectForm.php
1 <?php
2
3 namespace Drupal\form_test\Form;
4
5 use Drupal\Core\Form\FormBase;
6 use Drupal\Core\Form\FormStateInterface;
7 use Symfony\Component\HttpFoundation\JsonResponse;
8
9 /**
10  * Builds a form to test #type 'select' validation.
11  */
12 class FormTestSelectForm extends FormBase {
13
14   /**
15    * {@inheritdoc}
16    */
17   public function getFormId() {
18     return 'form_test_select';
19   }
20
21   /**
22    * {@inheritdoc}
23    */
24   public function buildForm(array $form, FormStateInterface $form_state) {
25     $base = [
26       '#type' => 'select',
27       '#options' => ['one' => 'one', 'two' => 'two', 'three' => 'three', 'four' => '<strong>four</strong>'],
28     ];
29
30     $form['select'] = $base + [
31       '#title' => '#default_value one',
32       '#default_value' => 'one',
33     ];
34     $form['select_required'] = $base + [
35       '#title' => '#default_value one, #required',
36       '#required' => TRUE,
37       '#default_value' => 'one',
38     ];
39     $form['select_optional'] = $base + [
40       '#title' => '#default_value one, not #required',
41       '#required' => FALSE,
42       '#default_value' => 'one',
43     ];
44     $form['empty_value'] = $base + [
45       '#title' => '#default_value one, #required, #empty_value 0',
46       '#required' => TRUE,
47       '#default_value' => 'one',
48       '#empty_value' => 0,
49     ];
50     $form['empty_value_one'] = $base + [
51       '#title' => '#default_value = #empty_value, #required',
52       '#required' => TRUE,
53       '#default_value' => 'one',
54       '#empty_value' => 'one',
55     ];
56
57     $form['no_default'] = $base + [
58       '#title' => 'No #default_value, #required',
59       '#required' => TRUE,
60     ];
61     $form['no_default_optional'] = $base + [
62       '#title' => 'No #default_value, not #required',
63       '#required' => FALSE,
64       '#description' => 'Should result in "one" because it is not required and there is no #empty_value requested, so default browser behavior of preselecting first option is in effect.',
65     ];
66     $form['no_default_optional_empty_value'] = $base + [
67       '#title' => 'No #default_value, not #required, #empty_value empty string',
68       '#empty_value' => '',
69       '#required' => FALSE,
70       '#description' => 'Should result in an empty string (due to #empty_value) because it is optional.',
71     ];
72
73     $form['no_default_empty_option'] = $base + [
74       '#title' => 'No #default_value, #required, #empty_option',
75       '#required' => TRUE,
76       '#empty_option' => '- Choose -',
77     ];
78     $form['no_default_empty_option_optional'] = $base + [
79       '#title' => 'No #default_value, not #required, #empty_option',
80       '#empty_option' => '- Dismiss -',
81       '#description' => 'Should result in an empty string (default of #empty_value) because it is optional.',
82     ];
83
84     $form['no_default_empty_value'] = $base + [
85       '#title' => 'No #default_value, #required, #empty_value 0',
86       '#required' => TRUE,
87       '#empty_value' => 0,
88       '#description' => 'Should never result in 0.',
89     ];
90     $form['no_default_empty_value_one'] = $base + [
91       '#title' => 'No #default_value, #required, #empty_value one',
92       '#required' => TRUE,
93       '#empty_value' => 'one',
94       '#description' => 'A mistakenly assigned #empty_value contained in #options should not be valid.',
95     ];
96     $form['no_default_empty_value_optional'] = $base + [
97       '#title' => 'No #default_value, not #required, #empty_value 0',
98       '#required' => FALSE,
99       '#empty_value' => 0,
100       '#description' => 'Should result in 0 because it is optional.',
101     ];
102
103     $form['multiple'] = $base + [
104       '#title' => '#multiple, #default_value two',
105       '#default_value' => ['two'],
106       '#multiple' => TRUE,
107     ];
108     $form['multiple_no_default'] = $base + [
109       '#title' => '#multiple, no #default_value',
110       '#multiple' => TRUE,
111     ];
112     $form['multiple_no_default_required'] = $base + [
113       '#title' => '#multiple, #required, no #default_value',
114       '#required' => TRUE,
115       '#multiple' => TRUE,
116     ];
117
118     $form['opt_groups'] = [
119       '#type' => 'select',
120       '#options' => [
121         'optgroup_one' => ['one' => 'one', 'two' => 'two', 'three' => 'three', 'four' => '<strong>four</strong>'],
122         'optgroup_two' => ['five' => 'five', 'six' => 'six'],
123       ],
124     ];
125
126     $form['submit'] = ['#type' => 'submit', '#value' => 'Submit'];
127     return $form;
128   }
129
130   /**
131    * {@inheritdoc}
132    */
133   public function submitForm(array &$form, FormStateInterface $form_state) {
134     $form_state->setResponse(new JsonResponse($form_state->getValues()));
135   }
136
137 }