Example #1
0
<?php

$output = get_input('output');
$forward_url = get_input('forward_url');
$forward_reason = (int) get_input('forward_reason', ELGG_HTTP_OK);
$system_message = get_input('system_message');
$error_message = get_input('error_message');
if ($forward_url == '-1') {
    $forward_url = REFERRER;
}
if ($forward_reason == ELGG_HTTP_OK && !$error_message) {
    return elgg_ok_response($output, $system_message, $forward_url, $forward_reason);
} else {
    if ($forward_reason == ELGG_HTTP_BAD_REQUEST || $error_message) {
        return elgg_error_response($error_message, $forward_url, $forward_reason);
    } else {
        if ($forward_reason == ELGG_HTTP_FOUND) {
            return elgg_redirect_response($forward_url);
        }
    }
}
Example #2
0
 public function testCanRespondToAjax2RequestFromRedirectResponseBuilder()
 {
     $this->request = $this->prepareHttpRequest('foo/bar/baz', 'GET', [], 2);
     $this->createService();
     elgg_register_page_handler('foo', function ($segments, $identifier) {
         $this->assertEquals(['bar', 'baz'], $segments);
         $this->assertEquals('foo', $identifier);
         return elgg_redirect_response('foo2/bar2/baz2');
     });
     $this->assertTrue($this->route());
     $response = _elgg_services()->responseFactory->getSentResponse();
     $this->assertInstanceOf(Response::class, $response);
     $this->assertEquals(ELGG_HTTP_OK, $response->getStatusCode());
     $this->assertContains('application/json', $response->headers->get('Content-Type'));
     $output = json_encode(['value' => '', '_elgg_msgs' => (object) [], '_elgg_deps' => []], ELGG_JSON_ENCODING);
     $this->assertEquals($output, $response->getContent());
     // compensate for fact that ResponseFactory::redirect closes a buffer it didn't open
     ob_start();
 }