public function test_add_subsection__weird_subsection_names() { $grandparent_form = new EE_Form_Section_Proper(array('name' => 'grandparent', 'subsections' => array('123-reg-money' => new EE_Form_Section_Proper(array('subsections' => array('!0!a77y-bad`string' => new EE_Text_Input())))))); $grandparent_form->add_subsections(array('new_one' => new EE_Text_Input())); $added_input = $grandparent_form->get_input('new_one'); $this->assertInstanceOf('EE_Text_Input', $added_input); $this->assertEquals('new_one', $added_input->name()); $this->assertEquals('grandparent[new_one]', $added_input->html_name()); $grandparent_form->add_subsections(array(12 => new EE_Text_Input())); $other_added_input = $grandparent_form->get_input(12); $this->assertInstanceOf('EE_Text_Input', $other_added_input); }
/** * @group 7121 */ public function test_normalized_value_int() { $form = new EE_Form_Section_Proper(array('name' => 'test', 'subsections' => array('use_captcha' => new EE_Radio_Button_Input(array(1 => __('Yes', 'event_espresso'), 0 => __('No', 'event_espresso')), array('html_label_text' => __('Use reCAPTCHA', 'event_espresso'), 'default' => isset(EE_Registry::instance()->CFG->registration->use_captcha) ? EE_Registry::instance()->CFG->registration->use_captcha : FALSE, 'normalization_strategy' => new EE_Int_Normalization()))))); $form->receive_form_submission(array('test' => array('use_captcha' => '1'))); $this->assertTrue($form->is_valid()); $this->assertTrue(1 === $form->get_input('use_captcha')->normalized_value()); $this->assertTrue('1' === $form->get_input('use_captcha')->raw_value()); $form->receive_form_submission(array('test' => array('use_captcha' => '0'))); $this->assertTrue($form->is_valid()); $this->assertTrue(0 === $form->get_input('use_captcha')->normalized_value()); $this->assertTrue('0' === $form->get_input('use_captcha')->raw_value()); }
public function test_display_flat_array() { $form = new EE_Form_Section_Proper(array('name' => 'form', 'subsections' => array('input1' => new EE_Checkbox_Multi_Input(array('foo' => 'Foo', 'bar' => 'Bar', "baz'em" => 'Baz'))))); $input = $form->get_input('input1'); $expected_output = ' <label for="form-input1-foo" id="form-input1-foo-lbl" class="ee-checkbox-label-after micro-lbl"> <input type="checkbox" name="form[input1][]" id="form-input1-foo" class="" style="" value="foo"> Foo </label> <label for="form-input1-bar" id="form-input1-bar-lbl" class="ee-checkbox-label-after micro-lbl"> <input type="checkbox" name="form[input1][]" id="form-input1-bar" class="" style="" value="bar"> Bar </label> <label for="form-input1-bazem" id="form-input1-bazem-lbl" class="ee-checkbox-label-after micro-lbl"> <input type="checkbox" name="form[input1][]" id="form-input1-bazem" class="" style="" value="baz'em"> Baz </label>'; $this->assertEquals($expected_output, $input->get_html_for_input()); //now if we set the default, does it get selected? $form->populate_defaults(array('input1' => array("baz'em", 'bar'))); $this->assertEquals(array("baz'em", 'bar'), $input->normalized_value()); $this->assertEquals(array("baz'em", 'bar'), $input->raw_value()); $expected_output2 = ' <label for="form-input1-foo" id="form-input1-foo-lbl" class="ee-checkbox-label-after micro-lbl"> <input type="checkbox" name="form[input1][]" id="form-input1-foo" class="" style="" value="foo"> Foo </label> <label for="form-input1-bar" id="form-input1-bar-lbl" class="ee-checkbox-label-after micro-lbl"> <input type="checkbox" name="form[input1][]" id="form-input1-bar" class="" style="" value="bar" checked="checked"> Bar </label> <label for="form-input1-bazem" id="form-input1-bazem-lbl" class="ee-checkbox-label-after micro-lbl"> <input type="checkbox" name="form[input1][]" id="form-input1-bazem" class="" style="" value="baz'em" checked="checked"> Baz </label>'; $this->assertEquals($expected_output2, $input->get_html_for_input()); }
/** * @group 7121 */ function test_display__normalizing_as_string() { $form = new EE_Form_Section_Proper(array('name' => 'test', 'subsections' => array('use_captcha' => new EE_Radio_Button_Input(array("yes ma'am" => __('Yes', 'event_espresso'), "no ma'am" => __('No', 'event_espresso')), array('html_label_text' => __('Use reCAPTCHA', 'event_espresso'), 'default' => "yes ma'am"))))); $this->assertEquals("yes ma'am", $form->get_input('use_captcha')->normalized_value()); $this->assertEquals("yes ma'am", $form->get_input('use_captcha')->raw_value()); $this->assertEquals(' <label for="test-use-captcha-yesmaam" id="test-use-captcha-yesmaam-lbl" class="ee-radio-label-after micro-lbl"> <input id="test-use-captcha-yesmaam" name="test[use_captcha]" class="" style="" type="radio" value="yes ma'am" checked="checked"> Yes </label> <label for="test-use-captcha-nomaam" id="test-use-captcha-nomaam-lbl" class="ee-radio-label-after micro-lbl"> <input id="test-use-captcha-nomaam" name="test[use_captcha]" class="" style="" type="radio" value="no ma'am"> No </label> <div class="clear-float"> </div>', $form->get_input('use_captcha')->get_html_for_input()); $form->populate_defaults(array('use_captcha' => "no ma'am")); //the first option should be selected now $this->assertEquals("no ma'am", $form->get_input('use_captcha')->normalized_value()); $this->assertEquals("no ma'am", $form->get_input('use_captcha')->raw_value()); $this->assertEquals(' <label for="test-use-captcha-yesmaam" id="test-use-captcha-yesmaam-lbl" class="ee-radio-label-after micro-lbl"> <input id="test-use-captcha-yesmaam" name="test[use_captcha]" class="" style="" type="radio" value="yes ma'am"> Yes </label> <label for="test-use-captcha-nomaam" id="test-use-captcha-nomaam-lbl" class="ee-radio-label-after micro-lbl"> <input id="test-use-captcha-nomaam" name="test[use_captcha]" class="" style="" type="radio" value="no ma'am" checked="checked"> No </label> <div class="clear-float"> </div>', $form->get_input('use_captcha')->get_html_for_input()); }
function test_many_valued() { //create a form with radio button in it. $form = new EE_Form_Section_Proper(array('name' => 'test1', 'subsections' => array('checkbox1' => new EE_Checkbox_Multi_Input(array('option1' => 'Option 1', 'option2' => 'Option 2'))))); $checkbox = $form->get_input('checkbox1'); //that radio button's normalization strategy is correct $this->assertInstanceOf('EE_Checkbox_Multi_Input', $checkbox); $this->assertInstanceOf('EE_Many_Valued_Normalization', $checkbox->get_normalization_strategy()); //and that when it receives input, it sets it correctly $form->receive_form_submission(array('checkbox1' => array('option1'))); $this->assertTrue($form->is_valid()); $form->receive_form_submission(array('checkbox1' => array('option_nonexistent'))); $this->assertFalse($form->is_valid()); $form->receive_form_submission(array('checkbox1' => 'option1')); $this->assertTrue($form->is_valid()); $form->receive_form_submission(array('checkbox1' => 'option_nonexistent')); $this->assertFalse($form->is_valid()); }
public function test_display_flat_array() { $form = new EE_Form_Section_Proper(array('name' => 'form', 'subsections' => array('input1' => new EE_Select_Multiple_Input(array('foo' => 'Foo', 'bar' => 'Bar', "baz'em" => 'Baz'))))); $input = $form->get_input('input1'); $expected_output = ' <select multiple id="form-input1" name="form[input1][]" class="" style=""> <option value="foo">Foo</option> <option value="bar">Bar</option> <option value="baz'em">Baz</option> </select>'; $this->assertEquals($expected_output, $input->get_html_for_input()); //now if we set the default, does it get selected? $form->populate_defaults(array('input1' => array("baz'em", 'bar'))); $this->assertEquals(array("baz'em", 'bar'), $input->normalized_value()); $this->assertEquals(array("baz'em", 'bar'), $input->raw_value()); $expected_output2 = ' <select multiple id="form-input1" name="form[input1][]" class="" style=""> <option value="foo">Foo</option> <option value="bar" selected="selected">Bar</option> <option value="baz'em" selected="selected">Baz</option> </select>'; $this->assertEquals($expected_output2, $input->get_html_for_input()); }