Commit Graph

355 Commits

Author SHA1 Message Date
Vincent Petry 6e2358c3a6 Added hacky fix for long path cleanup routine 2014-06-06 10:41:49 +02:00
Thomas Müller ad4ec414c9 use system function to recursive remove the directory used by temporary storage 2014-06-06 09:29:31 +02:00
Thomas Müller e1beb8c6c3 Merge pull request #8889 from owncloud/mtime-reuse
Don't update the mtime if the storage mtime hasn't changed
2014-06-05 13:18:18 +02:00
Robin Appelman 9dab6ec2ec Fix uit tests 2014-06-05 11:31:55 +02:00
Thomas Müller ff3ded6cb2 Merge pull request #8852 from owncloud/kill-permissions-master
Kill permissions table
2014-06-05 10:05:05 +02:00
Thomas Müller da3974bcb2 - drop permissions table and related code
- the file/folder's permission is now stored in the file cache
- BackGroundWatcher has been removed - this has meanwhile be replaced by occ files:scan which can be executed in a cron jobs
- increase version to trigger database migration
2014-06-05 08:22:01 +02:00
Vincent Petry b5f0a17918 Merge pull request #8822 from owncloud/cache-change-propagator
[WIP] Improved propagation of cache changes
2014-06-04 13:03:14 +02:00
Robin Appelman 3bcdad62fb Fix unit tests 2014-06-04 10:01:50 +02:00
ringmaster 0e85618c42 Can't use assertInstanceOf on wrapped storage; use assertTrue(instanceOfStorage() instead. 2014-06-04 07:55:46 +02:00
Bjoern Schiessle 2b30fb4862 fix unit test after adding the additional parameter to addStorageWrapper() 2014-06-04 07:55:46 +02:00
Robin Appelman f297bf14f9 Fix unit tests 2014-06-03 11:55:18 +02:00
Robin Appelman e002ff6065 propagate changes in the scanner 2014-06-02 15:24:08 +02:00
Robin Appelman a31f089266 Add a change propagator class to handle propagating etag and mtime changes 2014-06-02 14:39:12 +02:00
Robin Appelman 8c5521fdfc Add $storage->instanceOfStorage to handle instanceof for storage wrappers 2014-05-29 13:45:50 +02:00
icewind1991 c0f02be50a Merge pull request #3908 from owncloud/storage-folder-copy-rename
Recursive copy and remove for local storage backends
2014-05-29 13:29:24 +02:00
Robin Appelman 1302602173 fix illegal usage of unlink in test case 2014-05-28 18:16:23 +02:00
Robin Appelman 03ba497a8c add recursive copy to local storage backend 2014-05-28 18:16:23 +02:00
Robin Appelman 38c1da0976 fix recursive rename for local storage backend 2014-05-28 18:16:23 +02:00
Robin Appelman c99e254178 aditional test cases for copy and rename 2014-05-28 18:16:23 +02:00
Thomas Müller a2e4bc8d33 # This is a combination of 2 commits.
# The first commit's message is:

