Link header should provide fully qualified URIs

This commit is contained in:
Romain Neutron
2013-07-09 18:30:54 +02:00
parent 5c033caed3
commit 435b4b1644
3 changed files with 12 additions and 4 deletions

View File

@@ -78,7 +78,7 @@ class Permalink extends AbstractDelivery
}
$response = $that->deliverContent($app['request'], $record, $subdef, $watermark, $stamp, $app);
$linkToCaption = $app->path("permalinks_caption", array('sbas_id' => $sbas_id, 'record_id' => $record_id, 'token' => $token));
$linkToCaption = $app->url("permalinks_caption", array('sbas_id' => $sbas_id, 'record_id' => $record_id, 'token' => $token));
$response->headers->set('Link', $linkToCaption);
return $response;
@@ -100,7 +100,7 @@ class Permalink extends AbstractDelivery
$response = $that->deliverContent($app['request'], $record, $subdef, $watermark, $stamp, $app);
$linkToCaption = $app->path("permalinks_caption", array('sbas_id' => $sbas_id, 'record_id' => $record_id, 'token' => $token));
$linkToCaption = $app->url("permalinks_caption", array('sbas_id' => $sbas_id, 'record_id' => $record_id, 'token' => $token));
$response->headers->set('Link', $linkToCaption);
return $response;

View File

@@ -185,7 +185,7 @@ class ApplicationOverviewTest extends \PhraseanetWebTestCaseAuthenticatedAbstrac
$this->assertEquals($value, $response->headers->get($name));
}
$this->assertEquals($response->headers->get("Link"), "/permalink/v1/1/". self::$DI['record_1']->get_record_id()."/caption/?token=".$token);
$this->assertEquals(rtrim(self::$DI['app']['phraseanet.configuration']['main']['servername'], '/') . "/permalink/v1/1/". self::$DI['record_1']->get_record_id()."/caption/?token=".$token, $response->headers->get("Link"));
$this->assertEquals(200, $response->getStatusCode());
}
@@ -217,7 +217,7 @@ class ApplicationOverviewTest extends \PhraseanetWebTestCaseAuthenticatedAbstrac
$this->assertEquals($value, $response->headers->get($name));
}
$this->assertEquals($response->headers->get("Link"), "/permalink/v1/1/". self::$DI['record_1']->get_record_id()."/caption/?token=".$token);
$this->assertEquals(rtrim(self::$DI['app']['phraseanet.configuration']['main']['servername'], '/') . "/permalink/v1/1/". self::$DI['record_1']->get_record_id()."/caption/?token=".$token, $response->headers->get("Link"));
$this->assertEquals(200, $response->getStatusCode());
}

View File

@@ -8,6 +8,7 @@ use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Client;
use Symfony\Component\DomCrawler\Crawler;
use Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface;
use Symfony\Component\Routing\RequestContext;
abstract class PhraseanetPHPUnitAbstract extends WebTestCase
{
@@ -118,6 +119,13 @@ abstract class PhraseanetPHPUnitAbstract extends WebTestCase
return new CsrfTestProvider();
});
$app['url_generator'] = $app->share($app->extend('url_generator', function($generator, $app) {
$host = parse_url($app['phraseanet.configuration']['main']['servername'], PHP_URL_HOST);
$generator->setContext(new RequestContext('', 'GET', $host));
return $generator;
}));
$app['debug'] = true;
$app['EM'] = $app->share($app->extend('EM', function($em) {