From 72841d2da60adb1bae0692d4297ccb6c6a40a3cf Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Sat, 7 Sep 2024 19:03:17 +0300 Subject: [PATCH 1/5] Fix #175: Add testcase for multibyte LikeHandler --- tests/Reader/Iterable/FilterHandler/LikeHandlerTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/Reader/Iterable/FilterHandler/LikeHandlerTest.php b/tests/Reader/Iterable/FilterHandler/LikeHandlerTest.php index 3b0b5d8..dc4a889 100644 --- a/tests/Reader/Iterable/FilterHandler/LikeHandlerTest.php +++ b/tests/Reader/Iterable/FilterHandler/LikeHandlerTest.php @@ -34,6 +34,8 @@ public static function matchDataProvider(): array [false, ['id' => 1, 'value' => 'Great Cat Fighter'], 'id', '1', true], [true, ['id' => 1, 'value' => '๐Ÿ™๐Ÿ™‚๐Ÿ™'], 'value', '๐Ÿ™‚', true], [true, ['id' => 1, 'value' => 'ะŸั€ะธะฒะตั‚ ะผะธั€'], 'value', ' ', true], + + [true, ['id' => 1, 'value' => 'das ร–l'], 'value', 'รถl', false], ]; } From 842f21d8a2d16f3182618b777be304061455a787 Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Sat, 7 Sep 2024 19:06:16 +0300 Subject: [PATCH 2/5] Do not ignore mutants --- src/Reader/Iterable/FilterHandler/LikeHandler.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Reader/Iterable/FilterHandler/LikeHandler.php b/src/Reader/Iterable/FilterHandler/LikeHandler.php index d6941ac..a48c51c 100644 --- a/src/Reader/Iterable/FilterHandler/LikeHandler.php +++ b/src/Reader/Iterable/FilterHandler/LikeHandler.php @@ -30,7 +30,6 @@ public function match(object|array $item, FilterInterface $filter, array $iterab return false; } - /** @infection-ignore-all MBString No suitable test case was found yet. */ return $filter->isCaseSensitive() === true ? mb_strpos($itemValue, $filter->getValue()) !== false : mb_stripos($itemValue, $filter->getValue()) !== false; From e72dda5b207f2856d6470d25a7754484ab14f21e Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Sat, 7 Sep 2024 19:08:02 +0300 Subject: [PATCH 3/5] Use str_contains for case sensitive search --- src/Reader/Iterable/FilterHandler/LikeHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Reader/Iterable/FilterHandler/LikeHandler.php b/src/Reader/Iterable/FilterHandler/LikeHandler.php index a48c51c..e07119f 100644 --- a/src/Reader/Iterable/FilterHandler/LikeHandler.php +++ b/src/Reader/Iterable/FilterHandler/LikeHandler.php @@ -31,7 +31,7 @@ public function match(object|array $item, FilterInterface $filter, array $iterab } return $filter->isCaseSensitive() === true - ? mb_strpos($itemValue, $filter->getValue()) !== false + ? str_contains($itemValue, $filter->getValue()) : mb_stripos($itemValue, $filter->getValue()) !== false; } } From 408f12c2d2b47381917e63f96624c5beae97806f Mon Sep 17 00:00:00 2001 From: Alexander Makarov Date: Sun, 8 Sep 2024 12:10:22 +0300 Subject: [PATCH 4/5] Add CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06cd984..6a894b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ - New #176: Add `OrderHelper` (@vjik) - New #173, #184: Add `$caseSensitive` parameter to `Like` filter to control whether the search must be case-sensitive or not (@arogachev) +- Chg #190: Add testcase for multibyte `LikeHandler`, use `str_contains` for case-sensitive match (@samdark) ## 1.0.1 January 25, 2023 From 6c23fa190ef682507f866b61dd943a8520833331 Mon Sep 17 00:00:00 2001 From: Alexey Rogachev Date: Sun, 8 Sep 2024 14:57:20 +0500 Subject: [PATCH 5/5] Update CHANGELOG.md Co-authored-by: Sergei Predvoditelev --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a894b7..b1a1004 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,7 +27,7 @@ - New #176: Add `OrderHelper` (@vjik) - New #173, #184: Add `$caseSensitive` parameter to `Like` filter to control whether the search must be case-sensitive or not (@arogachev) -- Chg #190: Add testcase for multibyte `LikeHandler`, use `str_contains` for case-sensitive match (@samdark) +- Enh #190: Use `str_contains` for case-sensitive match in `LikeHandler` (@samdark) ## 1.0.1 January 25, 2023