adding tests for long paths
increment path field in database up to 4000 (maximum for Oracle - otherwise we could use php's 4096)
increment version to trigger database migration
adding unit test for too long path

# This is the 2nd commit message:

fix too long path
2014-05-28 15:30:44 +02:00
Morris Jobke dc36d30953 Remove all occurences of @brief and @returns from PHPDoc
* test case added to avoid adding them later
2014-05-19 17:50:53 +02:00
Lukas Reschke b0381cfe12 Add tests for other types that PHP might cast
Addition to https://github.com/owncloud/core/pull/8572
2014-05-13 22:01:11 +02:00
Vincent Petry bab8c1f8e5 Fixed getAbsolutePath case when path is "0"
Make sure to correctly check for string emptiness when the passed path
is "0".
2014-05-13 17:38:46 +02:00
Joas Schilling ced2a4fcf2 Remove unneccessary statement from test 2014-04-29 10:42:49 +02:00
Joas Schilling 39bf700790 Update tests to test for create and update aswell 2014-04-29 10:34:28 +02:00
Thomas Müller a2efdb8722 Merge pull request #7970 from owncloud/webdav-upload-hash
Fix uploading files containing a # in the path for webdav
2014-04-03 16:09:44 +02:00
Vincent Petry d6ce45fe61 Correctly read the full stream in file_get_contents
When using user-defined stream wrappers, PHP will
return a maximum of 8192 bytes even if more was
requested.

This fix uses stream_get_contents to make sure the full stream is read
and not only the first 8 KB.

Added unit test with a bigger test file to cover this case.
2014-04-01 10:07:16 +02:00
Robin Appelman 76c63a5760 Fix uploading files containing a # in the path for webdav 2014-03-31 17:00:32 +02:00
Thomas Müller 70db348475 Merge pull request #7824 from owncloud/hash-parameter-order
Fix parameter order for Storage\Local::hash
2014-03-28 13:06:07 +01:00
Vincent Petry 040f430f0c Merge pull request #7829 from owncloud/cachefolderlocation
Cache folder is now configurable
2014-03-28 12:08:38 +01:00
Thomas Müller 1ae10b9da3 Merge pull request #7420 from owncloud/cachehooks-first
Manually triger the filecache update hooks before any other hook
2014-03-25 22:41:09 +01:00
Thomas Müller bbc2e37259 Merge pull request #7477 from owncloud/foldersize-reuse
Allow re-using already known fileinfo when calculating folder sizes
2014-03-25 22:33:24 +01:00
Vincent Petry 1e39719926 Added unit tests for external cache folder 2014-03-24 14:32:04 +01:00
Robin Appelman fffe330bbc Fix parameter order for Storage\Local::hash 2014-03-20 15:32:12 +01:00
Vincent Petry 66bc0f0848 Still return quota value when free space is unknown
Fixed the quota storage wrapper to correctly return the quota value when
the free space is not known (which usually happens when the disk_free_space
function is disabled)
2014-03-19 19:07:11 +01:00
Robin Appelman eabeedb306 Merge branch 'master' into cachehooks-first 2014-03-13 15:22:00 +01:00
Robin Appelman d55c7223a9 Merge branch 'master' into foldersize-reuse
Conflicts:
lib/private/files/cache/homecache.php
2014-03-11 13:04:20 +01:00
Vincent Petry 48d63a6278 Return unencrypted_size of folder when queried
This fixes the "used space" to be based on the unencrypted size, not
encrypted size, to be consistent with how quota/space is handled when
encryption is enabled
2014-03-07 14:59:09 +01:00
Robin Appelman bb8a7a2230 Remove assert since the root size of the home storage is no longer calculated 2014-03-03 16:48:06 +01:00
Jörn Friedrich Dreyer 2ba6cd4e2b initialize etags of temporary storage 2014-02-27 12:44:07 +01:00
Jörn Friedrich Dreyer 131c12ad8d use assertInternalType for typechecking 2014-02-27 09:51:26 +01:00
Jörn Friedrich Dreyer 39f2f564a9 use assertSame and assertNotSame for etag checks 2014-02-27 09:39:34 +01:00
Robin Appelman bc49c6be04 Manually triger the filecache update hooks before any other hook 2014-02-26 14:29:13 +01:00
Thomas Müller ec45a3c0e2 Merge pull request #6962 from owncloud/quota-space-root
Allow passing a root folder to get the used space from in the quota wrapper
2014-02-20 16:47:59 +01:00
Vincent Petry b2b35cd335 Fixed ext storage webdav path encoding
- Some WebDAV servers like lighttpd need paths in URLs to be properly
encoded
- Added error log output when curl connection failed
- Added check for 'resourcetype' in case the WebDAV server doesn't
  support/return it
- Fixed touch() to return false if the server doesn't implement
  PROPPATCH
- Added optional delay in WebDAV unit tests to use when testing against
  lighttpd's WebDAV
2014-02-19 18:34:08 +01:00
Morris Jobke bcad6e641a Merge pull request #7274 from owncloud/scrutinizer-patch-1
Scrutinizer Auto-Fixes
2014-02-19 11:51:04 +01:00
Robin Appelman eea1abae20 add unit tests for watcher policies 2014-02-19 09:52:51 +01:00
Scrutinizer Auto-Fixer adaee6a5a1 Scrutinizer Auto-Fixes
This patch was automatically generated as part of the following inspection:
https://scrutinizer-ci.com/g/owncloud/core/inspections/cdfecc4e-a37e-4233-8025-f0d7252a8720

Enabled analysis tools:
 - PHP Analyzer
 - JSHint
 - PHP Copy/Paste Detector
 - PHP PDepend
2014-02-19 09:31:54 +01:00
Robin Appelman 2166683e3b Allow setting the frequency of which the file watcher checks for updates 2014-02-18 16:34:25 +01:00
Robin Appelman 3afdcd85e7 Add unit test for quote wrapper size root 2014-02-04 16:05:12 +01:00
Vincent Petry 1af7dab535 Fixed quota wrapper to not wrap failed fopen streams
When calling fopen() on some storage types, these return false instead
of throwing an exception.

This fix makes sure that in case the stream wasn't opened (for example
when a file doesn't exist any more) the stream isn't wrapped.

Also added 'rb' as another case that doesn't need to be wrapped.

Fixes #6832
2014-01-19 18:51:36 +01:00
Vincent Petry 23e6578601 Fix array access syntax for older PHP
There was a syntax error when running tests in PHP 5.3.10.
2014-01-17 12:31:22 +01:00
Vincent Petry 34559ef114 Merge pull request #6768 from owncloud/scanner-use-storage-mtime
Use storage_mtime when determining if we can reuse cached data while scanning
2014-01-15 01:31:33 -08:00
Robin Appelman 16b898ddb8 update another test 2014-01-14 20:19:05 +01:00
Robin Appelman 7e4c80fd60 use different value for mtime and storage_mtime in test 2014-01-14 15:13:21 +01:00
Robin Appelman 4113042c8f remove duplicate test class 2014-01-14 15:11:41 +01:00
Robin Appelman 203d5d01ca Use storage_mtime when determining if we can reuse cached data while scanning 2014-01-14 13:54:07 +01:00
Vincent Petry 4faba49f0a Fix calculated folder size to use unencrypted size
The encrypted size was used when calculating folder sizes.
This fix now also sums up the unencrypted size and shows that one when
available.
2014-01-09 17:47:50 +01:00
Vincent Petry f642ad3961 Prevent deleting storage root
Storage mount points are not deletable, so make sure that the unlink
operation and its hooks aren't run in such cases.

Note that some storages might recursively delete their contents when
calling unlink on their root. This fix prevents that as well.
2014-01-08 13:17:36 +01:00
Vincent Petry 5be4af9f51 Now also preventing to override "files" dir size with -1
Fixes #6526
2014-01-07 22:34:01 +01:00
Robin Appelman 46b72cbff0 remove unneeded ; in comment 2013-12-12 15:14:44 +01:00
Robin Appelman 30e0b474f8 Add test for having utf8 filenames in the cache 2013-12-12 13:43:55 +01:00
Robin Appelman e888bdda30 get rid of failing test that don't cause additional downloads 2013-12-06 18:26:38 +01:00
Robin Appelman cf9b7e343a extend test case for etag preservation 2013-12-06 13:00:58 +01:00
Robin Appelman 01ab15a2b0 reuse etags when doing a background scan 2013-12-05 15:23:34 +01:00
Vincent Petry 6cf9844e9c Added unit test for the test() method
This is to make sure that method isn't broken
2013-12-03 14:35:53 +01:00
Vincent Petry d69243ee51 Fixed FTP and SMB to use rmdir() when deleting folders
Some storages need to use different calls for deleting files or folders,
usually unlink() and rmdir().

Fixes #4532 (SMB dir deletion)
Fixes #5941 (FTP dir deletion)

Note that the extra is_dir() should be fast because it's read from the
stat cache.
2013-11-29 13:01:01 +01:00
Vincent Petry 43b1cf7988 Redetect mime type whenever extension is renamed 2013-11-27 21:34:51 +01:00
Vincent Petry 2653d914d9 Merge pull request #6008 from owncloud/extstorage-smb-webdav-renamefix
Fixed SMB rename function to overwrite target file
2013-11-26 06:42:36 -08:00
Vincent Petry 712b47757a Updated unit tests for SMB
- coverage for touch return value
- fixed directory provider to exclude unsupported cases
2013-11-26 12:53:03 +01:00
Vincent Petry c3e34676ba Improved unit test for "overwrite on move"
Now using a different content to make sure the file was overwritten.
2013-11-25 18:54:58 +01:00
Vincent Petry af7118aa5d Added unit test for "overwrite file on rename/move"
Also fixed "rename" unit test that was ready the result out of the wrong
file.
2013-11-25 18:52:14 +01:00
Vincent Petry 5b6d1d79d0 Fixed SMB file deletion success detection
Since unlink() smb4php doesn't return true on deletion success, we need
to check whether the file was deleted to confirm success.

Fixes #5866
2013-11-19 15:05:11 +01:00
Morris Jobke 4a0d295e4a Merge pull request #5927 from owncloud/quota-excludeextstorage
External storage space is now not counted in total space
2013-11-18 14:42:40 -08:00
Vincent Petry 3e2fd9942b Root size for home storage is now size of "files" subdir
Fixes #4593
2013-11-18 18:17:25 +01:00
Vincent Petry 614e4d485c External storage space is now not counted in total space
Added argument to getFileInfo() to disable adding the size of
mountpoints to a directory's size.

Fixes #5924
2013-11-18 18:09:01 +01:00
Vincent Petry d9ab964ff9 Added missing test with leading backslash 2013-11-14 15:36:03 +01:00
Vincent Petry c06d8bb007 Fixed normalizePath() to strip out single dot dirs
Now removing "/./" and trailing "/." from the paths when normalizing.
2013-11-14 13:15:03 +01:00
Vincent Petry 34c92f6656 Now using HomeStorage for legacy home storage ids
Legacy home storage ids with the format "local://path/to/datadir/user1"
are now also wrapped by the HomeStorage.
2013-11-12 18:01:02 +01:00
Robin Appelman 32a703ab36 Do not use -1 as the size for the root folder of the home storage 2013-11-12 16:15:43 +01:00
Vincent Petry 7ff6a642b4 Fixed filesize issue in watchr test
Added clearstatcache to make sure we get the correct file size after
re-writing into the same file.

This failed on openSUSE 12.3 x86_64
2013-11-05 17:01:02 +01:00
Thomas Müller d25c8b43e6 Merge pull request #5652 from owncloud/front-port-5647-master
[WIP] extend unit test to directories starting or ending in whitespace
2013-11-01 23:11:33 -07:00
Jörn Friedrich Dreyer 10b2d649af extend unit test to directories starting or ending in whitespace 2013-10-31 14:24:43 +01:00
Thomas Müller 261cd87efa Merge branch 'master' into home-storage 2013-10-30 22:11:19 +01:00
Robin Appelman c9f3f2874f Merge branch 'master' into update-parent-storage-mtime
Conflicts:
	lib/private/files/cache/updater.php
2013-10-30 13:41:10 +01:00
Bjoern Schiessle fcfac51aa1 backport of https://github.com/owncloud/core/pull/5513 2013-10-29 15:08:12 +01:00
Robin Appelman 654b0daf01 update touch tests for updated behaviour 2013-10-29 14:22:13 +01:00
Robin Appelman b3626f34cd Update the parent folders storage_mtime on write and delete to prevent rescans 2013-10-29 14:18:57 +01:00
Robin Appelman f1e6e80eb1 add specialized storage backend for home folders 2013-10-29 00:14:23 +01:00
Vincent Petry c8df27de73 Fixed quota stream to not wrap read-only fopen calls 2013-10-25 12:33:16 +02:00
Vincent Petry d8b245490b Fixed quota stream's fseek method
- Added missing return statement
- Added missing support for SEEK_END
- Fixes #5524
2013-10-25 12:09:46 +02:00
VicDeo 26c0007a5f Merge pull request #5263 from owncloud/fixing-5255-master
Proper behavior of resolvePath()
2013-10-10 09:27:45 -07:00
Thomas Müller bc6e352ccd the path need to be normalized before putting it into resolvePath()
otherwise the returned internalPath will not match followup calls to e.g. Cache::getID()
2013-10-10 16:06:26 +02:00
Robin Appelman 1378af838c merge master into hooks-view-same-start 2013-10-10 11:34:30 +02:00
Robin Appelman 7f8eeb0474 ensure the view's root is a subfolder of the the default root, not only starting the same 2013-10-09 20:46:43 +02:00
Robin Appelman 38c563dcdc don't trigger the create hooks when if the file already exists for file_put_contents 2013-10-09 20:34:18 +02:00
Robin Appelman 235517f111 clear permissions cache when scanning a file 2013-09-24 00:57:58 +02:00
Andreas Fischer d9a36ee82e Move setUp() and tearDown() up in tests/lib/files/cache/scanner.php. 2013-09-23 12:45:02 +02:00
Andreas Fischer 4a9f1cc74d Merge remote-tracking branch 'owncloud/master' into fixing-4866-master
* owncloud/master: (98 commits)
  [tx-robot] updated from transifex
  files: when filtering search results, ensure results are children of the fakeroot not just path starting the same
  setting a default on filecache column unencrypted_size
  [tx-robot] updated from transifex
  remove unneccessary lib in namespace
  namespaces use upcasefirst parts when _ is left in namespace and files are named after their classes the autoloader will also find classes in the lib folder of an app its magic!
  initialize variable
  calculate correct permissions while toggle the password protection
  make sure that both $permissions and $oldPermissions have the same type
  Add copyright, remove starting blank line
  update inherit docs comment
  Fix insert/update/delete helper functions for oracle
  Add missing return true statements to legacy preferences functions
  Add missing static
  Convert OC_Preference to object interface
  fix race condition in lazy preview loading
  use {count} instead of 'One' for more versatile translation
  fix double translation of error message
  use n to translate title
  fixing typos and l10n
  ...

Conflicts:
	tests/lib/files/cache/scanner.php
2013-09-23 12:44:11 +02:00
Thomas Müller 03eedb58fc Merge pull request #4327 from owncloud/scanfile-remove
remove deleted files while scanning
2013-09-22 22:40:13 -07:00
Robin Appelman a1d4eb1f95 files: when filtering search results, ensure results are children of the fakeroot not just path starting the same 2013-09-22 01:24:12 +02:00
Andreas Fischer de2e6e137b Do not convert boolean to integer in tests. put() already does this. 2013-09-21 00:12:13 +02:00
Thomas Müller d84d548618 when storing back the data field 'encrypted' it is necessary to cast the boolean to an integer to make pg happy 2013-09-20 20:34:17 +02:00
Thomas Müller c8f9efeb94 etag changes are now propagated up the file tree 2013-09-16 23:32:17 +02:00
Thomas Müller 3c026b7cf6 recreate an etag within the scanner if the cache contains an empty etag 2013-09-16 12:09:15 +02:00
Thomas Müller 6eeb4d165c - giving the user a new id for each test run in order to prevent reuse of e.g. permissions data in the database
- setting the current user id because \OC\FilesView relies on \OC_User::getUser()
2013-09-13 21:44:31 +02:00
Robin Appelman c9d2663159 Merge branch 'master' into fileapi-foreward 2013-09-12 21:43:35 +02:00
Robin Appelman b9167196fb adjust test cases to namespace changes 2013-09-10 22:21:49 +02:00
Bernhard Posselt fbedd643f7 Merge pull request #4477 from owncloud/hooks-view
also emit hooks for views that are a subfolder of the user folder
2013-09-04 16:09:22 -07:00
Robin Appelman a22f9ff301 Provide an implementation of the fileapi for oc6 build on top of the old api 2013-09-01 19:47:48 +02:00
Robin Appelman bf9045f585 test case for hooks send from a non-default view 2013-08-29 15:25:38 +02:00
Robin Appelman d8c71ba734 merge master in storage-wrapper-quota 2013-08-18 11:34:56 +02:00
Robin Appelman 1877a42a0d Scanner: additional tests for reusing etags during scanning 2013-08-12 15:37:15 +02:00
Robin Appelman 3e7a86c6ec remove deleted files while scanning 2013-08-06 15:59:06 +02:00
Michael Gapczynski afff750011 Add test for calculating size of newly empty folder 2013-07-29 10:23:14 -04:00
Robin Appelman cd8f0c21ce add quota storage wrapper 2013-07-25 00:31:51 +02:00
Robin Appelman a853968f7d move storage wrapper test to new namespace 2013-07-25 00:31:51 +02:00
Robin Appelman 10d3e63ce5 add quota streamwrapper that limits the amount of data that can be written to a stream 2013-07-25 00:31:51 +02:00
Thomas Müller c517c845f6 Merge branch 'master' into storage-test-cleanup
Conflicts:
	tests/lib/files/storage/storage.php
2013-07-24 01:01:36 +02:00
Thomas Müller a2cdf8b91e Merge pull request #3925 from berendt/reworking_OC_Files_Storage_AmazonS3
reworking of \OC\Files\Storage\AmazonS3
2013-07-22 02:19:27 -07:00
Robin Appelman cfac7fcd53 Storage: remove some unneeded strict tests of mtime behaviour 2013-07-16 23:07:35 +02:00
Robin Appelman 97f0bc1c4a Storage: remove tests for search 2013-07-16 23:05:23 +02:00
Bart Visscher 5549c77ec5 Merge branch 'master' into doctrine
Conflicts:
	3rdparty
	lib/db.php
	lib/setup.php
	tests/lib/db.php
	tests/lib/dbschema.php
2013-07-13 12:01:14 +02:00
Christian Berendt 8c9e6db1b1 increasing allowed time difference 2013-07-08 15:03:55 +02:00
Robin Appelman 3f5eb762b6 Scanner test: ensure mtime in the cache is the same as on the storage to prevent random failures 2013-07-05 14:51:22 +02:00
Christian Berendt 92e7392852 revoking additional tests 2013-07-04 09:01:36 +02:00
Christian Berendt 37254744b5 remove tests from the wrong test method 2013-07-03 18:41:14 +02:00
Christian Berendt 818e2a364a test moving and copying of subdirectories 2013-07-03 18:38:34 +02:00
Christian Berendt 407753f594 move new tests into the correct test method 2013-07-03 18:34:33 +02:00
Christian Berendt 0a5e18335e test working with files in subdirectories 2013-07-03 18:23:09 +02:00
Christian Berendt e556b7ab55 test working with subdirectories 2013-07-03 18:16:50 +02:00
Christian Berendt 81acfc9498 test copying and moving files in subdirectories 2013-07-03 18:11:54 +02:00
Christian Berendt 21601fd784 increasing difference for modifcation time tests
one second is sometimes not enough when using a slow storage connection,
three seconds is working better (at least when testing against S3)
2013-07-03 18:08:19 +02:00
Thomas Müller b4f7a88788 rename can cause mtime change - invalid assert 2013-07-01 22:02:21 +02:00
Thomas Müller 8beec2015a Merge pull request #3763 from owncloud/recursive-rmdir
Make rmdir recursive for local storage
2013-06-30 09:16:32 -07:00
Bart Visscher d699ee9845 Merge pull request #3635 from owncloud/storage-wrapper
Give apps the option to wrap storage backends
2013-06-29 04:00:03 -07:00
Robin Appelman a0d8377109 better unit tests for static stream wrapper 2013-06-28 19:59:04 +02:00
Robin Appelman a7c70915d5 fix storage wrapper namespaces 2013-06-28 18:18:12 +02:00
Bart Visscher 0c680b46cd View test needs a dummy user 2013-06-26 20:48:54 +02:00
Jörn Friedrich Dreyer 4ecca9e97b graceful teardown of cache 2013-06-24 12:59:56 +02:00
Thomas Müller 59d3c5a575 Merge pull request #3796 from owncloud/gracefully_handle_teardown_in_scanner_test
skip teardown if cache has not been set up
2013-06-20 04:07:33 -07:00
Jörn Friedrich Dreyer 7a7b54c4a2 skip teardown if cache has not been set up 2013-06-20 11:41:07 +02:00
Thomas Mueller 5d0a3f981c adding unit test for folder remove: testRemovedFolder() 2013-06-20 10:47:37 +02:00
Robin Appelman ff7e903f82 remove deleted files when re-scanning a folder 2013-06-20 00:42:34 +02:00
icewind1991 cb41b88520 Merge pull request #3764 from owncloud/scanfolder-existing
Improve re-using existing data in the filescanner
2013-06-19 04:30:55 -07:00
Jörn Friedrich Dreyer 904227a0e4 Merge pull request #3661 from owncloud/fixing-windows-server-master
Fixing windows server master
2013-06-19 02:42:18 -07:00
Robin Appelman 0b74e71de8 fix updaters test cases 2013-06-19 00:26:47 +02:00
Robin Appelman 2ed0e6e915 add tests for reusing existing data in scanner 2013-06-17 18:03:57 +02:00
Robin Appelman 63c898c064 Make rmdir recursive for local storage 2013-06-17 17:34:09 +02:00
Thomas Müller 54f3174665 Merge pull request #3640 from infoneo/master
Folders with multiple periods problem fix
2013-06-13 03:34:36 -07:00