summaryrefslogtreecommitdiff
path: root/modules/gallery/tests/Item_Helper_Test.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/gallery/tests/Item_Helper_Test.php')
-rw-r--r--modules/gallery/tests/Item_Helper_Test.php65
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/gallery/tests/Item_Helper_Test.php b/modules/gallery/tests/Item_Helper_Test.php
index cdbdd324..50587702 100644
--- a/modules/gallery/tests/Item_Helper_Test.php
+++ b/modules/gallery/tests/Item_Helper_Test.php
@@ -19,6 +19,10 @@
*/
class Item_Helper_Test extends Gallery_Unit_Test_Case {
+ public function setup() {
+ identity::set_active_user(identity::admin_user());
+ }
+
public function viewable_test() {
$album = test::random_album();
$item = test::random_photo($album);
@@ -42,4 +46,65 @@ class Item_Helper_Test extends Gallery_Unit_Test_Case {
$this->assert_equal("foo", item::convert_filename_to_slug("{[foo]}"));
$this->assert_equal("foo-bar", item::convert_filename_to_slug("{[foo!@#!$@#^$@($!(@bar]}"));
}
+
+ public function move_test() {
+ $photo = test::random_photo(item::root());
+ $dst_album = test::random_album();
+
+ item::move($photo, $dst_album);
+ $this->assert_same($dst_album->id, $photo->parent_id);
+ }
+
+
+ public function move_updates_album_covers_test() {
+ // 2 photos in the source album
+ $src_album = test::random_album();
+ $photo1 = test::random_photo($src_album);
+ $photo2 = test::random_photo($src_album);
+ $src_album->reload();
+
+ // destination album
+ $dst_album = test::random_album();
+
+ item::move($photo1, $dst_album);
+
+ // Refresh cached copies
+ $src_album->reload();
+ $dst_album->reload();
+
+ // photo 2 becomes the album cover for the source album and photo 1
+ // becomes the album cover for the destination
+ $this->assert_same($photo1->id, $dst_album->album_cover_item_id);
+ $this->assert_same($photo2->id, $src_album->album_cover_item_id);
+ }
+
+ public function move_leaves_empty_album_with_no_album_cover_test() {
+ $src_album = test::random_album();
+ $photo = test::random_photo($src_album);
+
+ item::move($photo, item::root());
+
+ $src_album->reload();
+ $this->assert_false($src_album->album_cover_item_id);
+ }
+
+ public function move_conflicts_result_in_a_rename_test() {
+ $rand = rand();
+ $photo1 = test::random_photo_unsaved(item::root());
+ $photo1->name = "{$rand}.jpg";
+ $photo1->slug = (string)$rand;
+ $photo1->save();
+
+ $src_album = test::random_album();
+ $photo2 = test::random_photo_unsaved($src_album);
+ $photo2->name = "{$rand}.jpg";
+ $photo2->slug = (string)$rand;
+ $photo2->save();
+
+ item::move($photo2, item::root());
+
+ $this->assert_same(item::root()->id, $photo2->parent_id);
+ $this->assert_not_same("{$rand}.jpg", $photo2->name);
+ $this->assert_not_same($rand, $photo2->slug);
+ }
}