diff options
author | Bharat Mediratta <bharat@menalto.com> | 2013-01-17 15:05:46 -0500 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2013-01-17 15:05:46 -0500 |
commit | d04080c7be7c8a06bd81a9747943600812339f40 (patch) | |
tree | b1147aaafda9938277cd859ae8d78e6e55255517 | |
parent | 9d684b7b83f0aa026e9d6f06228294f179a3bcaa (diff) |
Follow-on to 94b26e506c339f50b8d094057bffc1877a79afa9 - make the new legal_file
functions more robust when passed an unknown extension. Fixes Item_Model_Test.
-rw-r--r-- | modules/gallery/helpers/legal_file.php | 14 | ||||
-rw-r--r-- | modules/gallery/tests/Item_Model_Test.php | 2 | ||||
-rw-r--r-- | modules/gallery_unit_test/helpers/test.php | 15 |
3 files changed, 27 insertions, 4 deletions
diff --git a/modules/gallery/helpers/legal_file.php b/modules/gallery/helpers/legal_file.php index b3622764..e6f4cb54 100644 --- a/modules/gallery/helpers/legal_file.php +++ b/modules/gallery/helpers/legal_file.php @@ -19,7 +19,7 @@ */ class legal_file_Core { /** - * Create a default list of allowed photo MIME types paired with their extensions and then let + * Create a default list of allowed photo MIME types paired with their extensions and then let * modules modify it. This is an ordered map, mapping extensions to their MIME types. * Extensions cannot be duplicated, but MIMEs can (e.g. jpeg and jpg both map to image/jpeg). * @@ -32,7 +32,11 @@ class legal_file_Core { module::event("photo_types_by_extension", $types_by_extension_wrapper); if ($extension) { // return matching MIME type - return $types_by_extension_wrapper->types_by_extension[$extension]; + if (isset($types_by_extension_wrapper->types_by_extension[$extension])) { + return $types_by_extension_wrapper->types_by_extension[$extension]; + } else { + return null; + } } else { // return complete array return $types_by_extension_wrapper->types_by_extension; @@ -53,7 +57,11 @@ class legal_file_Core { module::event("movie_types_by_extension", $types_by_extension_wrapper); if ($extension) { // return matching MIME type - return $types_by_extension_wrapper->types_by_extension[$extension]; + if (isset($types_by_extension_wrapper->types_by_extension[$extension])) { + return $types_by_extension_wrapper->types_by_extension[$extension]; + } else { + return null; + } } else { // return complete array return $types_by_extension_wrapper->types_by_extension; diff --git a/modules/gallery/tests/Item_Model_Test.php b/modules/gallery/tests/Item_Model_Test.php index 8ae8a5dd..a3929e62 100644 --- a/modules/gallery/tests/Item_Model_Test.php +++ b/modules/gallery/tests/Item_Model_Test.php @@ -356,7 +356,7 @@ class Item_Model_Test extends Gallery_Unit_Test_Case { public function movie_files_must_have_an_extension_test() { try { - $movie = test::random_photo_unsaved(); + $movie = test::random_movie_unsaved(); $movie->type = "movie"; $movie->mime_type = "video/x-flv"; $movie->name = "no_extension"; diff --git a/modules/gallery_unit_test/helpers/test.php b/modules/gallery_unit_test/helpers/test.php index 7fba0eda..8a2044a9 100644 --- a/modules/gallery_unit_test/helpers/test.php +++ b/modules/gallery_unit_test/helpers/test.php @@ -33,6 +33,21 @@ class test_Core { return test::random_album_unsaved($parent)->save()->reload(); } + static function random_movie_unsaved($parent=null) { + $rand = test::random_string(6); + $photo = ORM::factory("item"); + $photo->type = "movie"; + $photo->parent_id = $parent ? $parent->id : 1; + $photo->set_data_file(MODPATH . "gallery/tests/test.flv"); + $photo->name = "name_$rand.flv"; + $photo->title = "title_$rand"; + return $photo; + } + + static function random_movie($parent=null) { + return test::random_movie_unsaved($parent)->save()->reload(); + } + static function random_photo_unsaved($parent=null) { $rand = test::random_string(6); $photo = ORM::factory("item"); |