3
3
* $RCSfile: ItemMoveSingleControllerTest.class,v $
5
5
* Gallery - a web based photo album viewer and editor
6
* Copyright (C) 2000-2005 Bharat Mediratta
6
* Copyright (C) 2000-2006 Bharat Mediratta
8
8
* This program is free software; you can redistribute it and/or modify
9
9
* it under the terms of the GNU General Public License as published by
20
20
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
23
* @version $Revision: 1.17 $ $Date: 2005/08/23 03:49:33 $
23
* @version $Revision: 1.19 $ $Date: 2006/01/13 03:39:32 $
24
24
* @package GalleryCore
25
25
* @subpackage PHPUnit
26
26
* @author Bharat Mediratta <bharat@menalto.com>
76
76
array('type' => 'float', 'description' => 'foo'),
77
77
array('type' => 'float', 'description' => 'foo'),
78
78
array('type' => 'float', 'description' => 'foo')), 'test-description');
79
if ($ret->isError()) {
80
80
print $ret->getAsHtml();
81
81
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
84
84
list ($ret, $this->_rootAlbum) = $this->_createRandomAlbum($this->_getRootId());
85
if ($ret->isError()) {
86
86
print $ret->getAsHtml();
87
87
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
113
113
$itemId = array_shift($args);
114
114
$thumbSize = array_shift($args);
115
115
$ret = GalleryCoreApi::removeDerivativePreferencesForItem($itemId);
116
if ($ret->isError()) {
117
117
print $ret->getAsHtml();
118
118
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
120
120
$ret = GalleryCoreApi::addDerivativePreference(0, $itemId,
121
121
DERIVATIVE_TYPE_IMAGE_THUMBNAIL, 'thumbnail|' . $thumbSize);
122
if ($ret->isError()) {
123
123
print $ret->getAsHtml();
124
124
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
126
126
foreach ($args as $i => $resizeSize) {
127
127
$ret = GalleryCoreApi::addDerivativePreference($i+1, $itemId,
128
128
DERIVATIVE_TYPE_IMAGE_RESIZE, 'scale|' . $resizeSize);
129
if ($ret->isError()) {
130
130
print $ret->getAsHtml();
131
131
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
183
183
GalleryUtilities::putRequestVariable('itemId', $this->_item->getId());
184
184
GalleryUtilities::putRequestVariable('form[action][move]', 1);
185
GalleryUtilities::putRequestVariable('form[destination]', $this->_destinationAlbum->getId());
185
GalleryUtilities::putRequestVariable('form[destination]',
186
$this->_destinationAlbum->getId());
187
188
$results = $this->handleRequest();
188
189
$this->assertEquals(array('redirect' => array('view' => 'core.ItemAdmin',
299
300
function testMoveItemIntoAlbumWithNoPermissions() {
300
301
GalleryUtilities::putRequestVariable('itemId', $this->_item->getId());
301
302
GalleryUtilities::putRequestVariable('form[action][move]', 1);
302
GalleryUtilities::putRequestVariable('form[destination]', $this->_destinationAlbum->getId());
303
GalleryUtilities::putRequestVariable('form[destination]',
304
$this->_destinationAlbum->getId());
304
306
$ret = GalleryCoreApi::removeItemPermissions($this->_destinationAlbum->getId());
305
if ($ret->isError()) {
306
308
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
316
318
function testMoveItemWithNoDeletePermissions() {
317
319
GalleryUtilities::putRequestVariable('itemId', $this->_item->getId());
318
320
GalleryUtilities::putRequestVariable('form[action][move]', 1);
319
GalleryUtilities::putRequestVariable('form[destination]', $this->_destinationAlbum->getId());
321
GalleryUtilities::putRequestVariable('form[destination]',
322
$this->_destinationAlbum->getId());
321
324
$ret = GalleryCoreApi::removeItemPermissions($this->_item->getId());
322
if ($ret->isError()) {
323
326
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
334
337
/* Create derivatives according to prefs of original album */
335
338
$ret = GalleryCoreApi::addExistingItemToAlbum(
336
339
$this->_item, $this->_rootAlbum->getId(), true);
337
if ($ret->isError()) {
338
341
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
341
344
/* Add crop operation */
342
345
list ($ret, $thumbnails) =
343
346
GalleryCoreApi::fetchThumbnailsByItemIds(array($this->_item->getId()));
344
if ($ret->isError()) {
345
348
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
347
350
$thumb = $thumbnails[$this->_item->getId()];
348
351
list ($ret, $lockId) = GalleryCoreApi::acquireWriteLock($thumb->getId());
349
if ($ret->isError()) {
350
353
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
352
355
$thumb->setDerivativeOperations('crop|0,0,50,50;' . $thumb->getDerivativeOperations());
353
356
$ret = $thumb->save();
354
if ($ret->isError()) {
355
358
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
357
360
$ret = GalleryCoreApi::releaseLocks($lockId);
358
if ($ret->isError()) {
359
362
return $this->failWithStatus($ret->wrap(__FILE__, __LINE__));
362
365
/* Verify derivatives were created ok */
363
366
$sizes = $this->_getDerivativeSizes($this->_item->getId());
364
367
$this->assertEquals(array(
365
array('type' => DERIVATIVE_TYPE_IMAGE_THUMBNAIL, 'op' => 'crop|0,0,50,50;thumbnail|150'),
368
array('type' => DERIVATIVE_TYPE_IMAGE_THUMBNAIL,
369
'op' => 'crop|0,0,50,50;thumbnail|150'),
366
370
array('type' => DERIVATIVE_TYPE_IMAGE_RESIZE, 'op' => 'scale|300'),
367
371
array('type' => DERIVATIVE_TYPE_IMAGE_RESIZE, 'op' => 'scale|400')),
368
372
$sizes, 'Initial derivative sizes');
370
374
GalleryUtilities::putRequestVariable('itemId', $this->_item->getId());
371
375
GalleryUtilities::putRequestVariable('form[action][move]', 1);
372
GalleryUtilities::putRequestVariable('form[destination]', $this->_destinationAlbum->getId());
376
GalleryUtilities::putRequestVariable('form[destination]',
377
$this->_destinationAlbum->getId());
374
379
$results = $this->handleRequest();
375
380
$this->assertEquals(array('redirect' => array('view' => 'core.ItemAdmin',
382
387
/* Verify derivatives were recreated with preferences of new parent album */
383
388
$sizes = $this->_getDerivativeSizes($this->_item->getId());
384
389
$this->assertEquals(array(
385
array('type' => DERIVATIVE_TYPE_IMAGE_THUMBNAIL, 'op' => 'crop|0,0,50,50;thumbnail|200'),
390
array('type' => DERIVATIVE_TYPE_IMAGE_THUMBNAIL,
391
'op' => 'crop|0,0,50,50;thumbnail|200'),
386
392
/* Order differs because old 400 kept as-is, and old 300 is reused for 600. */
387
393
array('type' => DERIVATIVE_TYPE_IMAGE_RESIZE, 'op' => 'scale|600'),
388
394
array('type' => DERIVATIVE_TYPE_IMAGE_RESIZE, 'op' => 'scale|400'),