From 8677a7d0d0a3e0a89b608cd30c488348cda51fea Mon Sep 17 00:00:00 2001
From: Wilmer Arambula <42547589+terabytesoftw@users.noreply.github.com>
Date: Sat, 6 Jan 2024 18:29:50 -0300
Subject: [PATCH] Add HasLabelItemClass trait and corresponding test. (#210)
---
src/Attribute/Custom/HasLabelItemClass.php | 28 ++
src/Input/Base/AbstractChoiceList.php | 15 +-
src/Input/Base/AbstractInputChoice.php | 2 +-
.../Custom/HasLabelItemClassTest.php | 20 ++
tests/Input/Checkbox/RenderTest.php | 2 +-
tests/Input/ChoiceList/CheckboxListTest.php | 309 ++++++++++--------
tests/Input/ChoiceList/RadioListTest.php | 239 ++++++++------
tests/Input/Radio/RenderTest.php | 2 +-
8 files changed, 357 insertions(+), 260 deletions(-)
create mode 100644 src/Attribute/Custom/HasLabelItemClass.php
create mode 100644 tests/Attribute/Custom/HasLabelItemClassTest.php
diff --git a/src/Attribute/Custom/HasLabelItemClass.php b/src/Attribute/Custom/HasLabelItemClass.php
new file mode 100644
index 00000000..ac02c873
--- /dev/null
+++ b/src/Attribute/Custom/HasLabelItemClass.php
@@ -0,0 +1,28 @@
+labelItemClass = $value;
+
+ return $new;
+ }
+}
diff --git a/src/Input/Base/AbstractChoiceList.php b/src/Input/Base/AbstractChoiceList.php
index 988067bb..8352360b 100644
--- a/src/Input/Base/AbstractChoiceList.php
+++ b/src/Input/Base/AbstractChoiceList.php
@@ -22,6 +22,7 @@ abstract class AbstractChoiceList extends Element implements CheckedValueInterfa
use Attribute\Custom\HasContainer;
use Attribute\Custom\HasEnclosedByLabel;
use Attribute\Custom\HasLabel;
+ use Attribute\Custom\HasLabelItemClass;
use Attribute\Custom\HasSeparator;
use Attribute\Custom\HasTemplate;
use Attribute\Custom\HasWidgetValidation;
@@ -46,6 +47,7 @@ public function loadDefaultDefinitions(): array
{
return [
'container()' => [true],
+ 'id()' => [$this->generateId('choice-')],
'template()' => ['{label}\n{tag}'],
];
}
@@ -64,13 +66,10 @@ protected function run(): string
$attributes = $this->attributes;
$containerAttributes = $this->containerAttributes;
- $id = $this->generateId('choice-');
- $items = $this->items;
- $labelTag = '';
$listItems = [];
if ($this->ariaDescribedBy === true) {
- $attributes['aria-describedby'] = "$id-help";
+ $attributes['aria-describedby'] = "$this->id-help";
}
if (array_key_exists('autofocus', $attributes) && is_bool($attributes['autofocus'])) {
@@ -87,12 +86,12 @@ protected function run(): string
unset($attributes['value']);
- foreach ($items as $item) {
+ foreach ($this->items as $item) {
$listItem = $item
->attributes($attributes)
->checked($this->checkedValue === $item->getValue())
->enclosedByLabel($this->enclosedByLabel)
- ->id(null)
+ ->labelClass($this->labelItemClass)
->separator($this->separator);
if ($this->enclosedByLabel === true) {
@@ -107,7 +106,7 @@ protected function run(): string
true => Tag::widget()
->attributes($containerAttributes)
->content($choiceTag)
- ->id($id)
+ ->id($this->id)
->tagName($this->containerTag)
->render(),
default => $choiceTag,
@@ -116,7 +115,7 @@ protected function run(): string
return $this->renderTemplate(
$this->template,
[
- '{label}' => $this->renderLabelTag($id),
+ '{label}' => $this->renderLabelTag($this->id),
'{tag}' => $tag,
],
);
diff --git a/src/Input/Base/AbstractInputChoice.php b/src/Input/Base/AbstractInputChoice.php
index 3bf2866b..5a00c4d5 100644
--- a/src/Input/Base/AbstractInputChoice.php
+++ b/src/Input/Base/AbstractInputChoice.php
@@ -96,7 +96,7 @@ protected function buildChoiceTag(string $type): string
if ($this->enclosedByLabel) {
$tag = $this->renderEnclosedByLabel($tag);
} else {
- $labelTag = $this->renderLabelTag($this->getId() ?? '');
+ $labelTag = $this->renderLabelTag($id);
}
$choiceTag = $this->prepareTemplate($tag, $labelTag);
diff --git a/tests/Attribute/Custom/HasLabelItemClassTest.php b/tests/Attribute/Custom/HasLabelItemClassTest.php
new file mode 100644
index 00000000..0f9beff0
--- /dev/null
+++ b/tests/Attribute/Custom/HasLabelItemClassTest.php
@@ -0,0 +1,20 @@
+assertNotSame($instance, $instance->labelItemClass(''));
+ }
+}
diff --git a/tests/Input/Checkbox/RenderTest.php b/tests/Input/Checkbox/RenderTest.php
index 06236efd..48ead245 100644
--- a/tests/Input/Checkbox/RenderTest.php
+++ b/tests/Input/Checkbox/RenderTest.php
@@ -39,7 +39,7 @@ public function testAttributes(): void
<<
HTML,
- Checkbox::widget()->attributes(['class' => 'class'])->id('checkbox-6582f2d099e8b')->render()
+ Checkbox::widget()->attributes(['class' => 'class', 'id' => 'checkbox-6582f2d099e8b'])->render()
);
}
diff --git a/tests/Input/ChoiceList/CheckboxListTest.php b/tests/Input/ChoiceList/CheckboxListTest.php
index 13d02fff..655669a7 100644
--- a/tests/Input/ChoiceList/CheckboxListTest.php
+++ b/tests/Input/ChoiceList/CheckboxListTest.php
@@ -19,18 +19,18 @@ public function testAriaDescribedBy(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->ariaDescribedBy('MyWidget')
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -42,18 +42,18 @@ public function testAriaLabel(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->ariaLabel('MyWidget')
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -65,18 +65,18 @@ public function testAttributes(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->attributes(['class' => 'class'])
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -88,18 +88,18 @@ public function testAutofocus(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->autofocus()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -111,18 +111,18 @@ public function testClass(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->class('class')
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -134,18 +134,18 @@ public function testContainerAttributes(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->containerAttributes(['class' => 'class'])
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -157,18 +157,18 @@ public function testContainerClass(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->containerClass('class')
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -180,18 +180,18 @@ public function testContainerTag(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->containerTag('article')
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -202,16 +202,16 @@ public function testContainerWithFalse(): void
{
Assert::equalsWithoutLE(
<<
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->container(false)
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -223,16 +223,16 @@ public function testEnclosedByLabel(): void
Assert::equalsWithoutLE(
<<
-
-
+
+
HTML,
ChoiceList::widget()
->enclosedByLabel(true)
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -244,18 +244,18 @@ public function testGenerateAriaDescribedBy(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->ariaDescribedBy(true)
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -267,17 +267,17 @@ public function testId(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('id')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('id-checkbox-1')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('id-checkbox-2')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -290,17 +290,17 @@ public function testLabel(): void
<<Select your gender?
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->labelContent('Select your gender?')
->name('CheckboxForm[text]')
@@ -314,20 +314,20 @@ public function testLabelAttributes(): void
<<Select your gender?
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
- ->labelContent('Select your gender?')
->labelAttributes(['class' => 'class'])
+ ->labelContent('Select your gender?')
->name('CheckboxForm[text]')
->render(),
);
@@ -339,20 +339,45 @@ public function testLabelClass(): void
<<Select your gender?
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
- ->labelContent('Select your gender?')
->labelClass('class')
+ ->labelContent('Select your gender?')
+ ->name('CheckboxForm[text]')
+ ->render(),
+ );
+ }
+
+ public function testLabelItemClass(): void
+ {
+ Assert::equalsWithoutLE(
+ <<Select your gender?
+
+
+
+
+
+
+ HTML,
+ Choicelist::widget()
+ ->id('choice-list-65858c272ea89')
+ ->items(
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
+ )
+ ->labelContent('Select your gender?')
+ ->labelItemClass('class')
->name('CheckboxForm[text]')
->render(),
);
@@ -364,20 +389,20 @@ public function testName(): void
<<Select your gender?
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
- ->labelContent('Select your gender?')
->labelClass('class')
+ ->labelContent('Select your gender?')
->name('CheckboxForm[text]')
->render(),
);
@@ -388,20 +413,20 @@ public function testNotLabel(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
- ->labelContent('Select your gender?')
->labelClass('class')
+ ->labelContent('Select your gender?')
->name('CheckboxForm[text]')
->notLabel()
->render(),
@@ -413,17 +438,17 @@ public function testRender(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Red')->value('red'),
- Checkbox::widget()->labelContent('Blue')->value('blue'),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Red')->value('red'),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Blue')->value('blue'),
)
->name('CheckboxForm[text]')
->render(),
@@ -435,17 +460,17 @@ public function testSeparator(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Red')->value('red'),
- Checkbox::widget()->labelContent('Blue')->value('blue'),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Red')->value('red'),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Blue')->value('blue'),
)
->name('CheckboxForm[text]')
->separator(PHP_EOL)
@@ -458,17 +483,17 @@ public function testTabindex(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Red')->value('red'),
- Checkbox::widget()->labelContent('Blue')->value('blue'),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Red')->value('red'),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Blue')->value('blue'),
)
->name('CheckboxForm[text]')
->tabIndex(1)
@@ -481,22 +506,22 @@ public function testTemplate(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Red')->value('red'),
- Checkbox::widget()->labelContent('Blue')->value('blue'),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Red')->value('red'),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Blue')->value('blue'),
)
- ->name('CheckboxForm[text]')
- ->labelContent('Select your gender?')
->labelClass('class')
+ ->labelContent('Select your gender?')
+ ->name('CheckboxForm[text]')
->template('{tag}\n{label}')
->render(),
);
@@ -507,18 +532,18 @@ public function testValue(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->checkedValue(1)
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
@@ -530,18 +555,18 @@ public function testValueWithNull(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
Choicelist::widget()
->checkedValue(null)
->id('choice-list-65858c272ea89')
->items(
- Checkbox::widget()->labelContent('Female')->value(1),
- Checkbox::widget()->labelContent('Male')->value(2),
+ Checkbox::widget()->id('checkbox-6599b6a33dd96')->labelContent('Female')->value(1),
+ Checkbox::widget()->id('checkbox-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('CheckboxForm[text]')
->render(),
diff --git a/tests/Input/ChoiceList/RadioListTest.php b/tests/Input/ChoiceList/RadioListTest.php
index ba4bb596..62aeb63d 100644
--- a/tests/Input/ChoiceList/RadioListTest.php
+++ b/tests/Input/ChoiceList/RadioListTest.php
@@ -19,18 +19,18 @@ public function testAttributes(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->attributes(['class' => 'class'])
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -42,18 +42,18 @@ public function testAutofocus(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->autofocus()
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -65,18 +65,18 @@ public function testClass(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->class('class')
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -88,18 +88,18 @@ public function testContainerAttributes(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->containerAttributes(['class' => 'class'])
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -111,18 +111,18 @@ public function testContainerClass(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->containerClass('class')
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -134,18 +134,18 @@ public function testContainerTag(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->containerTag('article')
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -156,16 +156,16 @@ public function testContainerWithFalse(): void
{
Assert::equalsWithoutLE(
<<
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->container(false)
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -177,16 +177,16 @@ public function testEnclosedByLabel(): void
Assert::equalsWithoutLE(
<<
-
-
+
+
HTML,
ChoiceList::widget()
->enclosedByLabel(true)
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -198,17 +198,17 @@ public function testId(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->id('id')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('id-radio-1')->labelContent('Female')->value(1),
+ Radio::widget()->id('id-radio-2')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -221,17 +221,17 @@ public function testLabel(): void
<<Select your gender?
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->labelContent('Select your gender?')
->name('radioform[text]')
@@ -245,20 +245,20 @@ public function testLabelAttributes(): void
<<Select your gender?
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
- ->labelContent('Select your gender?')
->labelAttributes(['class' => 'class'])
+ ->labelContent('Select your gender?')
->name('radioform[text]')
->render(),
);
@@ -270,17 +270,17 @@ public function testLabelClass(): void
<<Select your gender?
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->labelContent('Select your gender?')
->labelClass('class')
@@ -289,23 +289,48 @@ public function testLabelClass(): void
);
}
+ public function testLabelItemClass(): void
+ {
+ Assert::equalsWithoutLE(
+ <<Select your gender?
+
+
+
+
+
+
+ HTML,
+ Choicelist::widget()
+ ->id('choice-list-65858c272ea89')
+ ->items(
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
+ )
+ ->labelContent('Select your gender?')
+ ->labelItemClass('class')
+ ->name('CheckboxForm[text]')
+ ->render(),
+ );
+ }
+
public function testName(): void
{
Assert::equalsWithoutLE(
<<Select your gender?
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->labelContent('Select your gender?')
->labelClass('class')
@@ -320,17 +345,17 @@ public function testRender(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Red')->value('red'),
- Radio::widget()->labelContent('Blue')->value('blue'),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Red')->value('red'),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Blue')->value('blue'),
)
->name('radioform[text]')
->render(),
@@ -342,17 +367,17 @@ public function testSeparator(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Red')->value('red'),
- Radio::widget()->labelContent('Blue')->value('blue'),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Red')->value('red'),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Blue')->value('blue'),
)
->name('radioform[text]')
->separator(PHP_EOL)
@@ -365,17 +390,17 @@ public function testTabindex(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Red')->value('red'),
- Radio::widget()->labelContent('Blue')->value('blue'),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Red')->value('red'),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Blue')->value('blue'),
)
->name('radioform[text]')
->tabIndex(1)
@@ -388,18 +413,18 @@ public function testValue(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->checkedValue(1)
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
@@ -411,18 +436,18 @@ public function testValueWithNull(): void
Assert::equalsWithoutLE(
<<
-
-
-
-
+
+
+
+
HTML,
ChoiceList::widget()
->checkedValue(null)
->id('choice-list-65858c272ea89')
->items(
- Radio::widget()->labelContent('Female')->value(1),
- Radio::widget()->labelContent('Male')->value(2),
+ Radio::widget()->id('radio-6599b6a33dd96')->labelContent('Female')->value(1),
+ Radio::widget()->id('radio-6599b6a33dd97')->labelContent('Male')->value(2),
)
->name('radioform[text]')
->render(),
diff --git a/tests/Input/Radio/RenderTest.php b/tests/Input/Radio/RenderTest.php
index 86e6b415..dba19fb5 100644
--- a/tests/Input/Radio/RenderTest.php
+++ b/tests/Input/Radio/RenderTest.php
@@ -36,7 +36,7 @@ public function testAttributes(): void
<<
HTML,
- Radio::widget()->attributes(['class' => 'class'])->id('radio-6582f2d099e8b')->render()
+ Radio::widget()->attributes(['class' => 'class', 'id' => 'radio-6582f2d099e8b'])->render()
);
}