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