mockWebApplication([
'container' => [
'definitions' => [
'yii\bootstrap5\ActiveField' => [
'checkTemplate' => "
\n{input}\n{label}\n{error}\n{hint}\n
",
'radioTemplate' => "\n{input}\n{label}\n{error}\n{hint}\n
",
'checkHorizontalTemplate' => "{beginWrapper}\n\n{input}\n{label}\n{error}\n{hint}\n
\n{endWrapper}",
'radioHorizontalTemplate' => "{beginWrapper}\n\n{input}\n{label}\n{error}\n{hint}\n
\n{endWrapper}",
'checkOptions' => [
'class' => ['widget' => 'form-check-input'],
'labelOptions' => [
'class' => ['widget' => 'form-check-label']
],
'wrapperOptions' => [
'class' => ['widget' => 'form-check']
]
],
'radioOptions' => [
'class' => ['widget' => 'form-check-input'],
'labelOptions' => [
'class' => ['widget' => 'form-check-label']
],
'wrapperOptions' => [
'class' => ['widget' => 'form-check']
]
]
]
]
]
]);
$this->_helperModel = new DynamicModel(['attributeName']);
ob_start();
$this->_helperForm = ActiveForm::begin(['action' => '/something']);
ActiveForm::end();
ob_end_clean();
$this->_activeField = Yii::createObject([
'class' => 'yii\bootstrap5\ActiveField',
'form' => $this->_helperForm
]);
$this->_activeField->model = $this->_helperModel;
$this->_activeField->attribute = $this->_attributeName;
}
public function testDefaultCheckboxByConfig()
{
Html::$counter = 0;
$this->_activeField->inline = true;
$html = $this->_activeField->checkbox()->render();
$expectedHtml = <<
HTML;
$this->assertEqualsWithoutLE($expectedHtml, $html);
}
public function testDefaultRadioByConfig()
{
Html::$counter = 0;
$this->_activeField->inline = true;
$html = $this->_activeField->radio()->render();
$expectedHtml = <<
HTML;
$this->assertEqualsWithoutLE($expectedHtml, $html);
}
public function testDefaultCheckboxListByConfig()
{
Html::$counter = 0;
$html = $this->_activeField->checkboxList([1 => 'name1', 2 => 'name2'])->render();
$expectedHtml = <<
HTML;
$this->assertEqualsWithoutLE($expectedHtml, $html);
}
public function testDefaultRadioListByConfig()
{
Html::$counter = 0;
$html = $this->_activeField->radioList([1 => 'name1', 2 => 'name2'])->render();
$expectedHtml = <<
HTML;
$this->assertEqualsWithoutLE($expectedHtml, $html);
}
public function testHorizontalLayout()
{
Html::$counter = 0;
ActiveForm::$counter = 0;
ob_start();
$model = new DynamicModel(['attributeName', 'checkbox', 'gridRadios']);
$form = ActiveForm::begin([
'action' => '/some-action',
'layout' => ActiveForm::LAYOUT_HORIZONTAL
]);
echo $form->field($model, 'attributeName');
echo $form->field($model, 'checkbox')->checkbox(['wrapperOptions' => ['class' => ['widget' => new UnsetArrayValue()]]]);
echo $form->field($model, 'gridRadios')->radioList([
'option1' => 'First radio',
'option2' => 'Second radio',
'option3' => 'Third radio'
]);
ActiveForm::end();
$out = ob_get_clean();
$expected = <<
HTML;
$expected2 = <<
HTML;
$expected3 = <<
HTML;
$this->assertContainsWithoutLE($expected, $out);
$this->assertContainsWithoutLE($expected2, $out);
$this->assertContainsWithoutLE($expected3, $out);
}
}