Skip to content
Snippets Groups Projects
Commit 29635d4c authored by Laurent's avatar Laurent
Browse files

hotline #89832 allow thumbnails from adav-assoc to be handled in unimarc fields

parent d4a0f800
Branches
Tags
3 merge requests!3297WIP: Master,!3153Hotline,!3146hotline #89832 allow thumbnails from adav-assoc to be handled in unimarc fields
Pipeline #7175 passed with stage
in 36 minutes and 46 seconds
- ticket #89832 : Autorisation d'affichage des vignettes issues de ADAV précisées en unimarc des notices
\ No newline at end of file
......@@ -19,28 +19,24 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
class ZendAfi_Validate_VignetteUrl extends Zend_Validate_Abstract {
const INVALID_EXTENSION = 'invalidExtension';
const INVALID_URL_FORMAT = 'invalidURLFormat';
protected $_messageTemplates = array(self::INVALID_EXTENSION => "'%value%' n'est pas une extension de type .png, .jpeg, .jpg, .gif.");
protected
$_messageTemplates = [self::INVALID_URL_FORMAT => "'%value%' n'est pas une URL de vignette correspondant aux formats acceptés."],
$_valid_url_patterns = ['.+\.(png|jpg|jpeg|gif)$',
'\/cgi-bin\/koha\/opac-image\.pl\?thumbnail=',
'www\.adav-assoc\.com\/.*\/GetImage\/'
];
public function isValid($value) {
if ($this->_isKohaThumbnail($value))
return true;
$parts = explode('.', $value);
$extension = end($parts);
$this->_setValue($extension);
if (!in_array(strtolower($extension), ['png', 'jpg', 'jpeg', 'gif'])) {
$this->_error(self::INVALID_EXTENSION);
return false;
public function isValid($value) {
foreach($this->_valid_url_patterns as $pattern) {
if (preg_match('/' . $pattern . '/i', $value))
return true;
}
return true;
}
protected function _isKohaThumbnail($value) {
return preg_match('|\/cgi-bin\/koha\/opac-image\.pl\?thumbnail=|', $value);
$this->_error(self::INVALID_URL_FORMAT);
return false;
}
}
?>
\ No newline at end of file
......@@ -76,19 +76,47 @@ class ZendAfi_View_Helper_Notice_VignetteNoThumbnailTest
}
/** @test */
public function withThumbnailZoneAndUrlInUnimarcAndInvalidUrlViewnoticeShouldNotContainsThumbnailButBlank() {
$record = $this->_setupRecordWithThumbnailUrl('https://bloub.org/7364?zork=glub');
public function invalidThumbnailUrls() {
return [
['https://bloub.org/7364?zork=glub'],
['http://boom.org/index.html'],
['http://image-cache.org/34.jpg.2'],
];
}
/**
* @dataProvider invalidThumbnailUrls
* @test
*/
public function withThumbnailZoneAndInvalidUrlInUnimarcViewnoticeShouldNotContainsThumbnailButBlank($url) {
$record = $this->_setupRecordWithThumbnailUrl($url);
$html = $this->_helper->notice_Vignette($record, [], 'view');
$this->assertXPath($html, '//img[contains(@src, "public/admin/images/blank.gif")]', $html);
}
/** @test */
public function withThumbnailZoneAndKohaStyleUrlInUnimarcViewnoticeShouldContainsThumbnail() {
$record = $this->_setupRecordWithThumbnailUrl('https://koha.somewhere.com/cgi-bin/koha/opac-image.pl?thumbnail=1&biblionumber=261990');
public function validThumbnailUrls() {
return [
['https://koha.somewhere.com/cgi-bin/koha/opac-image.pl?thumbnail=1&biblionumber=261990'],
['http://www.adav-assoc.com/4DACTION/GetImage/207155'],
['http://image-cache.org/34.png'],
['http://image-cache.org/34.gif'],
['http://image-cache.org/34.jpeg'],
['http://image-cache.org/34.jPg'],
['http://www.adAv-Assoc.com/4DACTION/GetImage/207155']
];
}
/**
* @dataProvider validThumbnailUrls
* @test
*/
public function withThumbnailZoneAndValidUrlInUnimarcViewnoticeShouldContainsThumbnail($url) {
$record = $this->_setupRecordWithThumbnailUrl($url);
$html = $this->_helper->notice_Vignette($record, [], 'view');
$this->assertXPath($html, '//img[@src="https://koha.somewhere.com/cgi-bin/koha/opac-image.pl?thumbnail=1&biblionumber=261990"]', $html);
$this->assertXPath($html, '//img[@src="' . $url . '"]', $html);
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment