web/lib/Zend/Test/PHPUnit/Constraint/ResponseHeader.php
changeset 1230 68c69c656a2c
parent 807 877f952ae2bd
--- a/web/lib/Zend/Test/PHPUnit/Constraint/ResponseHeader.php	Thu May 07 15:10:09 2015 +0200
+++ b/web/lib/Zend/Test/PHPUnit/Constraint/ResponseHeader.php	Thu May 07 15:16:02 2015 +0200
@@ -15,395 +15,24 @@
  * @category   Zend
  * @package    Zend_Test
  * @subpackage PHPUnit
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  * @license    http://framework.zend.com/license/new-bsd     New BSD License
- * @version    $Id: ResponseHeader.php 25205 2013-01-10 11:23:25Z frosch $
+ * @version    $Id$
  */
 
-/** @see PHPUnit_Framework_Constraint */
-require_once 'PHPUnit/Framework/Constraint.php';
-
-/**
- * Response header PHPUnit Constraint
- *
- * @uses       PHPUnit_Framework_Constraint
- * @category   Zend
- * @package    Zend_Test
- * @subpackage PHPUnit
- * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- * @license    http://framework.zend.com/license/new-bsd     New BSD License
- */
-class Zend_Test_PHPUnit_Constraint_ResponseHeader extends PHPUnit_Framework_Constraint
-{
-    /**#@+
-     * Assertion type constants
-     */
-    const ASSERT_RESPONSE_CODE   = 'assertResponseCode';
-    const ASSERT_HEADER          = 'assertHeader';
-    const ASSERT_HEADER_CONTAINS = 'assertHeaderContains';
-    const ASSERT_HEADER_REGEX    = 'assertHeaderRegex';
-    /**#@-*/
-
-    /**
-     * Current assertion type
-     * @var string
-     */
-    protected $_assertType      = null;
-
-    /**
-     * Available assertion types
-     * @var array
-     */
-    protected $_assertTypes     = array(
-        self::ASSERT_RESPONSE_CODE,
-        self::ASSERT_HEADER,
-        self::ASSERT_HEADER_CONTAINS,
-        self::ASSERT_HEADER_REGEX,
-    );
-
-    /**
-     * @var int Response code
-     */
-    protected $_code              = 200;
-    
-    /**
-     * @var int Actual response code
-     */
-    protected $_actualCode        = null;
-
-    /**
-     * @var string Header
-     */
-    protected $_header            = null;
-
-    /**
-     * @var string pattern against which to compare header content
-     */
-    protected $_match             = null;
-
-    /**
-     * Whether or not assertion is negated
-     * @var bool
-     */
-    protected $_negate            = false;
-
-    /**
-     * Constructor; setup constraint state
-     *
-     * @return void
-     */
-    public function __construct()
-    {
-    }
+if (version_compare(PHPUnit_Runner_Version::id(), '4.1', '>=')) {
+    include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'ResponseHeader41.php');
 
-    /**
-     * Indicate negative match
-     *
-     * @param  bool $flag
-     * @return void
-     */
-    public function setNegate($flag = true)
-    {
-        $this->_negate = $flag;
-    }
-
-    /**
-     * Evaluate an object to see if it fits the constraints
-     *
-     * @param  Zend_Controller_Response_Abstract $other String to examine
-     * @param  null|string Assertion type
-     * @return bool
-     */
-    public function evaluate($other, $assertType = null)
-    {
-        if (!$other instanceof Zend_Controller_Response_Abstract) {
-            require_once 'Zend/Test/PHPUnit/Constraint/Exception.php';
-            throw new Zend_Test_PHPUnit_Constraint_Exception('Header constraint assertions require a response object');
-        }
-
-        if (strstr($assertType, 'Not')) {
-            $this->setNegate(true);
-            $assertType = str_replace('Not', '', $assertType);
-        }
-
-        if (!in_array($assertType, $this->_assertTypes)) {
-            require_once 'Zend/Test/PHPUnit/Constraint/Exception.php';
-            throw new Zend_Test_PHPUnit_Constraint_Exception(sprintf('Invalid assertion type "%s" provided to %s constraint', $assertType, __CLASS__));
-        }
-
-        $this->_assertType = $assertType;
-
-        $response = $other;
-        $argv     = func_get_args();
-        $argc     = func_num_args();
-
-        switch ($assertType) {
-            case self::ASSERT_RESPONSE_CODE:
-                if (3 > $argc) {
-                    require_once 'Zend/Test/PHPUnit/Constraint/Exception.php';
-                    throw new Zend_Test_PHPUnit_Constraint_Exception('No response code provided against which to match');
-                }
-                $this->_code = $code = $argv[2];
-                return ($this->_negate)
-                    ? $this->_notCode($response, $code)
-                    : $this->_code($response, $code);
-            case self::ASSERT_HEADER:
-                if (3 > $argc) {
-                    require_once 'Zend/Test/PHPUnit/Constraint/Exception.php';
-                    throw new Zend_Test_PHPUnit_Constraint_Exception('No header provided against which to match');
-                }
-                $this->_header = $header = $argv[2];
-                return ($this->_negate)
-                    ? $this->_notHeader($response, $header)
-                    : $this->_header($response, $header);
-            case self::ASSERT_HEADER_CONTAINS:
-                if (4 > $argc) {
-                    require_once 'Zend/Test/PHPUnit/Constraint/Exception.php';
-                    throw new Zend_Test_PHPUnit_Constraint_Exception('Both a header name and content to match are required for ' . __FUNCTION__);
-                }
-                $this->_header = $header = $argv[2];
-                $this->_match  = $match  = $argv[3];
-                return ($this->_negate)
-                    ? $this->_notHeaderContains($response, $header, $match)
-                    : $this->_headerContains($response, $header, $match);
-            case self::ASSERT_HEADER_REGEX:
-                if (4 > $argc) {
-                    require_once 'Zend/Test/PHPUnit/Constraint/Exception.php';
-                    throw new Zend_Test_PHPUnit_Constraint_Exception('Both a header name and content to match are required for ' . __FUNCTION__);
-                }
-                $this->_header = $header = $argv[2];
-                $this->_match  = $match  = $argv[3];
-                return ($this->_negate)
-                    ? $this->_notHeaderRegex($response, $header, $match)
-                    : $this->_headerRegex($response, $header, $match);
-            default:
-                require_once 'Zend/Test/PHPUnit/Constraint/Exception.php';
-                throw new Zend_Test_PHPUnit_Constraint_Exception('Invalid assertion type ' . __FUNCTION__);
-        }
-    }
+    class Zend_Test_PHPUnit_Constraint_ResponseHeader extends Zend_Test_PHPUnit_Constraint_ResponseHeader41
+    {}
+} elseif (version_compare(PHPUnit_Runner_Version::id(), '3.5', '>=')) {
+    include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'ResponseHeader37.php');
 
-    /**
-     * Report Failure
-     *
-     * @see    PHPUnit_Framework_Constraint for implementation details
-     * @param  mixed $other
-     * @param  string $description Additional message to display
-     * @param  bool $not
-     * @return void
-     * @throws PHPUnit_Framework_ExpectationFailedException
-     */
-    public function fail($other, $description, $not = false)
-    {
-        require_once 'Zend/Test/PHPUnit/Constraint/Exception.php';
-        switch ($this->_assertType) {
-            case self::ASSERT_RESPONSE_CODE:
-                $failure = 'Failed asserting response code "%s"';
-                if ($this->_negate) {
-                    $failure = 'Failed asserting response code IS NOT "%s"';
-                }
-                $failure = sprintf($failure, $this->_code);
-                if (!$this->_negate && $this->_actualCode) {
-                    $failure .= sprintf(PHP_EOL . 'Was "%s"', $this->_actualCode);
-                }
-                break;
-            case self::ASSERT_HEADER:
-                $failure = 'Failed asserting response header "%s" found';
-                if ($this->_negate) {
-                    $failure = 'Failed asserting response response header "%s" WAS NOT found';
-                }
-                $failure = sprintf($failure, $this->_header);
-                break;
-            case self::ASSERT_HEADER_CONTAINS:
-                $failure = 'Failed asserting response header "%s" exists and contains "%s"';
-                if ($this->_negate) {
-                    $failure = 'Failed asserting response header "%s" DOES NOT CONTAIN "%s"';
-                }
-                $failure = sprintf($failure, $this->_header, $this->_match);
-                break;
-            case self::ASSERT_HEADER_REGEX:
-                $failure = 'Failed asserting response header "%s" exists and matches regex "%s"';
-                if ($this->_negate) {
-                    $failure = 'Failed asserting response header "%s" DOES NOT MATCH regex "%s"';
-                }
-                $failure = sprintf($failure, $this->_header, $this->_match);
-                break;
-            default:
-                throw new Zend_Test_PHPUnit_Constraint_Exception('Invalid assertion type ' . __FUNCTION__);
-        }
-
-        if (!empty($description)) {
-            $failure = $description . "\n" . $failure;
-        }
-
-        throw new Zend_Test_PHPUnit_Constraint_Exception($failure);
-    }
-
-    /**
-     * Complete implementation
-     *
-     * @return string
-     */
-    public function toString()
-    {
-        return '';
-    }
-
-    /**
-     * Compare response code for positive match
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @param  int $code
-     * @return bool
-     */
-    protected function _code(Zend_Controller_Response_Abstract $response, $code)
-    {
-        $test = $this->_getCode($response);
-        $this->_actualCode = $test;
-        return ($test == $code);
-    }
-
-    /**
-     * Compare response code for negative match
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @param  int $code
-     * @return bool
-     */
-    protected function _notCode(Zend_Controller_Response_Abstract $response, $code)
-    {
-        $test = $this->_getCode($response);
-        return ($test != $code);
-    }
-
-    /**
-     * Retrieve response code
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @return int
-     */
-    protected function _getCode(Zend_Controller_Response_Abstract $response)
-    {
-        $test = $response->getHttpResponseCode();
-        if (null === $test) {
-            $test = 200;
-        }
-        return $test;
-    }
+    class Zend_Test_PHPUnit_Constraint_ResponseHeader extends Zend_Test_PHPUnit_Constraint_ResponseHeader37
+    {}
+} else {
+    include(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'ResponseHeader34.php');
 
-    /**
-     * Positive check for response header presence
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @param  string $header
-     * @return bool
-     */
-    protected function _header(Zend_Controller_Response_Abstract $response, $header)
-    {
-        return (null !== $this->_getHeader($response, $header));
-    }
-
-    /**
-     * Negative check for response header presence
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @param  string $header
-     * @return bool
-     */
-    protected function _notHeader(Zend_Controller_Response_Abstract $response, $header)
-    {
-        return (null === $this->_getHeader($response, $header));
-    }
-
-    /**
-     * Retrieve response header
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @param  string $header
-     * @return string|null
-     */
-    protected function _getHeader(Zend_Controller_Response_Abstract $response, $header)
-    {
-        $headers = $response->sendHeaders();
-        $header  = strtolower($header);
-        if (array_key_exists($header, $headers)) {
-            return $headers[$header];
-        }
-        return null;
-    }
-
-    /**
-     * Positive check for header contents matching pattern
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @param  string $header
-     * @param  string $match
-     * @return bool
-     */
-    protected function _headerContains(Zend_Controller_Response_Abstract $response, $header, $match)
-    {
-        if (null === ($fullHeader = $this->_getHeader($response, $header))) {
-            return false;
-        }
-
-        $contents = str_replace($header . ': ', '', $fullHeader);
-
-        return (strstr($contents, $match) !== false);
-    }
-
-    /**
-     * Negative check for header contents matching pattern
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @param  string $header
-     * @param  string $match
-     * @return bool
-     */
-    protected function _notHeaderContains(Zend_Controller_Response_Abstract $response, $header, $match)
-    {
-        if (null === ($fullHeader = $this->_getHeader($response, $header))) {
-            return true;
-        }
-
-        $contents = str_replace($header . ': ', '', $fullHeader);
-
-        return (strstr($contents, $match) === false);
-    }
-
-    /**
-     * Positive check for header contents matching regex
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @param  string $header
-     * @param  string $pattern
-     * @return bool
-     */
-    protected function _headerRegex(Zend_Controller_Response_Abstract $response, $header, $pattern)
-    {
-        if (null === ($fullHeader = $this->_getHeader($response, $header))) {
-            return false;
-        }
-
-        $contents = str_replace($header . ': ', '', $fullHeader);
-
-        return preg_match($pattern, $contents);
-    }
-
-    /**
-     * Negative check for header contents matching regex
-     *
-     * @param  Zend_Controller_Response_Abstract $response
-     * @param  string $header
-     * @param  string $pattern
-     * @return bool
-     */
-    protected function _notHeaderRegex(Zend_Controller_Response_Abstract $response, $header, $pattern)
-    {
-        if (null === ($fullHeader = $this->_getHeader($response, $header))) {
-            return true;
-        }
-
-        $contents = str_replace($header . ': ', '', $fullHeader);
-
-        return !preg_match($pattern, $contents);
-    }
+    class Zend_Test_PHPUnit_Constraint_ResponseHeader extends Zend_Test_PHPUnit_Constraint_ResponseHeader34
+    {}
 }