Skip to content
Permalink
Browse files

Fix empty response bodies when redirect URL's are empty.

When redirecting XHR requests to an empty URL the response body should
not be overwritten.

Fixes #3835
  • Loading branch information...
markstory committed May 17, 2013
1 parent 9147f54 commit e23c4ffad90797cef2762be9a8e4f04beca9e657
@@ -244,6 +244,9 @@ public function beforeRedirect(Controller $controller, $url, $status = null, $ex
if (!$this->request->is('ajax')) {
return;
}
if (empty($url)) {
return;
}
$_SERVER['REQUEST_METHOD'] = 'GET';
foreach ($_POST as $key => $val) {
unset($_POST[$key]);
@@ -411,6 +411,23 @@ public function testNonAjaxRedirect() {
$this->assertNull($this->RequestHandler->beforeRedirect($this->Controller, '/'));
}
/**
* test that redirects with ajax and no url don't do anything.
*
* @return void
*/
public function testAjaxRedirectWithNoUrl() {
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
$this->Controller->response = $this->getMock('CakeResponse');
$this->Controller->response->expects($this->never())
->method('body');
$this->RequestHandler->initialize($this->Controller);
$this->RequestHandler->startup($this->Controller);
$this->assertNull($this->RequestHandler->beforeRedirect($this->Controller, null));
}
/**
* testRenderAs method
*

0 comments on commit e23c4ff

Please sign in to comment.
You can’t perform that action at this time.