summaryrefslogtreecommitdiff
path: root/vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php')
-rw-r--r--vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php62
1 files changed, 62 insertions, 0 deletions
diff --git a/vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php b/vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php
new file mode 100644
index 0000000..069d11a
--- /dev/null
+++ b/vendor/swiftmailer/swiftmailer/tests/IdenticalBinaryConstraint.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * A binary safe string comparison.
+ *
+ * @author Chris Corbyn
+ */
+class IdenticalBinaryConstraint extends \PHPUnit_Framework_Constraint
+{
+ protected $value;
+
+ public function __construct($value)
+ {
+ $this->value = $value;
+ }
+
+ /**
+ * Evaluates the constraint for parameter $other. Returns TRUE if the
+ * constraint is met, FALSE otherwise.
+ *
+ * @param mixed $other Value or object to evaluate.
+ *
+ * @return bool
+ */
+ public function matches($other)
+ {
+ $aHex = $this->asHexString($this->value);
+ $bHex = $this->asHexString($other);
+
+ return $aHex === $bHex;
+ }
+
+ /**
+ * Returns a string representation of the constraint.
+ *
+ * @return string
+ */
+ public function toString()
+ {
+ return 'indentical binary';
+ }
+
+ /**
+ * Get the given string of bytes as a stirng of Hexadecimal sequences.
+ *
+ * @param string $binary
+ *
+ * @return string
+ */
+ private function asHexString($binary)
+ {
+ $hex = '';
+
+ $bytes = unpack('H*', $binary);
+
+ foreach ($bytes as &$byte) {
+ $byte = strtoupper($byte);
+ }
+
+ return implode('', $bytes);
+ }
+}