<?php
namespace DelTesting\Form\Field;
use Codeception\TestCase\Test;
use Del\Form\Field\Submit;
use Del\Form\Field\Text;
use Del\Form\Field\Select;
use Del\Form\Form;
use Del\Form\Renderer\Field\SelectRender;
/**
* User: delboy1978uk
* Date: 05/12/2016
* Time: 02:27
*/
class SelectTest extends Test
{
public function testSelect()
{
$form = new Form('dropdown');
$select = new Select('selection');
$select->setOption(1, 'hello');
$select->setOption(2, 'world');
$form->addField($select);
$html = $form->render();
$this->assertEquals('<form name="dropdown" method="post" id="dropdown"><div class="form-group" id="selection-form-group"><label for=""></label><select name="selection" type="text" class="form-control"><option value="1">hello</option><option value="2">world</option></select></div></form>'."\n", $html);
}
public function testSelectThrowsException()
{
$form = new Form('dropdown');
$text = new Text('selection');
$text->setRenderer(new SelectRender());
$form->addField($text);
$this->expectException('InvalidArgumentException');
$form->render();
}
public function testGetSetOptions()
{
$form = new Form('dropdown');
$select = new Select('selection');
$select->setOptions([
1 => 'hello',
2 => 'world',
]);
$options = $select->getOptions();
$this->assertArrayHasKey(1, $options);
$this->assertArrayHasKey(2, $options);
$this->assertEquals('hello', $options[1]);
$this->assertEquals('world', $options[2]);
$this->assertEquals('world', $select->getOption(2));
$form->addField($select);
$html = $form->render();
$this->assertEquals('<form name="dropdown" method="post" id="dropdown"><div class="form-group" id="selection-form-group"><label for=""></label><select name="selection" type="text" class="form-control"><option value="1">hello</option><option value="2">world</option></select></div></form>'."\n", $html);
}
public function testRenderSelectWithValue()
{
$form = new Form('choose');
$select = new Select('selection');
$select->setOptions([
'MCD' => 'McDonalds',
'BK' => 'Burger King',
'Q' => 'Quick',
]);
$submit = new Submit('submit');
$form->addField($select);
$form->addField($submit);
$form->populate([
'selection' => 'Q',
]);
$html = $form->render();
$this->assertEquals('<form name="choose" method="post" id="choose"><div class="form-group" id="selection-form-group"><label for=""></label><select name="selection" type="text" class="form-control" value="Q"><option value="MCD">McDonalds</option><option value="BK">Burger King</option><option value="Q" selected>Quick</option></select></div><div class="form-group" id="submit-form-group"><label for=""></label><input name="submit" value="submit" type="submit" class="btn btn-primary"></div></form>'."\n", $html);
}
}
|