public function get_children_like_test()
 {
     $album1 = test::random_album();
     $photo1 = test::random_photo($album1);
     $photo2 = test::random_photo_unsaved($album1);
     $photo2->name = "foo.jpg";
     $photo2->save();
     $album1->reload();
     $request->url = rest::url("item", $album1);
     $request->params->name = "foo";
     $this->assert_equal_array(array("url" => rest::url("item", $album1), "entity" => $album1->as_array(), "members" => array(rest::url("item", $photo2)), "relationships" => array("tags" => array("url" => rest::url("item_tags", $album1), "members" => array()))), item_rest::get($request));
 }
Ejemplo n.º 2
0
 public function generate_album_cover_from_png_test()
 {
     $input_file = MODPATH . "gallery/tests/test.jpg";
     $output_file = TMPPATH . test::random_name() . ".png";
     gallery_graphics::resize($input_file, $output_file, null, null);
     $album = test::random_album();
     $photo = test::random_photo_unsaved($album);
     $photo->set_data_file($output_file);
     $photo->name = "album_cover_from_png.png";
     $photo->save();
     $album->reload();
     // Check that the image was correctly resized and converted to jpg
     $this->assert_equal(array(200, 150, "image/jpeg", "jpg"), photo::get_file_metadata($album->thumb_path()));
     // Check that the items table got updated
     $this->assert_equal(array(200, 150), array($album->thumb_width, $album->thumb_height));
     // Check that the image is not marked dirty
     $this->assert_equal(0, $album->thumb_dirty);
 }
Ejemplo n.º 3
0
 public function illegal_extension_test()
 {
     foreach (array("test.php", "test.PHP", "test.php5", "test.php4", "test.pl") as $name) {
         try {
             $photo = test::random_photo_unsaved(item::root());
             $photo->name = $name;
             $photo->save();
         } catch (ORM_Validation_Exception $e) {
             $this->assert_equal(array("name" => "illegal_data_file_extension"), $e->validation->errors());
             continue;
         }
         $this->assert_true(false, "Shouldn't get here");
     }
 }
Ejemplo n.º 4
0
 public function find_by_relative_url_test()
 {
     $level1 = test::random_album();
     $level2 = test::random_album($level1);
     $level3 = test::random_photo_unsaved($level2);
     $level3->slug = "same";
     $level3->save()->reload();
     $level2b = test::random_album($level1);
     $level3b = test::random_photo_unsaved($level2b);
     $level3b->slug = "same";
     $level3b->save()->reload();
     // Item in album
     $this->assert_same($level3->id, item::find_by_relative_url("{$level1->slug}/{$level2->slug}/{$level3->slug}")->id);
     // Album, ends without a slash
     $this->assert_same($level2->id, item::find_by_relative_url("{$level1->slug}/{$level2->slug}")->id);
     // Return root if "" is passed
     $this->assert_same(item::root()->id, item::find_by_relative_url("")->id);
     // Verify that we don't get confused by the part slugs, using the fallback code.
     db::build()->update("items")->set(array("relative_url_cache" => null))->where("id", "IN", array($level3->id, $level3b->id))->execute();
     $this->assert_same($level3->id, item::find_by_relative_url("{$level1->slug}/{$level2->slug}/{$level3->slug}")->id);
     $this->assert_same($level3b->id, item::find_by_relative_url("{$level1->slug}/{$level2b->slug}/{$level3b->slug}")->id);
     // Verify that we don't get false positives
     $this->assert_false(item::find_by_relative_url("foo/bar/baz")->loaded());
     // Verify that the fallback code works
     $this->assert_same($level3b->id, item::find_by_relative_url("{$level1->slug}/{$level2b->slug}/{$level3b->slug}")->id);
 }
Ejemplo n.º 5
0
 static function random_photo($parent = null)
 {
     return test::random_photo_unsaved($parent)->save()->reload();
 }
Ejemplo n.º 6
0
 public function exif_extract_test()
 {
     $photo = test::random_photo_unsaved()->set_data_file(MODPATH . "exif/tests/data/image.jpg")->save();
     $expected = array(array("caption" => "Camera Maker", "value" => "Pentax Corporation"), array("caption" => "Camera Model", "value" => "PENTAX K10D"), array("caption" => "Aperture", "value" => "f/2.8"), array("caption" => "Color Space", "value" => "Uncalibrated"), array("caption" => "Exposure Value", "value" => "4294.67 EV"), array("caption" => "Exposure Program", "value" => "Program"), array("caption" => "Exposure Time", "value" => "1/60 sec"), array("caption" => "Flash", "value" => "No Flash"), array("caption" => "Focal Length", "value" => "50 mm"), array("caption" => "ISO", "value" => "6553700"), array("caption" => "Metering Mode", "value" => "Multi-Segment"), array("caption" => "Date/Time", "value" => "2008:03:17 17:41:25"), array("caption" => "Copyright", "value" => "(C) 2008 -  T. Almdal"), array("caption" => "Orientation", "value" => "1: Normal (0 deg)"), array("caption" => "Resolution Unit", "value" => "Inch"), array("caption" => "X Resolution", "value" => "240 dots per ResolutionUnit"), array("caption" => "Y Resolution", "value" => "240 dots per ResolutionUnit"), array("caption" => "Brightness Value", "value" => "0"), array("caption" => "Scene Type", "value" => "0"), array("caption" => "Subject Distance", "value" => "0"));
     $this->assert_equal($expected, exif::get($photo));
 }
Ejemplo n.º 7
0
 public function legal_extension_that_doesnt_match_gets_fixed_test()
 {
     foreach (array("test.png", "test.mp4", "test.GIF") as $name) {
         $photo = test::random_photo_unsaved(item::root());
         $photo->name = $name;
         $photo->save();
         // Should get renamed with the correct jpg extension of the data file.
         $this->assert_equal("jpg", pathinfo($photo->name, PATHINFO_EXTENSION));
     }
 }
Ejemplo n.º 8
0
 public function move_photo_fails_conflicting_target_test()
 {
     $photo1 = test::random_photo();
     $album = test::random_album();
     $photo2 = test::random_photo_unsaved($album);
     $photo2->name = $photo1->name;
     $photo2->save();
     // $photo1 and $photo2 have the same name, so if we move $photo1 into the root they should
     // conflict.
     try {
         $photo2->parent_id = item::root()->id;
         $photo2->save();
     } catch (Exception $e) {
         // pass
         $this->assert_equal(array("name" => "conflict", "slug" => "conflict"), $e->validation->errors());
         return;
     }
     $this->assert_true(false, "Shouldn't get here");
 }
Ejemplo n.º 9
0
 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);
 }