Chris@16: array( Chris@16: * '#value' => $this->randomString(), Chris@16: * '#config_name' => 'user.mail', Chris@16: * '#config_key' => 'cancel_confirm.body', Chris@16: * ), Chris@16: * ); Chris@16: * @endcode Chris@16: * Chris@16: * @var array Chris@16: */ Chris@16: protected $values; Chris@16: Chris@16: /** Chris@16: * Submit the system_config_form ensure the configuration has expected values. Chris@16: */ Chris@16: public function testConfigForm() { Chris@16: // Programmatically submit the given values. Chris@16: $values = []; Chris@16: foreach ($this->values as $form_key => $data) { Chris@16: $values[$form_key] = $data['#value']; Chris@16: } Chris@16: $form_state = (new FormState())->setValues($values); Chris@16: \Drupal::formBuilder()->submitForm($this->form, $form_state); Chris@16: Chris@16: // Check that the form returns an error when expected, and vice versa. Chris@16: $errors = $form_state->getErrors(); Chris@16: $valid_form = empty($errors); Chris@16: $args = [ Chris@16: '%values' => print_r($values, TRUE), Chris@16: '%errors' => $valid_form ? t('None') : implode(' ', $errors), Chris@16: ]; Chris@16: $this->assertTrue($valid_form, format_string('Input values: %values
Validation handler errors: %errors', $args)); Chris@16: Chris@16: foreach ($this->values as $data) { Chris@16: $this->assertEqual($data['#value'], $this->config($data['#config_name'])->get($data['#config_key'])); Chris@16: } Chris@16: } Chris@16: Chris@16: }