From d5c97082d6dd3e6596bce9e39c93992f52e01f41 Mon Sep 17 00:00:00 2001 From: Romain Neutron Date: Tue, 2 Apr 2013 15:46:15 +0200 Subject: [PATCH] Move URL etag from permalinks to media subdef urls --- lib/classes/media/Permalink/Adapter.class.php | 5 ++--- lib/classes/media/subdef.class.php | 8 ++++++++ tests/media/Permalink/media_Permalink_AdapterTest.php | 6 ++---- tests/media/media_subdefTest.php | 9 +++++++++ 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/lib/classes/media/Permalink/Adapter.class.php b/lib/classes/media/Permalink/Adapter.class.php index 193f0135c3..418a1d62ee 100644 --- a/lib/classes/media/Permalink/Adapter.class.php +++ b/lib/classes/media/Permalink/Adapter.class.php @@ -146,15 +146,14 @@ class media_Permalink_Adapter implements media_Permalink_Interface, cache_cachea { $registry = registry::get_instance(); - return sprintf('%spermalink/v1/%d/%d/%s/%s.%s?token=%s&etag=%s', + return sprintf('%spermalink/v1/%d/%d/%s/%s.%s?token=%s', $registry->get('GV_ServerName'), $this->media_subdef->get_sbas_id(), $this->media_subdef->get_record_id(), $this->media_subdef->get_name(), $this->get_label(), pathinfo($this->media_subdef->get_file(), PATHINFO_EXTENSION), - $this->get_token(), - $this->media_subdef->getEtag() + $this->get_token() ); } diff --git a/lib/classes/media/subdef.class.php b/lib/classes/media/subdef.class.php index ad85fc5301..29043dbdf9 100644 --- a/lib/classes/media/subdef.class.php +++ b/lib/classes/media/subdef.class.php @@ -364,6 +364,14 @@ class media_subdef extends media_abstract implements cache_cacheableInterface return $this; } + public function get_url() + { + $url = parent::get_url(); + $etag = $this->getEtag(); + + return $url . ($etag ? '?etag=' . $etag : ''); + } + /** * * @return int diff --git a/tests/media/Permalink/media_Permalink_AdapterTest.php b/tests/media/Permalink/media_Permalink_AdapterTest.php index 7d5d5ac6f9..5de2cf5f0d 100644 --- a/tests/media/Permalink/media_Permalink_AdapterTest.php +++ b/tests/media/Permalink/media_Permalink_AdapterTest.php @@ -57,8 +57,7 @@ class media_Permalink_AdapterTest extends PhraseanetPHPUnitAbstract . static::$records['record_1']->get_record_id() . '/document/' . static::$object->get_label() . '.' . pathinfo(static::$records['record_1']->get_subdef('document')->get_file(), PATHINFO_EXTENSION) - . '?token=' . static::$object->get_token() - . '&etag=' . static::$subdef->getEtag(); + . '?token=' . static::$object->get_token(); $this->assertEquals($url, static::$object->get_url($registry)); } @@ -75,8 +74,7 @@ class media_Permalink_AdapterTest extends PhraseanetPHPUnitAbstract . static::$records['record_1']->get_record_id() . '/preview/' . $previewPermalink->get_label() . '.' . pathinfo(static::$records['record_1']->get_subdef('preview')->get_file(), PATHINFO_EXTENSION) - . '?token=' . $previewPermalink->get_token() - . '&etag=' . $subdef->getEtag(); + . '?token=' . $previewPermalink->get_token(); $this->assertEquals($url, $previewPermalink->get_url($registry)); } diff --git a/tests/media/media_subdefTest.php b/tests/media/media_subdefTest.php index ac75a59e56..638816fedb 100644 --- a/tests/media/media_subdefTest.php +++ b/tests/media/media_subdefTest.php @@ -90,6 +90,15 @@ class media_subdefTest extends \PhraseanetPHPUnitAbstract $this->assertEquals(self::$recordonbleu->get_sbas_id(), self::$objectPresent->get_record()->get_sbas_id()); } + /** + * @covers media_subdef::get_url + */ + public function testGet_url() + { + $this->assertEquals('/skins/icons/substitution/image_jpeg.png', self::$objectNotPresent->get_url()); + $this->assertRegExp('#\/datafiles\/' . self::$objectPresent->get_sbas_id() . '\/' . self::$objectPresent->get_record_id() . '\/preview\/\?etag=[0-9a-f]{32}#', self::$objectPresent->get_url()); + } + /** * @covers media_subdef::get_permalink */