From a2737dc246fa395ca9c50b2d4f56ae0e30b86ec7 Mon Sep 17 00:00:00 2001 From: Mike Perham Date: Mon, 6 Jan 2014 14:48:48 -0800 Subject: [PATCH] Add test reproducing #119 --- test/ziptest.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/ziptest.rb b/test/ziptest.rb index f17a810..05e8785 100755 --- a/test/ziptest.rb +++ b/test/ziptest.rb @@ -2062,6 +2062,26 @@ class ZipSettingsTest < Test::Unit::TestCase end end + def test_streaming + fname = "../README.md" + zname = "README.zip" + Zip::File.open(zname, Zip::File::CREATE) do |zipfile| + zipfile.get_output_stream(File.basename(fname)) { |f| f.puts File.read(fname) } + end + + data = nil + Zip::File.open_buffer(File.read(zname)) do |zipfile| + zipfile.each do |entry| + next unless entry.name =~ /README.md/ + data = zipfile.read(entry) + end + end + assert data + assert data =~ /Simonov/ + ensure + FileUtils.rm_f zname + end + private def assert_contains(zf, entryName, filename = entryName) assert(zf.entries.detect { |e| e.name == entryName } != nil, "entry #{entryName} not in #{zf.entries.join(', ')} in zip file #{zf}")