Klimov Paul
9 years ago
1 changed files with 113 additions and 0 deletions
@ -0,0 +1,113 @@
|
||||
<?php |
||||
|
||||
namespace yiiunit\extensions\bootstrap; |
||||
|
||||
use yii\base\DynamicModel; |
||||
use yii\bootstrap\ActiveField; |
||||
use yii\bootstrap\ActiveForm; |
||||
use Yii; |
||||
|
||||
class ActiveFieldTest extends TestCase |
||||
{ |
||||
/** |
||||
* @var ActiveField |
||||
*/ |
||||
private $activeField; |
||||
/** |
||||
* @var DynamicModel |
||||
*/ |
||||
private $helperModel; |
||||
/** |
||||
* @var ActiveForm |
||||
*/ |
||||
private $helperForm; |
||||
/** |
||||
* @var string |
||||
*/ |
||||
private $attributeName = 'attributeName'; |
||||
|
||||
protected function setUp() |
||||
{ |
||||
parent::setUp(); |
||||
// dirty way to have Request object not throwing exception when running testHomeLinkNull() |
||||
$_SERVER['SCRIPT_FILENAME'] = "index.php"; |
||||
$_SERVER['SCRIPT_NAME'] = "index.php"; |
||||
|
||||
$this->mockWebApplication(); |
||||
|
||||
$this->helperModel = new DynamicModel(['attributeName']); |
||||
ob_start(); |
||||
$this->helperForm = new ActiveForm(['action' => '/something']); |
||||
ob_end_clean(); |
||||
|
||||
$this->activeField = new ActiveField(['form' => $this->helperForm]); |
||||
$this->activeField->model = $this->helperModel; |
||||
$this->activeField->attribute = $this->attributeName; |
||||
} |
||||
|
||||
// Tests : |
||||
|
||||
public function testRadioList() |
||||
{ |
||||
$html = $this->activeField->radioList([1 => 'name1', 2 => 'name2'])->render(); |
||||
|
||||
$expectedHtml = <<<HTML |
||||
<div class="form-group field-dynamicmodel-attributename"> |
||||
<label class="control-label" for="dynamicmodel-attributename">Attribute Name</label> |
||||
<input type="hidden" name="DynamicModel[attributeName]" value=""><div id="dynamicmodel-attributename"><div class="radio"><label><input type="radio" name="DynamicModel[attributeName]" value="1"> name1</label></div> |
||||
<div class="radio"><label><input type="radio" name="DynamicModel[attributeName]" value="2"> name2</label></div></div> |
||||
|
||||
<p class="help-block help-block-error"></p> |
||||
</div> |
||||
HTML; |
||||
$this->assertEqualsWithoutLE($expectedHtml, $html); |
||||
} |
||||
|
||||
public function testCheckboxList() |
||||
{ |
||||
$html = $this->activeField->checkboxList([1 => 'name1', 2 => 'name2'])->render(); |
||||
|
||||
$expectedHtml = <<<HTML |
||||
<div class="form-group field-dynamicmodel-attributename"> |
||||
<label class="control-label" for="dynamicmodel-attributename">Attribute Name</label> |
||||
<input type="hidden" name="DynamicModel[attributeName]" value=""><div id="dynamicmodel-attributename"><div class="checkbox"><label><input type="checkbox" name="DynamicModel[attributeName][]" value="1"> name1</label></div> |
||||
<div class="checkbox"><label><input type="checkbox" name="DynamicModel[attributeName][]" value="2"> name2</label></div></div> |
||||
|
||||
<p class="help-block help-block-error"></p> |
||||
</div> |
||||
HTML; |
||||
$this->assertEqualsWithoutLE($expectedHtml, $html); |
||||
} |
||||
|
||||
/** |
||||
* @depends testRadioList |
||||
* |
||||
* @see https://github.com/yiisoft/yii2-bootstrap/issues/81 |
||||
*/ |
||||
public function testRadioListItemOptions() |
||||
{ |
||||
$content = $this->activeField->radioList([1 => 'name1', 2 => 'name2'], [ |
||||
'itemOptions' => [ |
||||
'data-attribute' => 'test' |
||||
] |
||||
])->render(); |
||||
|
||||
$this->assertContains('data-attribute="test"', $content); |
||||
} |
||||
|
||||
/** |
||||
* @depends testCheckboxList |
||||
* |
||||
* @see https://github.com/yiisoft/yii2-bootstrap/issues/81 |
||||
*/ |
||||
public function testCheckboxListItemOptions() |
||||
{ |
||||
$content = $this->activeField->checkboxList([1 => 'name1', 2 => 'name2'], [ |
||||
'itemOptions' => [ |
||||
'data-attribute' => 'test' |
||||
] |
||||
])->render(); |
||||
|
||||
$this->assertContains('data-attribute="test"', $content); |
||||
} |
||||
} |
Loading…
Reference in new issue