<?php
namespace DelTesting\Form\Field;
use Codeception\TestCase\Test;
use Del\Form\Field\Radio;
use Del\Form\Field\Text;
use Del\Form\Form;
use Del\Form\Renderer\Field\RadioRender;
/**
* User: delboy1978uk
* Date: 05/12/2016
* Time: 02:27
*/
class RadioTest extends Test
{
public function testRadio()
{
$form = new Form('radiotest');
$radio = new Radio('choose');
$radio->setLabel('Choose');
$radio->setOptions([
'hello' => 'Choose',
]);
$form->addField($radio);
$html = $form->render();
$this->assertEquals('<form name="radiotest" method="post" id="radiotest"><div class="form-group" id="choose-form-group"><label for="">Choose</label><div class="radio"><label for=""><input type="radio" name="choose" value="hello">Choose</label></div></div></form>'."\n", $html);
}
public function testMultipleRadiosInGroup()
{
$form = new Form('radiotest');
$radio = new Radio('choose');
$radio->setLabel('Choose');
$radio->setOptions([
'hello' => 'Choose',
'goodbye' => 'Something',
]);
$form->addField($radio);
$html = $form->render();
$this->assertEquals('<form name="radiotest" method="post" id="radiotest"><div class="form-group" id="choose-form-group"><label for="">Choose</label><div class="radio"><label for=""><input type="radio" name="choose" value="hello">Choose</label></div><div class="radio"><label for=""><input type="radio" name="choose" value="goodbye">Something</label></div></div></form>'."\n", $html);
}
public function testMultipleRadiosInHorizontalForm()
{
$form = new Form('radiotest');
$radio = new Radio('choose');
$radio->setLabel('Choose');
$radio->setOptions([
'hello' => 'Choose',
'goodbye' => 'Something',
]);
$form->addField($radio);
$html = $form->render();
$this->assertEquals('<form name="radiotest" method="post" id="radiotest"><div class="form-group" id="choose-form-group"><label for="">Choose</label><div class="radio"><label for=""><input type="radio" name="choose" value="hello">Choose</label></div><div class="radio"><label for=""><input type="radio" name="choose" value="goodbye">Something</label></div></div></form>'."\n", $html);
}
public function testRequiredField()
{
$form = new Form('required-text-form');
$text = new Radio('text');
$text->setRequired(true);
$form->addField($text);
$this->assertFalse($form->isValid());
$text->setValue(['something']);
$this->assertTrue($form->isValid());
}
public function testRendererThrowsException()
{
$form = new Form('checkboxtest');
$text = new Text('bang');
$text->setRenderer(new RadioRender());
$form->addField($text);
$this->expectException('InvalidArgumentException');
$form->render();
}
public function testRendererThrowsExceptionWithNoOptions()
{
$form = new Form('checkboxtest');
$checkbox = new Radio('choose');
$checkbox->setLabel('Choose');
$checkbox->setRenderInline(true);
$form->addField($checkbox);
$this->expectException('LogicException');
$form->render();
}
public function testRendererInline()
{
$form = new Form('checkboxtest');
$checkbox = new Radio('choose');
$checkbox->setLabel('Choose');
$checkbox->setRenderInline(true);
$checkbox->setOptions([
1 => 'hello',
2 => 'hello',
3 => 'hello',
]);
$checkbox->setValue(3);
$form->addField($checkbox);
$html = $form->render();
$this->assertEquals('<form name="checkboxtest" method="post" id="checkboxtest"><div class="form-group" id="choose-form-group"><label for="">Choose</label><label for="" class="radio-inline"><input type="radio" name="choose" value="1">hello</label><label for="" class="radio-inline"><input type="radio" name="choose" value="2">hello</label><label for="" class="radio-inline"><input type="radio" name="choose" value="3" checked>hello</label></div></form>'."\n", $html);
}
}
|