Move URL etag from permalinks to media subdef urls

This commit is contained in:
Romain Neutron
2013-04-02 15:46:15 +02:00
parent 22919fd8ac
commit d5c97082d6
4 changed files with 21 additions and 7 deletions

View File

@@ -146,15 +146,14 @@ class media_Permalink_Adapter implements media_Permalink_Interface, cache_cachea
{ {
$registry = registry::get_instance(); $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'), $registry->get('GV_ServerName'),
$this->media_subdef->get_sbas_id(), $this->media_subdef->get_sbas_id(),
$this->media_subdef->get_record_id(), $this->media_subdef->get_record_id(),
$this->media_subdef->get_name(), $this->media_subdef->get_name(),
$this->get_label(), $this->get_label(),
pathinfo($this->media_subdef->get_file(), PATHINFO_EXTENSION), pathinfo($this->media_subdef->get_file(), PATHINFO_EXTENSION),
$this->get_token(), $this->get_token()
$this->media_subdef->getEtag()
); );
} }

View File

@@ -364,6 +364,14 @@ class media_subdef extends media_abstract implements cache_cacheableInterface
return $this; return $this;
} }
public function get_url()
{
$url = parent::get_url();
$etag = $this->getEtag();
return $url . ($etag ? '?etag=' . $etag : '');
}
/** /**
* *
* @return int * @return int

View File

@@ -57,8 +57,7 @@ class media_Permalink_AdapterTest extends PhraseanetPHPUnitAbstract
. static::$records['record_1']->get_record_id() . static::$records['record_1']->get_record_id()
. '/document/' . static::$object->get_label() . '/document/' . static::$object->get_label()
. '.' . pathinfo(static::$records['record_1']->get_subdef('document')->get_file(), PATHINFO_EXTENSION) . '.' . pathinfo(static::$records['record_1']->get_subdef('document')->get_file(), PATHINFO_EXTENSION)
. '?token=' . static::$object->get_token() . '?token=' . static::$object->get_token();
. '&etag=' . static::$subdef->getEtag();
$this->assertEquals($url, static::$object->get_url($registry)); $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() . static::$records['record_1']->get_record_id()
. '/preview/' . $previewPermalink->get_label() . '/preview/' . $previewPermalink->get_label()
. '.' . pathinfo(static::$records['record_1']->get_subdef('preview')->get_file(), PATHINFO_EXTENSION) . '.' . pathinfo(static::$records['record_1']->get_subdef('preview')->get_file(), PATHINFO_EXTENSION)
. '?token=' . $previewPermalink->get_token() . '?token=' . $previewPermalink->get_token();
. '&etag=' . $subdef->getEtag();
$this->assertEquals($url, $previewPermalink->get_url($registry)); $this->assertEquals($url, $previewPermalink->get_url($registry));
} }

View File

@@ -90,6 +90,15 @@ class media_subdefTest extends \PhraseanetPHPUnitAbstract
$this->assertEquals(self::$recordonbleu->get_sbas_id(), self::$objectPresent->get_record()->get_sbas_id()); $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 * @covers media_subdef::get_permalink
*/ */