mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Not sending a content-length for redirection status codes that are not supposed to have any content
This commit is contained in:
parent
aabfad9a09
commit
9866882506
2 changed files with 10 additions and 2 deletions
|
@ -351,8 +351,8 @@ class CakeResponse {
|
|||
$this->_sendHeader("{$this->_protocol} {$this->_status} {$codeMessage}");
|
||||
$this->_sendHeader('Content-Type', "{$this->_contentType}; charset={$this->_charset}");
|
||||
$shouldSetLength = empty($this->_headers['Content-Length']) && class_exists('Multibyte');
|
||||
$shouldSetLength = $shouldSetLength && !$this->outputCompressed();
|
||||
if ($shouldSetLength) {
|
||||
$shouldSetLength = $shouldSetLength && !in_array($this->_status, range(301, 307));
|
||||
if ($shouldSetLength && !$this->outputCompressed()) {
|
||||
$this->_headers['Content-Length'] = mb_strlen($this->_body);
|
||||
}
|
||||
foreach ($this->_headers as $header => $value) {
|
||||
|
|
|
@ -416,5 +416,13 @@ class CakeResponseTest extends CakeTestCase {
|
|||
$response->expects($this->at(2))
|
||||
->method('_sendHeader')->with('Content-Length', 1);
|
||||
$response->send();
|
||||
|
||||
$response = $this->getMock('CakeResponse', array('_sendHeader', '_sendContent'));
|
||||
$body = 'content';
|
||||
$response->statusCode(301);
|
||||
$response->body($body);
|
||||
$response->expects($this->once())->method('_sendContent')->with($body);
|
||||
$response->expects($this->exactly(2))->method('_sendHeader');
|
||||
$response->send();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue