diff options
Diffstat (limited to 'php-hamcrest-upstream.patch')
-rw-r--r-- | php-hamcrest-upstream.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/php-hamcrest-upstream.patch b/php-hamcrest-upstream.patch new file mode 100644 index 0000000..65c3ec6 --- /dev/null +++ b/php-hamcrest-upstream.patch @@ -0,0 +1,69 @@ +From c2aecc2127c92e5e6a77b9b23bf3f409ffd56e4a Mon Sep 17 00:00:00 2001 +From: mikeSimonson <mike.simonson@gmail.com> +Date: Wed, 6 Jan 2016 22:26:02 +0100 +Subject: [PATCH] Removing php 7 from the allowed failure + +Fixing the backward incompatible change of PHP 7 and adding tests for it. +--- + .travis.yml | 1 - + hamcrest/Hamcrest/Type/IsNumeric.php | 20 ++++++++++++++++++++ + tests/Hamcrest/Type/IsNumericTest.php | 4 ++++ + 3 files changed, 24 insertions(+), 1 deletion(-) + +diff --git a/hamcrest/Hamcrest/Type/IsNumeric.php b/hamcrest/Hamcrest/Type/IsNumeric.php +index 9fe8a7a..bc74405 100644 +--- a/hamcrest/Hamcrest/Type/IsNumeric.php ++++ b/hamcrest/Hamcrest/Type/IsNumeric.php +@@ -19,10 +19,30 @@ public function __construct() + + public function matches($item) + { ++ if ($this->isHexadecimal($item)) { ++ return true; ++ } ++ + return is_numeric($item); + } + + /** ++ * Return if the string passed is a valid hexadecimal number. ++ * This check is necessary because PHP 7 doesn't recognize hexadecimal string as numeric anymore. ++ * ++ * @param mixed $item ++ * @return boolean ++ */ ++ private function isHexadecimal($item) ++ { ++ if (is_string($item) && preg_match('/^0x(.*)$/', $item, $matches)) { ++ return ctype_xdigit($matches[1]); ++ } ++ ++ return false; ++ } ++ ++ /** + * Is the value a numeric? + * + * @factory +diff --git a/tests/Hamcrest/Type/IsNumericTest.php b/tests/Hamcrest/Type/IsNumericTest.php +index e718485..1fd83ef 100644 +--- a/tests/Hamcrest/Type/IsNumericTest.php ++++ b/tests/Hamcrest/Type/IsNumericTest.php +@@ -25,6 +25,7 @@ public function testEvaluatesToTrueIfArgumentMatchesType() + assertThat('0.053e-2', numericValue()); + assertThat('-53.253e+25', numericValue()); + assertThat('+53.253e+25', numericValue()); ++ assertThat(0x4F2a04, numericValue()); + assertThat('0x4F2a04', numericValue()); + } + +@@ -34,6 +35,9 @@ public function testEvaluatesToFalseIfArgumentDoesntMatchType() + assertThat('foo', not(numericValue())); + assertThat('foo5', not(numericValue())); + assertThat('5foo', not(numericValue())); ++ assertThat('0x42A04G', not(numericValue())); // G is not in the hexadecimal range. ++ assertThat('1x42A04', not(numericValue())); // 1x is not a valid hexadecimal sequence. ++ assertThat('0x', not(numericValue())); + } + + public function testHasAReadableDescription() |