/** * Tests whether the triggering element is properly identified. * * @param string $element_value * The input element "#value" value. * @param string $input_value * The corresponding submitted input value. * * @covers ::buildForm * * @dataProvider providerTestBuildFormWithTriggeringElement */ public function testBuildFormWithTriggeringElement($element_value, $input_value) { $form_id = 'test_form_id'; $expected_form = $form_id(); $expected_form['actions']['other_submit'] = ['#type' => 'submit', '#value' => $element_value]; $form_arg = $this->getMockForm($form_id, $expected_form, 2); $form_state = new FormState(); $form_state->setProcessInput(); $form_state->setUserInput(['form_id' => $form_id, 'op' => $input_value]); $this->request->setMethod('POST'); $this->formBuilder->buildForm($form_arg, $form_state); $this->assertEquals($expected_form['actions']['other_submit']['#value'], $form_state->getTriggeringElement()['#value']); }