Merge pull request #965 from frederikweber/patch-1

Send charset in Content-Type when Content is JSON.
This commit is contained in:
Mark Story 2012-11-19 17:08:57 -08:00
commit 04d4abfa53
2 changed files with 7 additions and 5 deletions

View file

@ -411,6 +411,8 @@ class CakeResponse {
} }
if (strpos($this->_contentType, 'text/') === 0) { if (strpos($this->_contentType, 'text/') === 0) {
$this->header('Content-Type', "{$this->_contentType}; charset={$this->_charset}"); $this->header('Content-Type', "{$this->_contentType}; charset={$this->_charset}");
} elseif ($this->_contentType === 'application/json') {
$this->header('Content-Type', "{$this->_contentType}; charset=UTF-8");
} else { } else {
$this->header('Content-Type', "{$this->_contentType}"); $this->header('Content-Type', "{$this->_contentType}");
} }

View file

@ -199,7 +199,7 @@ class CakeResponseTest extends CakeTestCase {
* Tests the send method and changing the content type * Tests the send method and changing the content type
* *
*/ */
public function testSendChangingContentYype() { public function testSendChangingContentType() {
$response = $this->getMock('CakeResponse', array('_sendHeader', '_sendContent', '_setCookies')); $response = $this->getMock('CakeResponse', array('_sendHeader', '_sendContent', '_setCookies'));
$response->type('mp3'); $response->type('mp3');
$response->body('the response body'); $response->body('the response body');
@ -215,12 +215,12 @@ class CakeResponseTest extends CakeTestCase {
} }
/** /**
* Tests the send method and changing the content type * Tests the send method and changing the content type to JSON
* *
*/ */
public function testSendChangingContentType() { public function testSendChangingContentTypeJSON() {
$response = $this->getMock('CakeResponse', array('_sendHeader', '_sendContent', '_setCookies')); $response = $this->getMock('CakeResponse', array('_sendHeader', '_sendContent', '_setCookies'));
$response->type('mp3'); $response->type('json');
$response->body('the response body'); $response->body('the response body');
$response->expects($this->once())->method('_sendContent')->with('the response body'); $response->expects($this->once())->method('_sendContent')->with('the response body');
$response->expects($this->at(0))->method('_setCookies'); $response->expects($this->at(0))->method('_setCookies');
@ -229,7 +229,7 @@ class CakeResponseTest extends CakeTestCase {
$response->expects($this->at(2)) $response->expects($this->at(2))
->method('_sendHeader')->with('Content-Length', 17); ->method('_sendHeader')->with('Content-Length', 17);
$response->expects($this->at(3)) $response->expects($this->at(3))
->method('_sendHeader')->with('Content-Type', 'audio/mpeg'); ->method('_sendHeader')->with('Content-Type', 'application/json; charset=UTF-8');
$response->send(); $response->send();
} }