mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
c69381c33e
This reverts commit 356a367eb5d05bea3dfa2edaeabc52a2496b93b2. We can't use headers_sent() to determine an accurate content length, since PHP defaults to buffering a couple of bytes even without ob_start() (see "output_buffering" setting). This makes the patch harmful, since it breaks any responses relying on more structure data, like removing closing brackets from JSON. Which in turn breaks the CMS in horrible ways (see #8010). See #7574 for context.
34 lines
827 B
PHP
34 lines
827 B
PHP
<?php
|
|
/**
|
|
* @package framework
|
|
* @subpackage tests
|
|
*/
|
|
class HTTPResponseTest extends SapphireTest {
|
|
|
|
public function testStatusDescriptionStripsNewlines() {
|
|
$r = new SS_HTTPResponse('my body', 200, "my description \nwith newlines \rand carriage returns");
|
|
$this->assertEquals(
|
|
"my description with newlines and carriage returns",
|
|
$r->getStatusDescription()
|
|
);
|
|
}
|
|
|
|
public function testContentLengthHeader() {
|
|
$r = new SS_HTTPResponse('123ü');
|
|
$this->assertNotNull($r->getHeader('Content-Length'), 'Content-length header is added');
|
|
$this->assertEquals(
|
|
5,
|
|
$r->getHeader('Content-Length'),
|
|
'Header matches actual content length in bytes'
|
|
);
|
|
|
|
$r->setBody('1234ü');
|
|
$this->assertEquals(
|
|
6,
|
|
$r->getHeader('Content-Length'),
|
|
'Header is updated when body is changed'
|
|
);
|
|
}
|
|
|
|
}
|