diff options
Diffstat (limited to 'tests/PHPUnit/Framework/Constraint/ResponseCode.php')
-rw-r--r-- | tests/PHPUnit/Framework/Constraint/ResponseCode.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/PHPUnit/Framework/Constraint/ResponseCode.php b/tests/PHPUnit/Framework/Constraint/ResponseCode.php new file mode 100644 index 0000000000..b934ea008f --- /dev/null +++ b/tests/PHPUnit/Framework/Constraint/ResponseCode.php @@ -0,0 +1,56 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ +namespace Piwik\Tests\Framework\Constraint; + +class ResponseCode extends \PHPUnit_Framework_Constraint +{ + + /** + * @param integer $value Expected response code + */ + public function __construct($value) + { + parent::__construct(); + $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) + { + $options = array( + CURLOPT_URL => $other, + CURLOPT_HEADER => true, + CURLOPT_TIMEOUT => 1, + CURLOPT_RETURNTRANSFER => true + ); + + $ch = curl_init(); + curl_setopt_array($ch, $options); + @curl_exec($ch); + $responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + return $this->value === (int) $responseCode; + } + + /** + * Returns a string representation of the constraint. + * + * @return string + */ + public function toString() + { + return 'does not return response code ' . $this->exporter->export($this->value); + } +}?>
\ No newline at end of file |