Chris@0: setUserInput($user_input); Chris@0: Chris@0: $actual = WizardPluginBase::getSelected($form_state, $parents, 'the_default_value', $element); Chris@0: $this->assertSame($not_rebuilding_expected, $actual); Chris@0: $this->assertSame($user_input, $form_state->getUserInput()); Chris@0: Chris@0: $form_state->setRebuild(); Chris@0: $actual = WizardPluginBase::getSelected($form_state, $parents, 'the_default_value', $element); Chris@0: $this->assertSame($expected, $actual); Chris@0: $this->assertSame($user_input, $form_state->getUserInput()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Provides test data for testGetSelected(). Chris@0: */ Chris@0: public function providerTestGetSelected() { Chris@0: $data = []; Chris@0: // A form element with an invalid #type. Chris@0: $data['invalid_type'] = [ Chris@0: 'the_default_value', Chris@0: [ Chris@0: '#type' => 'checkbox', Chris@0: ], Chris@0: ]; Chris@0: // A form element with no #options. Chris@0: $data['no_options'] = [ Chris@0: 'the_default_value', Chris@0: [ Chris@0: '#type' => 'select', Chris@0: ], Chris@0: ]; Chris@0: // A valid form element with no user input. Chris@0: $data['no_user_input'] = [ Chris@0: 'the_default_value', Chris@0: [ Chris@0: '#type' => 'select', Chris@0: '#options' => [ Chris@0: 'option1' => 'Option 1', Chris@0: ], Chris@0: ], Chris@0: ]; Chris@0: // A valid form element with user input that doesn't correspond to it. Chris@0: $data['mismatched_input'] = [ Chris@0: 'the_default_value', Chris@0: [ Chris@0: '#type' => 'select', Chris@0: '#options' => [ Chris@0: 'option1' => 'Option 1', Chris@0: ], Chris@0: ], Chris@0: ['foo', 'bar'], Chris@0: ['foo' => ['foo' => 'value1']], Chris@0: ]; Chris@0: // A valid form element with a valid dynamic value that matches the default Chris@0: // value. Chris@0: $data['matching_default'] = [ Chris@0: 'the_default_value', Chris@0: [ Chris@0: '#type' => 'select', Chris@0: '#options' => [ Chris@0: 'the_default_value' => 'Option 1', Chris@0: ], Chris@0: ], Chris@0: ['foo', 'bar'], Chris@0: ['foo' => ['bar' => 'the_default_value']], Chris@0: ]; Chris@0: // A valid form element with a valid dynamic value that does not match the Chris@0: // default value. Chris@0: $data['mismatched_value'] = [ Chris@0: 'option1', Chris@0: [ Chris@0: '#type' => 'select', Chris@0: '#options' => [ Chris@0: 'option1' => 'Option 1', Chris@0: ], Chris@0: ], Chris@0: ['foo', 'bar'], Chris@0: ['foo' => ['bar' => 'option1']], Chris@0: 'the_default_value', Chris@0: ]; Chris@0: return $data; Chris@0: } Chris@0: Chris@0: }