test/tc_read_dir.rb in zip-container-2.1.0 vs test/tc_read_dir.rb in zip-container-2.2.0
- old
+ new
@@ -29,10 +29,11 @@
# POSSIBILITY OF SUCH DAMAGE.
#
# Author: Robert Haines
require 'test/unit'
+require 'tmpdir'
require 'zip-container'
class TestReadDir < Test::Unit::TestCase
# Check that the empty directory does not verify.
@@ -58,8 +59,28 @@
assert_raise(ZipContainer::MalformedContainerError) do
ZipContainer::Dir.verify!($dir_dir_mimetype)
end
refute(ZipContainer::Dir.verify($dir_dir_mimetype))
+ end
+
+ # Check that a mimetype which is not readable does not verify. We have to
+ # build this fixture programmatically as there's no way to add a file
+ # without read permissions into git.
+ def test_verify_unreadable_mimetype
+ Dir.mktmpdir do |dir|
+ container = File.join(dir, "unreadable.container")
+ Dir.mkdir(container)
+ mime_path = File.join(container, ZipContainer::Container::MIMETYPE_FILE)
+ File.open(mime_path, "w") { |file| file.write "MIMETYPE" }
+ File.chmod(0000, mime_path)
+
+ refute File.readable?(mime_path)
+ assert_raise(ZipContainer::MalformedContainerError) do
+ ZipContainer::Dir.verify!(container)
+ end
+
+ refute(ZipContainer::Dir.verify(container))
+ end
end
end