From b3e7389c2bfae560ea29c660049c6b33fc3bab99 Mon Sep 17 00:00:00 2001 From: Chris Morrell Date: Fri, 22 Jan 2021 00:17:47 -0500 Subject: [PATCH] isValue improvements --- src/Elements/Attributes/Attributes.php | 12 +++++++++--- tests/Unit/AttributesTest.php | 15 ++++++++++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/Elements/Attributes/Attributes.php b/src/Elements/Attributes/Attributes.php index e6e36f9..3aa4f66 100644 --- a/src/Elements/Attributes/Attributes.php +++ b/src/Elements/Attributes/Attributes.php @@ -268,10 +268,16 @@ public function isValue($check_value) : bool $current_value = $this->get('value'); + if ($current_value instanceof Collection) { + return $current_value->contains($check_value); + } + + if (is_array($current_value)) { + return in_array($check_value, $current_value, false); + } + /** @noinspection TypeUnsafeComparisonInspection **/ - return is_array($current_value) - ? in_array($check_value, $current_value, false) - : $check_value == $current_value; + return $check_value == $current_value; } /** diff --git a/tests/Unit/AttributesTest.php b/tests/Unit/AttributesTest.php index 46117dc..6132751 100644 --- a/tests/Unit/AttributesTest.php +++ b/tests/Unit/AttributesTest.php @@ -114,12 +114,25 @@ public function test_value_equality_helper() : void $this->assertTrue($attributes->isValue('foo')); $this->assertFalse($attributes->isValue('bar')); + $this->assertFalse($attributes->isValue(1)); - $attributes->set('value', ['foo', 'bar']); + $attributes->set('value', ['foo', 'bar', 2]); $this->assertTrue($attributes->isValue('foo')); $this->assertTrue($attributes->isValue('bar')); + $this->assertTrue($attributes->isValue(2)); + $this->assertTrue($attributes->isValue('2')); $this->assertFalse($attributes->isValue('baz')); + $this->assertFalse($attributes->isValue(1)); + + $attributes->set('value', collect(['foo', 'bar', 2])); + + $this->assertTrue($attributes->isValue('foo')); + $this->assertTrue($attributes->isValue('bar')); + $this->assertTrue($attributes->isValue(2)); + $this->assertTrue($attributes->isValue('2')); + $this->assertFalse($attributes->isValue('baz')); + $this->assertFalse($attributes->isValue(1)); } public function test_basic_html_rendering() : void