From a7539845b3b74d48c79f7943b953c556556265c6 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 Aug 2025 05:15:15 +0000
Subject: [PATCH 01/21] Initial plan
From 86efc7a7085f4c569003c47228afefc68531f5f9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 Aug 2025 05:29:58 +0000
Subject: [PATCH 02/21] Implement HTML5 color input field with comprehensive
test coverage
Co-authored-by: samdark <47294+samdark@users.noreply.github.com>
---
src/Field/Color.php | 171 +++++++++++++++
tests/Field/ColorTest.php | 450 ++++++++++++++++++++++++++++++++++++++
2 files changed, 621 insertions(+)
create mode 100644 src/Field/Color.php
create mode 100644 tests/Field/ColorTest.php
diff --git a/src/Field/Color.php b/src/Field/Color.php
new file mode 100644
index 00000000..60ecee80
--- /dev/null
+++ b/src/Field/Color.php
@@ -0,0 +1,171 @@
+` element of type "color" that allows the user to select a color.
+ *
+ * @link https://html.spec.whatwg.org/multipage/input.html#color-state-(type=color)
+ * @link https://developer.mozilla.org/docs/Web/HTML/Element/input/color
+ */
+final class Color extends InputField implements EnrichFromValidationRulesInterface, ValidationClassInterface
+{
+ use EnrichFromValidationRulesTrait;
+ use ValidationClassTrait;
+
+ /**
+ * @link https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-disabled
+ */
+ public function disabled(bool $disabled = true): self
+ {
+ $new = clone $this;
+ $new->inputAttributes['disabled'] = $disabled;
+ return $new;
+ }
+
+ /**
+ * A boolean attribute that controls whether or not the user can edit the form control.
+ *
+ * @param bool $value Whether to allow the value to be edited by the user.
+ *
+ * @link https://html.spec.whatwg.org/multipage/input.html#attr-input-readonly
+ */
+ public function readonly(bool $value = true): self
+ {
+ $new = clone $this;
+ $new->inputAttributes['readonly'] = $value;
+ return $new;
+ }
+
+ /**
+ * A boolean attribute. When specified, the element is required.
+ *
+ * @param bool $value Whether the control is required for form submission.
+ *
+ * @link https://html.spec.whatwg.org/multipage/input.html#attr-input-required
+ */
+ public function required(bool $value = true): self
+ {
+ $new = clone $this;
+ $new->inputAttributes['required'] = $value;
+ return $new;
+ }
+
+ /**
+ * Identifies the element (or elements) that describes the object.
+ *
+ * @link https://w3c.github.io/aria/#aria-describedby
+ */
+ public function ariaDescribedBy(?string ...$value): self
+ {
+ $new = clone $this;
+ $new->inputAttributes['aria-describedby'] = array_filter($value, static fn (?string $v): bool => $v !== null);
+ return $new;
+ }
+
+ /**
+ * Defines a string value that labels the current element.
+ *
+ * @link https://w3c.github.io/aria/#aria-label
+ */
+ public function ariaLabel(?string $value): self
+ {
+ $new = clone $this;
+ $new->inputAttributes['aria-label'] = $value;
+ return $new;
+ }
+
+ /**
+ * Focus on the control (put cursor into it) when the page loads. Only one form element could be in focus
+ * at the same time.
+ *
+ * @link https://html.spec.whatwg.org/multipage/interaction.html#attr-fe-autofocus
+ */
+ public function autofocus(bool $value = true): self
+ {
+ $new = clone $this;
+ $new->inputAttributes['autofocus'] = $value;
+ return $new;
+ }
+
+ /**
+ * The `tabindex` attribute indicates that its element can be focused, and where it participates in sequential
+ * keyboard navigation (usually with the Tab key, hence the name).
+ *
+ * It accepts an integer as a value, with different results depending on the integer's value:
+ *
+ * - A negative value (usually `tabindex="-1"`) means that the element is not reachable via sequential keyboard
+ * navigation, but could be focused with Javascript or visually. It's mostly useful to create accessible widgets
+ * with JavaScript.
+ * - `tabindex="0"` means that the element should be focusable in sequential keyboard navigation, but its order is
+ * defined by the document's source order.
+ * - A positive value means the element should be focusable in sequential keyboard navigation, with its order
+ * defined by the value of the number. That is, `tabindex="4"` is focused before `tabindex="5"`, but after
+ * `tabindex="3"`.
+ *
+ * @link https://html.spec.whatwg.org/multipage/interaction.html#attr-tabindex
+ */
+ public function tabIndex(?int $value): self
+ {
+ $new = clone $this;
+ $new->inputAttributes['tabindex'] = $value;
+ return $new;
+ }
+
+ protected function beforeRender(): void
+ {
+ if ($this->enrichFromValidationRules) {
+ $this->enrichment = $this
+ ->validationRulesEnricher
+ ?->process($this, $this->getInputData()->getValidationRules())
+ ?? [];
+ }
+ }
+
+ protected function generateInput(): string
+ {
+ $value = $this->getValue();
+
+ if (!is_string($value) && $value !== null) {
+ throw new InvalidArgumentException('Color field requires a string or null value.');
+ }
+
+ /** @psalm-suppress MixedArgument We guess that enrichment contain correct values. */
+ $inputAttributes = array_merge(
+ $this->enrichment['inputAttributes'] ?? [],
+ $this->getInputAttributes()
+ );
+
+ return Html::input('color', $this->getName(), $value, $inputAttributes)->render();
+ }
+
+ protected function prepareContainerAttributes(array &$attributes): void
+ {
+ $this->addValidationClassToAttributes(
+ $attributes,
+ $this->getInputData(),
+ $this->hasCustomError() ? true : null,
+ );
+ }
+
+ protected function prepareInputAttributes(array &$attributes): void
+ {
+ $this->addInputValidationClassToAttributes(
+ $attributes,
+ $this->getInputData(),
+ $this->hasCustomError() ? true : null,
+ );
+ }
+}
\ No newline at end of file
diff --git a/tests/Field/ColorTest.php b/tests/Field/ColorTest.php
new file mode 100644
index 00000000..ebda6470
--- /dev/null
+++ b/tests/Field/ColorTest.php
@@ -0,0 +1,450 @@
+ [
+ <<
+ Background Color
+
+
Select a background color.
+
+ HTML,
+ new InputData(
+ name: 'ColorForm[bgcolor]',
+ value: '',
+ label: 'Background Color',
+ hint: 'Select a background color.',
+ id: 'colorform-bgcolor',
+ ),
+ ],
+ 'input-valid-class' => [
+ <<
+
+
+ HTML,
+ new InputData(
+ name: 'color',
+ value: '',
+ validationErrors: [],
+ ),
+ ['inputValidClass' => 'valid', 'inputInvalidClass' => 'invalid'],
+ ],
+ 'container-valid-class' => [
+ <<
+
+
+ HTML,
+ new InputData(
+ name: 'color',
+ value: '',
+ validationErrors: [],
+ ),
+ ['validClass' => 'valid', 'invalidClass' => 'invalid'],
+ ],
+ 'value' => [
+ <<
+
+
+ HTML,
+ new InputData(
+ name: 'color',
+ value: '#ff0000',
+ ),
+ ],
+ ];
+ }
+
+ #[DataProvider('dataBase')]
+ public function testBase(string $expected, InputData $inputData, array $theme = []): void
+ {
+ ThemeContainer::initialize(
+ configs: ['default' => $theme],
+ defaultConfig: 'default',
+ );
+
+ $result = Color::widget()->inputData($inputData)->render();
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testReadonly(): void
+ {
+ $result = Color::widget()
+ ->name('test')
+ ->readonly()
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testRequired(): void
+ {
+ $result = Color::widget()
+ ->name('test')
+ ->required()
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testDisabled(): void
+ {
+ $result = Color::widget()
+ ->name('test')
+ ->disabled()
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public static function dataAriaDescribedBy(): array
+ {
+ return [
+ 'one element' => [
+ ['hint'],
+ <<
+
+
+ HTML,
+ ],
+ 'multiple elements' => [
+ ['hint1', 'hint2'],
+ <<
+
+
+ HTML,
+ ],
+ 'null with other elements' => [
+ ['hint1', null, 'hint2', null, 'hint3'],
+ <<
+
+
+ HTML,
+ ],
+ 'only null' => [
+ [null, null],
+ <<
+
+
+ HTML,
+ ],
+ 'empty string' => [
+ [''],
+ <<
+
+
+ HTML,
+ ],
+ ];
+ }
+
+ #[DataProvider('dataAriaDescribedBy')]
+ public function testAriaDescribedBy(array $ariaDescribedBy, string $expectedHtml): void
+ {
+ $actualHtml = Color::widget()
+ ->name('test')
+ ->ariaDescribedBy(...$ariaDescribedBy)
+ ->hideLabel()
+ ->render();
+
+ $this->assertSame($expectedHtml, $actualHtml);
+ }
+
+ public function testAriaLabel(): void
+ {
+ $result = Color::widget()
+ ->name('test')
+ ->ariaLabel('test')
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testAutofocus(): void
+ {
+ $result = Color::widget()
+ ->name('test')
+ ->autofocus()
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testTabIndex(): void
+ {
+ $result = Color::widget()
+ ->name('test')
+ ->tabIndex(5)
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testValue(): void
+ {
+ $result = Color::widget()
+ ->name('test')
+ ->value('#123456')
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testValueNull(): void
+ {
+ $result = Color::widget()
+ ->name('test')
+ ->value(null)
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testInvalidValue(): void
+ {
+ $this->expectException(InvalidArgumentException::class);
+ $this->expectExceptionMessage('Color field requires a string or null value.');
+ Color::widget()->name('test')->value(123)->render();
+ }
+
+ public function testEnrichFromValidationRules(): void
+ {
+ $result = Color::widget()
+ ->enrichFromValidationRules()
+ ->validationRulesEnricher(new RequiredValidationRulesEnricher())
+ ->inputData(new InputData('color', validationRules: [['required']]))
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testEnrichFromValidationRulesDisabled(): void
+ {
+ $result = Color::widget()
+ ->validationRulesEnricher(new RequiredValidationRulesEnricher())
+ ->inputData(new InputData('color', validationRules: [['required']]))
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testEnrichFromValidationRulesWithNullProcessResult(): void
+ {
+ $result = Color::widget()
+ ->enrichFromValidationRules()
+ ->validationRulesEnricher(new NullValidationRulesEnricher())
+ ->inputData(new InputData('color'))
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testEnrichmentInputAttributes(): void
+ {
+ $result = Color::widget()
+ ->enrichFromValidationRules()
+ ->validationRulesEnricher(
+ new StubValidationRulesEnricher(['inputAttributes' => ['data-test' => 1]])
+ )
+ ->inputData(new InputData('color'))
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testInvalidClassesFromContainer(): void
+ {
+ $inputData = new InputData('color', validationErrors: ['Value cannot be blank.']);
+
+ $result = Color::widget()
+ ->validClass('valid')
+ ->invalidClass('invalid')
+ ->inputData($inputData)
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testValidClassesFromContainer(): void
+ {
+ $inputData = new InputData('color', validationErrors: []);
+
+ $result = Color::widget()
+ ->validClass('valid')
+ ->invalidClass('invalid')
+ ->inputData($inputData)
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testInvalidClassesFromInput(): void
+ {
+ $inputData = new InputData('color', validationErrors: ['Value cannot be blank.']);
+
+ $result = Color::widget()
+ ->inputValidClass('valid')
+ ->inputInvalidClass('invalid')
+ ->inputData($inputData)
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+
+ public function testValidClassesFromInput(): void
+ {
+ $inputData = new InputData('color', validationErrors: []);
+
+ $result = Color::widget()
+ ->inputValidClass('valid')
+ ->inputInvalidClass('invalid')
+ ->inputData($inputData)
+ ->hideLabel()
+ ->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $result);
+ }
+}
\ No newline at end of file
From 352629bd44e96680ce07823772920126394a5ab7 Mon Sep 17 00:00:00 2001
From: StyleCI Bot
Date: Tue, 12 Aug 2025 05:30:07 +0000
Subject: [PATCH 03/21] Apply fixes from StyleCI
---
src/Field/Color.php | 2 +-
tests/Field/ColorTest.php | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Field/Color.php b/src/Field/Color.php
index 60ecee80..65b6f0d8 100644
--- a/src/Field/Color.php
+++ b/src/Field/Color.php
@@ -168,4 +168,4 @@ protected function prepareInputAttributes(array &$attributes): void
$this->hasCustomError() ? true : null,
);
}
-}
\ No newline at end of file
+}
diff --git a/tests/Field/ColorTest.php b/tests/Field/ColorTest.php
index ebda6470..44be0232 100644
--- a/tests/Field/ColorTest.php
+++ b/tests/Field/ColorTest.php
@@ -447,4 +447,4 @@ public function testValidClassesFromInput(): void
$this->assertSame($expected, $result);
}
-}
\ No newline at end of file
+}
From 53306495713995d85b0f951a02e1eece5315c87a Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 Aug 2025 05:36:08 +0000
Subject: [PATCH 04/21] Add Color field integration to PureField classes with
comprehensive tests
Co-authored-by: samdark <47294+samdark@users.noreply.github.com>
---
src/PureField/Field.php | 11 ++++++++++
src/PureField/FieldFactory.php | 11 ++++++++++
tests/PureField/FieldFactoryTest.php | 32 ++++++++++++++++++++++++++++
tests/PureField/FieldTest.php | 32 ++++++++++++++++++++++++++++
4 files changed, 86 insertions(+)
diff --git a/src/PureField/Field.php b/src/PureField/Field.php
index 96dbd8a7..1110286f 100644
--- a/src/PureField/Field.php
+++ b/src/PureField/Field.php
@@ -8,6 +8,7 @@
use Yiisoft\Form\Field\ButtonGroup;
use Yiisoft\Form\Field\Checkbox;
use Yiisoft\Form\Field\CheckboxList;
+use Yiisoft\Form\Field\Color;
use Yiisoft\Form\Field\Date;
use Yiisoft\Form\Field\DateTimeLocal;
use Yiisoft\Form\Field\Email;
@@ -81,6 +82,16 @@ final public static function checkboxList(
->inputData(new InputData($name, $value));
}
+ final public static function color(
+ ?string $name = null,
+ mixed $value = null,
+ array $config = [],
+ ?string $theme = null,
+ ): Color {
+ return Color::widget(config: $config, theme: $theme ?? static::DEFAULT_THEME)
+ ->inputData(new InputData($name, $value));
+ }
+
final public static function date(
?string $name = null,
mixed $value = null,
diff --git a/src/PureField/FieldFactory.php b/src/PureField/FieldFactory.php
index aeab8762..b43e8c93 100644
--- a/src/PureField/FieldFactory.php
+++ b/src/PureField/FieldFactory.php
@@ -8,6 +8,7 @@
use Yiisoft\Form\Field\ButtonGroup;
use Yiisoft\Form\Field\Checkbox;
use Yiisoft\Form\Field\CheckboxList;
+use Yiisoft\Form\Field\Color;
use Yiisoft\Form\Field\Date;
use Yiisoft\Form\Field\DateTimeLocal;
use Yiisoft\Form\Field\Email;
@@ -80,6 +81,16 @@ final public function checkboxList(
->inputData(new InputData($name, $value));
}
+ final public function color(
+ ?string $name = null,
+ mixed $value = null,
+ array $config = [],
+ ?string $theme = null,
+ ): Color {
+ return Color::widget(config: $config, theme: $theme ?? $this->defaultTheme)
+ ->inputData(new InputData($name, $value));
+ }
+
final public function date(
?string $name = null,
mixed $value = null,
diff --git a/tests/PureField/FieldFactoryTest.php b/tests/PureField/FieldFactoryTest.php
index b526b5c9..cc0f998c 100644
--- a/tests/PureField/FieldFactoryTest.php
+++ b/tests/PureField/FieldFactoryTest.php
@@ -234,6 +234,38 @@ public function testDateTimeLocalWithTheme(): void
$this->assertSame($expected, $html);
}
+ public function testColor(): void
+ {
+ $html = (new FieldFactory())->color()->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $html);
+ }
+
+ public function testColorWithTheme(): void
+ {
+ ThemeContainer::initialize([
+ 'test' => [
+ 'containerTag' => 'span',
+ ],
+ ]);
+
+ $html = (new FieldFactory('default'))->color(theme: 'test')->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $html);
+ }
+
public function testEmail(): void
{
$html = (new FieldFactory())->email()->render();
diff --git a/tests/PureField/FieldTest.php b/tests/PureField/FieldTest.php
index 65acb951..663015bd 100644
--- a/tests/PureField/FieldTest.php
+++ b/tests/PureField/FieldTest.php
@@ -235,6 +235,38 @@ public function testDateTimeLocalWithTheme(): void
$this->assertSame($expected, $html);
}
+ public function testColor(): void
+ {
+ $html = Field::color()->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $html);
+ }
+
+ public function testColorWithTheme(): void
+ {
+ ThemeContainer::initialize([
+ 'test' => [
+ 'containerTag' => 'span',
+ ],
+ ]);
+
+ $html = ThemedField::color(theme: 'test')->render();
+
+ $expected = <<
+
+
+ HTML;
+
+ $this->assertSame($expected, $html);
+ }
+
public function testEmail(): void
{
$html = Field::email()->render();
From 9768217bda029ae4ef559b9f856be025fe330d91 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 Aug 2025 06:29:38 +0000
Subject: [PATCH 05/21] Fix Color field test data to use null instead of empty
strings
Co-authored-by: samdark <47294+samdark@users.noreply.github.com>
---
tests/Field/ColorTest.php | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/tests/Field/ColorTest.php b/tests/Field/ColorTest.php
index 44be0232..50ca4c60 100644
--- a/tests/Field/ColorTest.php
+++ b/tests/Field/ColorTest.php
@@ -29,13 +29,13 @@ public static function dataBase(): array
<<
Background Color
-
+
Select a background color.
HTML,
new InputData(
name: 'ColorForm[bgcolor]',
- value: '',
+ value: null,
label: 'Background Color',
hint: 'Select a background color.',
id: 'colorform-bgcolor',
@@ -44,12 +44,12 @@ public static function dataBase(): array
'input-valid-class' => [
<<
-
+
HTML,
new InputData(
name: 'color',
- value: '',
+ value: null,
validationErrors: [],
),
['inputValidClass' => 'valid', 'inputInvalidClass' => 'invalid'],
@@ -57,12 +57,12 @@ public static function dataBase(): array
'container-valid-class' => [
<<
-
+
HTML,
new InputData(
name: 'color',
- value: '',
+ value: null,
validationErrors: [],
),
['validClass' => 'valid', 'invalidClass' => 'invalid'],
From e41e4346896af9ec652ca8303d536d79ad41fb6b Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 Aug 2025 15:32:10 +0000
Subject: [PATCH 06/21] Fix Color field tests to hide error messages in
validation class tests
Co-authored-by: samdark <47294+samdark@users.noreply.github.com>
---
tests/Field/ColorTest.php | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/Field/ColorTest.php b/tests/Field/ColorTest.php
index 50ca4c60..a480b71d 100644
--- a/tests/Field/ColorTest.php
+++ b/tests/Field/ColorTest.php
@@ -377,6 +377,7 @@ public function testInvalidClassesFromContainer(): void
->invalidClass('invalid')
->inputData($inputData)
->hideLabel()
+ ->hideError()
->render();
$expected = <<inputInvalidClass('invalid')
->inputData($inputData)
->hideLabel()
+ ->hideError()
->render();
$expected = <<
Date: Tue, 12 Aug 2025 17:20:18 +0000
Subject: [PATCH 07/21] Fix Color field tests by removing non-existent
hideError method calls
Co-authored-by: samdark <47294+samdark@users.noreply.github.com>
---
tests/Field/ColorTest.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/Field/ColorTest.php b/tests/Field/ColorTest.php
index a480b71d..a4adac14 100644
--- a/tests/Field/ColorTest.php
+++ b/tests/Field/ColorTest.php
@@ -377,12 +377,12 @@ public function testInvalidClassesFromContainer(): void
->invalidClass('invalid')
->inputData($inputData)
->hideLabel()
- ->hideError()
->render();
$expected = <<
+ Value cannot be blank.
HTML;
@@ -418,12 +418,12 @@ public function testInvalidClassesFromInput(): void
->inputInvalidClass('invalid')
->inputData($inputData)
->hideLabel()
- ->hideError()
->render();
$expected = <<
+ Value cannot be blank.
HTML;
From 19377bef96e5d7bd7d4d5416ba52bb62be32acd4 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Tue, 12 Aug 2025 20:04:35 +0000
Subject: [PATCH 08/21] Add comprehensive mutation testing coverage with
additional tests
Co-authored-by: samdark <47294+samdark@users.noreply.github.com>
---
.phpunit.result.cache | 1 +
infection.phar | Bin 0 -> 1011925 bytes
tests/Field/ColorTest.php | 291 ++++++++++++++++++++++++++++++++++++++
3 files changed, 292 insertions(+)
create mode 100644 .phpunit.result.cache
create mode 100755 infection.phar
diff --git a/.phpunit.result.cache b/.phpunit.result.cache
new file mode 100644
index 00000000..888d5d0b
--- /dev/null
+++ b/.phpunit.result.cache
@@ -0,0 +1 @@
+{"version":1,"defects":{"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValidClassesFromContainer":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testCustomErrorWithValidationClasses":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testImmutability":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValueBoolean":3,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichmentInputAttributes":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAriaLabelNull":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValueObject":3,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAriaLabel":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidClassesFromInput":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testTabIndex":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichFromValidationRulesDisabled":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testDisabled":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValidClassesFromInput":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValueEmptyString":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValueNull":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichFromValidationRules":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testReadonly":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testDisabledFalse":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAriaDescribedBy":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValueFloat":3,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValueArray":3,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAriaDescribedByFilteringBehavior":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAutofocusFalse":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichFromValidationRulesWithNullProcessResult":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichmentAttributesMerge":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testBase":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testTabIndexNegative":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValidationEnrichmentDisabledByDefault":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidClassesFromContainer":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testBeforeRenderEnrichmentCondition":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testRequired":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValue":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testRequiredFalse":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValue":3,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testTabIndexNull":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAutofocus":4,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testReadonlyFalse":4},"times":{"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValidClassesFromContainer":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testCustomErrorWithValidationClasses":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testImmutability":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValueBoolean":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichmentInputAttributes":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAriaLabelNull":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValueObject":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAriaLabel":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidClassesFromInput":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testTabIndex":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichFromValidationRulesDisabled":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testDisabled":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValidClassesFromInput":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValueEmptyString":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValueNull":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichFromValidationRules":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testReadonly":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testDisabledFalse":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAriaDescribedBy":0,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValueFloat":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValueArray":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAriaDescribedByFilteringBehavior":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAutofocusFalse":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichFromValidationRulesWithNullProcessResult":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testEnrichmentAttributesMerge":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testBase":0,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testTabIndexNegative":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValidationEnrichmentDisabledByDefault":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidClassesFromContainer":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testBeforeRenderEnrichmentCondition":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testRequired":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testValue":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testRequiredFalse":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testInvalidValue":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testTabIndexNull":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testAutofocus":0.001,"Yiisoft\\Form\\Tests\\Field\\ColorTest::testReadonlyFalse":0.001}}
\ No newline at end of file
diff --git a/infection.phar b/infection.phar
new file mode 100755
index 0000000000000000000000000000000000000000..257191b97d9f90200b965e27752494e0f12255e3
GIT binary patch
literal 1011925
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