Commit Graph
419 Commits
Author SHA1 Message Date
shadlaws cf07742595 #1968 - Improve album cover generation/removal/etc.
- Added stanza to Item_Model::save that handles when cover id is null.
- Added logic to graphics::generate to copy/convert album cover thumbs from their item thumbs to ensure they're always jpg, and eliminate the possibility that we copy/convert a dirty thumb.
- Redirected other places in code where we want to do one of the above two things to use these two functions instead (gallery_event::item_updated_data_file, item::make_album_cover, item::remove_album_cover).
- Improved validation in Item_Model so only albums can have covers and all covers must be non-albums.
- Added unit tests to Graphics_Helper_Test.
2013-01-30 01:07:36 +01:00
shadlaws 536bdaa4db #1967 - Improve how graphics::generate handles missing/bad images.
- Made missing_photo match the image format (jpg, png, etc.).
- Swapped missing_photo.png for missing_photo.jpg since it's likely to require less conversion to match.
- Improved error messages to user when things go wrong.
- Ensured that missing image placeholders are always copied when there's an error.
- Ensured we don't mistake no file output for a correct file output (delete target before attempt).
- Restructured graphics::generate a bit to work better with above changes.
- Added unit tests for graphics::generate.
2013-01-29 18:35:10 +01:00
shadlaws 5fca371a61 #1945 - Extend legal_file helper functions.
- Added get_types_by_extension function, which is a merged version of get...types_by_extension functions (similar to get_extensions).
- Added optional extension argument to get...extensions functions similar to get...types_by_extension functions.
- Added unit tests.  Now, every legal_file function has one.
- Restructured helper file to include caches.
- Added array_unique to get...types (derived from get...types_by_extension, which can be many-to-one).
- Edited server_add, uploader, and item model to use new functionality.
2013-01-28 23:31:18 +01:00
shadlaws 1313a02bf4 #1971 - Make resequence_child_weights_test unit test more reliable.
- Set the sort_column of the parent album to id, which has no possibility of being identical between the two photos.
- Now, the reweighting will reverse the order even if they were created during the same second.
2013-01-28 14:47:26 +01:00
shadlaws cc2aed656c #1946, 1947 - Make altered names/slugs more user-friendly, make conflict-finding code check filenames with no extensions
- Reduced from four places that alter names/slugs to two (one to populate empty slugs, one to handle conflicting names/slugs).
- For empty slugs, fill with generic human-readable name (e.g. "photo") instead of random value.
- For conflicting names/slugs, add suffix that's sequential (e.g. "-01"), only using random after 99 conflicts.
- Made conflict-finding code check filenames with no extensions.
- Renamed _randomize_name_or_slug_on_conflict to _check_and_fix_conflicts.
- Added unit tests.  Also cleaned up existing unit tests to reflect new logic and removed a redundant test.
- Added installer logic to correct existing items now considered in conflict.
- Revised gallery_task to look for duplicate names based on new criteria.
2013-01-26 08:38:31 +01:00
Bharat Mediratta 96f4a5ea85 Merge pull request #103 from shadlaws/fix_1965
#1965 - Improve sanity checks and copy/convert/process logic for rotate and resize
2013-01-25 15:26:27 -08:00
shadlaws 212944e1ea #1951 - Make metadata generation more flexible (photo and movie helpers).
- added photo_get_file_metadata and movie_get_file_metadata events
- modified photo::get_file_metadata and movie::get_file_metadata to use them
- ensure that non-readable files throw exceptions
- redirected other photo metadata calls in core to photo::get_file_metadata (the helper function already exists, but in many places getimagesize is still called directly)
- added some unit tests (neither of the functions above had one)
2013-01-26 00:04:55 +01:00
shadlaws c2d1c2407f #1965 - Improve sanity checks and copy/convert/process logic for rotate and resize.
- resize: ensured that resize is skipped *only* if the metadata is valid or the options are well-defined and would upscale. Then, if resize is skipped, check to see if it still needs to be converted. Previous conditions would allow a small PNG to get copied to a JPG, and would allow a corrupted JPG to be copied to the output.
- rotate: add checks for empty file or empty options.
- use get_file_metadata instead of direct getimagesize call.
- add unit tests for rotate and resize, including some for corrupted input files and missing options.
2013-01-25 23:47:08 +01:00
shadlaws 48bd19808c #1956 - Escape LIKE queries (for _ and %).
In MySQL queries, _ and % characters are treated as wildcards (similar to ? and *, respectively).
- Added escape_for_like function to MY_Database.php
- Added unit test to Database_Test
- Corrected the five unescaped instances in the code using this function.
2013-01-25 08:47:29 +01:00
Bharat Mediratta 6830ac4542 Merge pull request #99 from shadlaws/fix_1955
#1955 - Make unit test photos unique.
2013-01-24 12:46:26 -08:00
shadlaws 126727b4f2 #1955 - Make unit test photos unique.
- Added test::random_unique_photo and test::random_unique_photo_unsaved to uniquify test photos.
- Uniquified the black dot of test.jpg by coloring it with the six-digit hex code already used to name the random photos (e.g. "name_a48801.jpg").
- Modified four tests in Item_Model_Test that check photo file contents to use new functions to guarantee uniqueness.
2013-01-24 15:56:13 +01:00
shadlaws 031dd3bd6f #1960 - Add unit test to look for extra spaces at end of line
- Added no_extra_spaces_at_end_of_line_test to File_Structure_Test.
- Updated Gallery_Filters to exclude testing code that isn't ours.
- Removed existing extra spaces.  New test now passes.
2013-01-24 12:03:05 +01:00
Bharat Mediratta aa8fffcd8f Extract reweighting logic out of Organize_Controller into
item::reweight_all_children as an API and write a test for it.  Work
in progress on #1914.
2013-01-23 21:33:19 -05:00
Bharat Mediratta 34198e71d3 Add a cache buster to all data_rest urls, add caching headers to all
data_rest responses, and check cache validity.  Fixes #1909.
2013-01-23 20:50:54 -05:00
Bharat Mediratta cc926cb9e1 After finding a test in Item_Model_Test that didn't end in the string "_test" and
fixing it in 9ba9f39531 I decided to write a test to make
sure that we don't have any other overlooked tests.  We don't.
2013-01-23 18:58:37 -05:00
Bharat Mediratta bc5dbd812a Fix comment typo. 2013-01-23 18:56:30 -05:00
Bharat Mediratta e6783b7aa7 Update golden files after 80d6a895ed 2013-01-23 18:28:28 -05:00
Bharat Mediratta 9ba9f39531 Add a "can_add" permission bit similar to the "can_edit" bit to the RESTful array
representation of Item_Model.  Fixes #1903.
2013-01-23 18:24:31 -05:00
Bharat Mediratta d45a737779 Update copyright to 2013. Fixes #1953. 2013-01-21 01:22:01 -05:00
Bharat Mediratta 61eebe13c9 Merge pull request #95 from shadlaws/fix_1950
#1950 - Replace bogus file overwrites from item model unit test.
2013-01-20 22:06:12 -08:00
Bharat Mediratta 8dc34dade8 Add unit tests for data_rest. While I'm in there, get rid of the
clause that returns nothing when the album has no album cover - we'll
fail before that if the album's thumbnail is missing, and if it's not
missing then we'll have something to serve even if it's out of date.
2013-01-21 00:52:52 -05:00
Bharat Mediratta f1d2a8e871 Add a long overdue test for File_Proxy_Controller that tests all the various
edge case behaviors.  It doesn't cover the various headers, but it does cover
the permission based code paths.
2013-01-20 23:54:01 -05:00
shadlaws 14b02a5b12 #1950 - Replace bogus file overwrites from item model unit test.
- modified rename_photo_test, rename_album_test, move_album_test, move_photo_test
- unit tests still test file system integrity and pass
2013-01-20 10:01:41 +01:00
Bharat Mediratta f215a417f1 Merge pull request #88 from shadlaws/fix_1941
#1941, 1948 - Fix possible warnings in movie and graphics helpers, add functions to convert between seconds and hh:mm:ss.dd (and their unit tests).
2013-01-19 21:41:45 -08:00
Bharat Mediratta a06abe32b0 Simplify get_photo_types_by_extension_test and get_movie_types_by_extension_test. 2013-01-20 00:39:58 -05:00
Bharat Mediratta 35bb5c4a1c Merge pull request #93 from shadlaws/fix_1944
#1944 - Fix possible warnings in legal_file::get_photo_types_by_extension and legal_file::get_movie_types_by_extension.
2013-01-19 21:34:39 -08:00
Bharat Mediratta 3a71813f35 Change the logic for finding controllers to use glob() but drop anything
that we can find is git-ignore'd.
2013-01-20 00:24:08 -05:00
shadlaws ea8219e1d4 #1941, 1948 - Fix possible warnings in movie and graphics helpers, add functions to convert between seconds and hh:mm:ss.dd.
Also add unit tests for new movie helper functions.
2013-01-19 00:59:55 +01:00
shadlaws e2a2a5ce81 #1944 - Fix possible warnings in legal_file::get_photo_types_by_extension and legal_file::get_movie_types_by_extension.
Added unit tests for these two functions, too.
2013-01-19 00:52:13 +01:00
shadlaws 3a9009492e #1943 - Make legal_file::change_extension more robust.
Previously would fail with dots in the directory but no extension.  Added unit tests to verify the new change works.
2013-01-18 20:06:05 +01:00
Bharat Mediratta 61724f78da Update golden files. 2013-01-17 15:22:50 -05:00
Bharat Mediratta d04080c7be Follow-on to 94b26e506c - make the new legal_file
functions more robust when passed an unknown extension.  Fixes Item_Model_Test.
2013-01-17 15:05:46 -05:00
Bharat Mediratta 6d9d6a2e5d Allow albums to have two (or more) dots in the name. Fixes #1897. 2012-07-21 15:01:31 -07:00
Bharat Mediratta 8e74750dc2 Checkpoint XSS golden file 2012-06-11 13:54:33 -07:00
Bharat Mediratta 37a0e9a710 Follow-on to 3caf3cc323 for #1866 - harden one
more place and update the test.
2012-06-11 13:47:00 -07:00
Bharat Mediratta 9e2ea2ffed Smash multiple extensions down into a single one when accepting file
uploads.  Fixes #1872.
2012-05-17 20:25:27 -07:00
Bharat Mediratta ffbaa7bf82 Follow on for #1845 - handle paths with dots in them properly. 2012-05-13 21:09:59 -07:00
Bharat Mediratta ef4dbd18af Fix extension-swapping code for files that have extensions that are
not 3 characters long.  Fixes #1845.
2012-05-05 19:34:01 -07:00
Bharat Mediratta 801c9a98e4 Fix #1846. 2012-05-05 18:52:44 -07:00
Bharat Mediratta daea22c6b3 Exclude modules/gallery/vendor/joomla from some structure tests 2012-04-01 14:07:50 -07:00
Bharat Mediratta 7ba0b1b75c Restrict valid urls to having a http:// or https:// prefix. Fixes #1830. 2012-04-01 11:36:16 -07:00
Bharat Mediratta bf2bb3e1ea Update copyright to 2012. #1822 2012-02-27 09:48:23 -08:00
Bharat Mediratta 6d530991f2 Updated for #1764 and #1790 2012-02-27 09:19:43 -08:00
Bharat Mediratta da523de777 Simplification of 59b04b897b for #1764:
- Breadcrumb::build_from_item becomes Breadcrumb::array_from_item_parents
- Eliminate Breadcrumb::$id -- it's no longer necessary
- Fold Breadcrumb::generate_show_query_strings into Breadcrumb::array_from_item_parents
- Create Breadcrumb::set_first() and Breadcrumb::set_last()
- Breadcrumb::build_from_list goes away, we just use arrays for this
- Change Search_Controller and Tag_Controller to just create an array
  of Breadcrumb instances with the first/last marked appropriately
