2014-01-21 05:31:06 +08:00
|
|
|
require 'test_helper'
|
|
|
|
|
2014-07-15 23:23:48 +08:00
|
|
|
class BasicZipFileTest < MiniTest::Test
|
2014-01-21 05:31:06 +08:00
|
|
|
include AssertEntry
|
|
|
|
|
|
|
|
def setup
|
|
|
|
@zip_file = ::Zip::File.new(TestZipFile::TEST_ZIP2.zip_name)
|
2015-03-23 01:03:50 +08:00
|
|
|
@testEntryNameIndex = 0
|
2014-01-21 05:31:06 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_entries
|
|
|
|
assert_equal(TestZipFile::TEST_ZIP2.entry_names.sort,
|
2019-09-27 05:38:28 +08:00
|
|
|
@zip_file.entries.entries.sort.map(&:name))
|
2014-01-21 05:31:06 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_each
|
|
|
|
count = 0
|
|
|
|
visited = {}
|
2015-03-21 16:10:37 +08:00
|
|
|
@zip_file.each do |entry|
|
2014-01-21 05:31:06 +08:00
|
|
|
assert(TestZipFile::TEST_ZIP2.entry_names.include?(entry.name))
|
|
|
|
assert(!visited.include?(entry.name))
|
|
|
|
visited[entry.name] = nil
|
|
|
|
count = count.succ
|
2015-03-21 16:10:37 +08:00
|
|
|
end
|
2014-01-21 05:31:06 +08:00
|
|
|
assert_equal(TestZipFile::TEST_ZIP2.entry_names.length, count)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_foreach
|
|
|
|
count = 0
|
|
|
|
visited = {}
|
2015-03-21 16:10:37 +08:00
|
|
|
::Zip::File.foreach(TestZipFile::TEST_ZIP2.zip_name) do |entry|
|
2014-01-21 05:31:06 +08:00
|
|
|
assert(TestZipFile::TEST_ZIP2.entry_names.include?(entry.name))
|
|
|
|
assert(!visited.include?(entry.name))
|
|
|
|
visited[entry.name] = nil
|
|
|
|
count = count.succ
|
2015-03-21 16:10:37 +08:00
|
|
|
end
|
2014-01-21 05:31:06 +08:00
|
|
|
assert_equal(TestZipFile::TEST_ZIP2.entry_names.length, count)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_get_input_stream
|
|
|
|
count = 0
|
|
|
|
visited = {}
|
|
|
|
@zip_file.each do |entry|
|
|
|
|
assert_entry(entry.name, @zip_file.get_input_stream(entry), entry.name)
|
|
|
|
assert(!visited.include?(entry.name))
|
|
|
|
visited[entry.name] = nil
|
|
|
|
count = count.succ
|
|
|
|
end
|
|
|
|
assert_equal(TestZipFile::TEST_ZIP2.entry_names.length, count)
|
|
|
|
end
|
|
|
|
|
2015-03-25 00:02:54 +08:00
|
|
|
def test_get_input_stream_block
|
2014-01-21 05:31:06 +08:00
|
|
|
fileAndEntryName = @zip_file.entries.first.name
|
2015-03-21 16:10:37 +08:00
|
|
|
@zip_file.get_input_stream(fileAndEntryName) do |zis|
|
2015-03-25 00:02:54 +08:00
|
|
|
assert_entry_contents_for_stream(fileAndEntryName,
|
|
|
|
zis,
|
|
|
|
fileAndEntryName)
|
2015-03-21 16:10:37 +08:00
|
|
|
end
|
2014-01-21 05:31:06 +08:00
|
|
|
end
|
|
|
|
end
|