public function move_photo_test() { $album1 = test::random_album(); $photo = test::random_photo($album1); $album2 = test::random_album(); file_put_contents($photo->thumb_path(), "thumb"); file_put_contents($photo->resize_path(), "resize"); file_put_contents($photo->file_path(), "file"); // Now move the photo $photo->parent_id = $album2->id; $photo->save(); // Expected: // * the photo's paths are inside the album2 not album1 // * the photo files are all still intact and accessible $this->assert_true(test::starts_with($photo->file_path(), $album2->file_path())); $this->assert_true(test::starts_with($photo->thumb_path(), dirname($album2->thumb_path()))); $this->assert_true(test::starts_with($photo->resize_path(), dirname($album2->resize_path()))); $this->assert_equal("thumb", file_get_contents($photo->thumb_path())); $this->assert_equal("resize", file_get_contents($photo->resize_path())); $this->assert_equal("file", file_get_contents($photo->file_path())); }