- Breadcrumb_Test loses a bunch of complexity.
2011-08-08 21:29:19 -07:00
Tim Almdal dd0b622ae9 Initial commit of a patch for Ticket #1764. as discussed here: https://github.com/gallery/gallery3/pull/58/files#r72949.
Create a Breadcrumb library which has two static methods for_item (which takes a an item and builds the entire
breadcrumb for the item) or build (which takes a variable number of Breadcrumb elements and creates a breadcrumb
based on the specified elements).

Used tag->url() to build the tag album url. Escaped the query string for the search. Tightened up the breadcrumb code
 in page.html.php.

When adding the show query parameter, we can't blindly concatenate using the ? separator.  We have to check that we
use a & if a query parameter already exists.
2011-08-07 13:41:47 -07:00
Bharat Mediratta ce0b9bcc14 Update golden file. 2011-07-24 08:32:14 -07:00
Chad Parry 0672c8f83f Polishing the rawphoto changes, including adding some tests.
Squashed commit of the following:

commit 945316a8c220b12adb687c896bcc5e86f99f46a4
Author: Chad Parry <github@chad.parry.org>
Date:   Thu Jul 21 01:11:13 2011 -0600

    Add a test for the sunny-day scenario where a rule changes a data file's MIME type.

commit 4ee1ee000c8f4d8ebaae66f637bc71080486fd73
Author: Chad Parry <github@chad.parry.org>
Date:   Thu Jul 21 00:49:47 2011 -0600

    Ensure that a third-party cannot swap out a legitimate photo with an unsafe file type.

