Commit graph

54 commits

Author SHA1 Message Date
umherirrender
99159fd750 wfTimestamp should not die on bogus input [Regression]
Followup I68eb9f27

No caller of wfTimestamp can handle the exception, false is always used,
as the method comment says.

See bug 40037 for File related timestamps.
The api result is also not b/c:
<api servedby="mw70">
  <error code="internal_api_error_TimestampException" info="Exception
Caught: MWTimestamp::setTimestamp : Invalid timestamp - te"
xml:space="preserve" />
</api>

Change-Id: I1e8c785941d35678f3d12824bdde0ce245572592
2012-09-14 18:28:22 +02:00
Tyler Anthony Romeo
e738203a8e Added PHP complement for mw.Time.
Figured since a JS Timestamp class was being implemented
it might be appropriate to create a complementary PHP
Timestamp class. Much of code is taken from wfTimestamp().

Note: Another change (I53dcf547) is attempting a related
issue. Not sure how much of scope overlap there is.

Change-Id: I68eb9f27eebe80df757187f634392e1bcba5551f
Signed-off-by: Tyler Romeo <tylerromeo@gmail.com>
2012-08-30 20:44:09 -04:00
jeroendedauw
38c7f444e1 Use __DIR__ instead of dirname( __FILE__ )
We can now do this since we finally switched to PHP 5.3 for MW 1.20 and get rid of the silly dirname(__FILE__) stuff :)

Change-Id: Id9b2c9cd2e678197aa81c78adced5d1d31ff57b1
2012-08-27 21:45:00 +02:00
Catrope
f02ad7b103 Merge "Make the width/height in the SVG metadata box be in the SVG's units" 2012-08-23 20:39:52 +00:00
Brian Wolff
3c286bde96 Make the width/height in the SVG metadata box be in the SVG's units
This was suggested by a user at commons. The width/height in px is really
a MediaWiki thingy needed for rendering the image, from a metadata prespective
its the original units (aka the image should be 10cm, etc) that is
the information associated with the file.

The dimensions in pixels is still specified in the long description
of the image (the subtitle directly under the image).

Note: After gerrit change Ic58efbf2 is merged, this will cause no width or height
to be displayed for svg images with cached metadata, until they
get purged. I think that's perfectly ok as the width is
available elsewhere on the page.

p.s. I added one semi-unrelated code comment in SVGMetadataExtractor.

patchset 2,3: Fix test (hopefully, how come getting an up to date
version of PHPUnit is so difficult)
patchset 4: rebase
patchset 5: fix my accidental remove of a comment

Change-Id: I312fbd1c935a0095644c3b63c4929632c6f6e387
2012-08-23 16:19:28 -03:00
Brian Wolff
d1f0c5a7d8 (sort of bug 32410) Fix EXIF GPSAltitude calculation when below sea level.
In EXIF, GPSAltitude is stored as a fraction string like "1/2".
For values below sea level we were negating this value, in order
to represent the sign and the magnitude in the same value. However,
I forgot to convert that to an integer before negating it. PHP was nice
enough to do a best effort conversion of the string to an integer.
This resulted in altitudes below sea level being taken as just the
numerator of the altitude, which gives results that can be significantly
off.

Also add unit tests for the GPS related image metadata stuff. Change the
existing GPS test to use a fractional altitude (Since this issue isn't
appearent if the denominator is 1). Add tests for XMP as well, since
XMP had same issue, and has to do same processing as EXIF stuff does.

In some future time, may want to consider just converting all exif rational values
to real numbers during the extraction process for generally better sanity.

Patchset 2: rebase

Change-Id: I49032b52a4c840b28e667a6a2b8ae23c508df247
2012-08-23 11:53:14 -07:00
Christian Aistleitner
282554eb33 Employing MediaWikiTestCase's temporary file methods
Change-Id: Ide86541abf6642791c1466a2075436a9df6bdbed
2012-04-10 17:08:06 +02:00
Sam Reed
6b1c5279b3 Fix mixed/messed up whitespace 2012-03-07 01:09:35 +00:00
Antoine Musso
f5b45904e1 avoid exif tests file leakage
Exif test are leaking files heavily on our test server. This quick patch make
it sure we delete temporary files.

