summaryrefslogtreecommitdiffstats
path: root/php-hamcrest-upstream.patch
diff options
context:
space:
mode:
Diffstat (limited to 'php-hamcrest-upstream.patch')
-rw-r--r--php-hamcrest-upstream.patch69
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()