commit 7dd0105bfc59c150e5640e693778f51bbaa44eab
Author: Chad Parry <github@chad.parry.org>
Date:   Thu Jul 21 00:48:19 2011 -0600

    Update the MIME type and other meta-data when a new data file is provided.

commit 5a8844c7947b21cf658f22cc61f20ffa9e8f07f2
Author: Chad Parry <github@chad.parry.org>
Date:   Thu Jul 21 00:30:01 2011 -0600

    Remove a unit test that no longer applies. Replacement data files are allowed to have different MIME types.

commit 0de9c6283ce4f5773cad8e92b6785d6a1f7b5e46
Author: Chad Parry <github@chad.parry.org>
Date:   Thu Jul 21 00:27:45 2011 -0600

    If one rule fails, then abort processing, rather than trying to proceed to subsequent rules.

commit 41d379c2b777ae7b3a11f528971228e234f8976f
Author: Chad Parry <github@chad.parry.org>
Date:   Thu Jul 21 00:10:10 2011 -0600

    Replace an overly-complicated regular expression with a simple in_array, at Bharat's suggestion.

commit 1b3f7111d4c2607baaa2da0aab3b501f2d9a1426
Merge: 8f7904a 403f64b
Author: Chad Parry <github@chad.parry.org>
Date:   Wed Jul 20 21:02:56 2011 -0600

    Merge branch 'master' into rawphoto

commit 8f7904ab62c71a7e4ee68762f936030b4dcb4ea1
Merge: e950573 771de0a
Author: Chad Parry <github@chad.parry.org>
Date:   Sat Jun 25 14:12:39 2011 -0600

    Merge branches 'master' and 'rawphoto' into rawphoto

commit e95057337996351e49915d9f85d007d50103a4be
Author: Chad Parry <github@chad.parry.org>
Date:   Wed Jun 15 20:24:18 2011 -0600

    Merge branches 'rawphoto-squash' and 'rawphoto' into rawphoto
2011-07-21 01:12:26 -06:00
Bharat Mediratta 46666837f3 Checkpoint 2011-05-24 20:33:36 -07:00
Bharat Mediratta c71bb54185 Reassign the copyright to the standard custodian (Bharat). #1732. 2011-05-24 20:32:43 -07:00
Chad Parry d2331bf434 Simplified the temp_filename implementation and removed the mocks. 2011-05-04 17:48:25 -06:00