Ideally, we should have something like a temporary filesystem backend that
would self destruct :-D

requires r112326: wfRecursiveRemoveDir()
2012-02-24 15:43:11 +00:00
Aaron Schulz
7d923a9360 In FileBackend/FileOp:
* Replaced 'media' portion of container names with the repo name. This makes it easy for multiple repos to use the same backend without 'wikiId' hacks. Full container names are now like <wiki>-<repo>-<zone> (or <repo>-<zone> if 'wikiId' is set to an empty string).
* Restricted isValidContainerName() more in light of Azure portability and shorted shard suffix.
* Bumped $maxCacheSize to 75 storage paths.
* Code comment cleanups and additions.
Unit tests:
* Updated related tests and marked testBug29408() as broken (I can't find the problem).
* Reduced leakage in UploadFromUrlTestSuite a bit.
2012-01-07 01:33:23 +00:00
Brian Wolff
f9173cb902 Make sure that if we fail to read the App13 (iptc) block of a JPG file, that that doesn't block other metadata from being read. Also makes sure if more then one app13 block is in the file, they are all read, not just the last one that appears in the file (This required some changes to tests since before the intermediate value was just one value, now its an array of all such blocks) 2012-01-05 23:25:39 +00:00
Brion Vibber
037bb74827 PHPUnit test case for bug 31719 (followup r107793) 2012-01-03 21:12:24 +00:00
Aaron Schulz
53f96171cc FU r106752: use "media-" instead of "images-" in container names. Long live books, video, 3D meshes, and animated holograms from the future! 2011-12-20 23:47:53 +00:00
Aaron Schulz
5275f9b097 Merged FileBackend branch. Manually avoiding merging the many prop-only changes SVN likes to sprinkle in (easy to spot from the change list). Did not add SwiftFileBackend.php as it still is in development. 2011-12-20 03:52:06 +00:00
Brian Wolff
7f5ea8a0aa Follow-up r102751 - I think this test was intermitently failing because it was re-using thumbs generated for previous tests. Add a random number to stop that. 2011-11-11 15:33:37 +00:00
Brian Wolff
0556cacac0 (follow-up r99910) Make $wgEnableAutoRotation work...
Also unit-tests. There's a bit of duplication in the unit tests, and I wasn't sure if there was a better way with less duplication.
2011-11-11 04:09:05 +00:00
Max Semenik
18331f2a45 Windows compat for a couple of tests :( 2011-11-04 20:46:04 +00:00
Bryan Tong Minh
eac3d58b44 Per comments on r99911 move $wgMaxImageArea check back to normaliseParams(). Added hook BitmapHandlerCheckImageArea to override the area check. I'm not very happy with this overly specific hook, but I don't see a clear way to obtain the functionallity required otherwise.
Remove the width and height params from BitmapHandler::getImageArea(). There is really no reason for them to be there.
2011-11-02 20:48:50 +00:00
Brian Wolff
19d0d43aa5 (follow-up r100575 / r99477) unit-tests for jpegMetadataExtractor dealing with padding bytes. 2011-10-24 02:47:22 +00:00
Bryan Tong Minh
cdf224eac1 Follow-up r99911: fix tests
Add NullRepo to autoloader
2011-10-15 21:38:53 +00:00
Sam Reed
90e74042b4 Fix comment blocks that start /* to /** 2011-10-11 18:30:50 +00:00
Brian Wolff
75c1a9f14b follow-up r99316 - Fix class name in unit test class. 2011-10-08 19:00:24 +00:00
Brian Wolff
aa61882f3e Make partial dates in XMP not have the ommitted fields fulled out to 1's (reported by AVRS on irc).
Basically, in XMP you can specify partial date (for example 2011-04 for april 2011 with no day).
We were extracting that, and fulling out the day to 01 if it wasn't present (My original resoning when writing
the code was that the nice localized date functions need a full date, but that's a pretty poor rationale for displaying
wrong date). This changes it to just display such year-month things as YYYY:MM.
2011-10-08 18:40:00 +00:00
Brion Vibber
cad88cae9a * (bug 6672, 31024) Fixes for handling of images with an EXIF orientation
- sets an image's reported width/height to the logical form (portait image reports itself as portait)
- everything works in logical coordinates when sizing -- we don't touch the physical pre-rotation dimensions again until it's actual low-level resize time. This fixes several problems with incorrect thumb sizing (eg getting a 600x800 image when we asked for something that fits in 800x600 box)
- fixes unit test cases in ExifRotationTest that were reporting that the width/height were coming back with the physical form which we don't want
- removes some test cases on ExifRotationTest that tested dimension swapping in a place where we don't want it
- ensures that only logical width/height need be exposed to API etc, making exif-rotated images work via ForeignAPIRepo

Note that this may actually cause file metadata to get loaded twice during File::getPropsFromPath, as the $image parameter it passes in to the handler's getImageSize function is bogus and can't be used to fetch an already-loaded metadata blob. This should not generally be too expensive though; it's not a fast path.

Rotated files that were uploaded under previous versions may still have their width/height reversed; an action=purge on the file page will refresh it and cause thumbs to be regenerated.

Follows up on r79845, r90016, r92246, r92279, r96687, r97651, r97656, r97659.

Needs merge to 1.18.
2011-09-20 22:13:34 +00:00
Brion Vibber
7b83fa49ab Further tweaks to r96687, r90016, r97398, r97656 etc tests: try several thumbnail resolutions so we test both width-only and width & height requests 2011-09-20 20:04:26 +00:00
Brion Vibber
3f301cefee Further tweaks to r96687, r90016, r97398 etc tests: actually produce a thumbnail and check its size as well. Confirms that we're handling bounding boxes incorrectly. 2011-09-20 19:39:17 +00:00
Brion Vibber
7e80ef1467 Partial revert of broken test changes from r92246 -- for some reason it was trying to test some random handler parameter normalization instead of the actual reported width/height! Confirms that returned width/height are incorrect for exif-rotated images. 2011-09-20 19:13:52 +00:00
Platonides
824640c350 Restore ExifBitmapTest::tearDown removed in r97398 2011-09-18 20:36:35 +00:00
Brian Wolff
ffed20a5da Follow-up r92635 Make sure the Exif related tests handle not having the Exif extension available properly
This should fix issues reported in http://lists.wikimedia.org/pipermail/wikitech-l/2011-September/055212.html Lots of these tests loaded the exif extension dynamically, but then didn't reset $wgShowEXIF var properly.

Also change some of the markTestIncomplete to markTestSkipped as that seemed more correct.
2011-09-18 01:53:09 +00:00
Brian Wolff
57228556e6 (bug 30640; follow-up r92279) Rotating images was making skewed images
This is Bryan's patch from bug 30640 with a couple minor related changes, plus some unit tests.
This also addresses an issue with preventing too-big images from being scaled from r92279.

I also noticed that image magick's rotation support is broken in 6.3.7 (the version I had installed locally. I've since upgraded) I'm not sure if we should be doing something about that...

I did test this without both image magick, and gd (although only very briefly with gd) both seemed to work well. I didn't test any other image scalars.
2011-09-09 20:13:09 +00:00
Brian Wolff
4aaf9fe071 (follow-up r86169) Moar unit-tests!! (sorry for uttetly huge commit)
This should be my last commit of unit tests for the media metadata stuff (hopefully).
2011-08-21 18:05:34 +00:00
Brian Wolff
c0e419ce5e follow-up r86169: unit tests for extraction of JPEG comment (COM) segments. 2011-08-18 05:45:04 +00:00
Brian Wolff
23b034e265 follow-up r91885 rename testTiffFile since its not about tiff files
This is probably what was referred to in CR, not what I changed in r94825
2011-08-18 03:53:53 +00:00
Brian Wolff
a6623f7fac Move the image files used in the media tests from includes/media to data/media as the includes/media
was starting to get crowded with supporting image files.

This changes the following things
*Moves the media files to a different directory
*Changes the references to the files to reference there new locations

2 semi-unrelated changes
*Modify the README file that was basically giving credit for the images where due to explain what the images are for.
*set svn:mime-type to image/svg+xml for the svg files.
2011-08-17 23:28:31 +00:00
Brian Wolff
99cfddab3d follow-up r91885 - address CR comments
* rename testTiffFile to something more descriptive
* unserialize the serialized results before comparing
Also follow-up r92635 - rm an extra wfDl that was outside any functions, and I'm assuming accidentally there (?)
2011-08-17 21:53:45 +00:00
Chad Horohoe
6bf0914fbd Followup r93344: forgot to fix test. In other news: inline data providing is eww. 2011-07-28 00:14:49 +00:00
Platonides
ae3910dd5d Follow up r92635 2011-07-20 15:35:48 +00:00
Platonides
49728e3588 Fix for r91885.
These tests were added in r91885.
2011-07-20 15:33:46 +00:00
Platonides
132bce3819 Follow up r92635. 2011-07-20 15:30:57 +00:00
Platonides
3d6ed9a69a I like better checking for the actual extension, loading if needed (and able). 2011-07-20 15:24:21 +00:00
Platonides
36edac0170 Fixup r89029. You don't include the brackets in the method name!
--ta línea y las que están debajo serán ignoradas--

M    includes/media/SVGMetadataExtractor.php
M    tests/phpunit/includes/media/SVGMetadataExtractorTest.php
2011-07-20 15:13:58 +00:00
Bryan Tong Minh
0222e58b9f (bug 28762) Resizing to specified height broken for very thin images
Restructure and comment of ImageHandler::normaliseParams(). ImageHandler::normaliseParams() will now output both width/height as physicalWidth/Height, where width/height are the dimensions used by the browser, and physicalWidth/Height are the dimensions of the thumbnail that will be created. This allows keeping the use of unique dimensions for a specified thumbnail width, by forcing client side resizing of 1px-wide images with non corresponding height.
Also fixed a bug where the check for mustRender() was in an if statement where it should not have been.
2011-07-15 19:03:40 +00:00
Bryan Tong Minh
64ef056784 Follow-up r79845: Fix rotation. Turns out that we need to pass the pre-rotation dimensions to convert.exe. Also added tests. 2011-07-15 15:13:18 +00:00
Brian Wolff
3072dda2cb (follow-up r90256) Unit tests. 2011-07-11 16:42:15 +00:00
Antoine Musso
854b84ef42 enhance tests name (for --testdox option) 2011-07-03 18:09:30 +00:00
Bryan Tong Minh
c87574b7b4 Add wfUnserialize() wrapper around unserialize to prevent E_NOTICE and use it in ExifBitmap.php. There are probably many more places that could use this. This should fix Platonides' problem at r90421, but also added a check for $wgShowExif to prevent the test from failing. 2011-06-29 20:24:53 +00:00
Platonides
eded6a8db8 Make BitmapMetadataHandlerTest incomplete if $wgShowEXIF is not set.
It was throwing 'MWException: Internal error: exif_read_data not present. $wgShowEXIF may be incorrectly set or not checked by an extension.'
Fixed typo in LocalSettings.
2011-06-29 13:45:57 +00:00
Brian Wolff
cf32ccd072 Per CR on r86169, start adding unit tests for metadata extraction.
This is just some initial tests that really only cover png's. I plan
to add more soon.

Also well I'm here, fix the svn prop on broken_exif_date.jpg from r90421.
2011-06-23 23:25:49 +00:00
Bryan Tong Minh
f66a1c1bb9 (bug 29471) Exception thrown for files with invalid date in metadata
MediaWiki doesn't handle BC dates nicely, so check for that.
2011-06-19 21:38:58 +00:00
Brion Vibber
b1f5c81942 Start on test cases for bug 6672 (Exif orientation support), follow up to r79845.
Unfortunately seem to be hitting a wall right off at checking width & height; BitmapHandler reports back the pre-rotation width & height, leading to the oddity that a file that's clearly 1024px tall and 768px wide reports itself as 1024px wide and 768px tall.
Haven't gotten to generating rotated output to confirm file size. :)

Marked test case as broken pending fix so it doesn't add to surprise regressions in test reports.
2011-06-13 22:13:38 +00:00