Class: ZipFileExtractTest

Inherits:
MiniTest::Test
  • Object
show all
Includes:
CommonZipFileFixture
Defined in:
lib/hotplate/gems/rubyzip-1.1.7/test/file_extract_test.rb

Constant Summary collapse

EXTRACTED_FILENAME =
"test/data/generated/extEntry"

Constants included from CommonZipFileFixture

CommonZipFileFixture::EMPTY_FILENAME, CommonZipFileFixture::TEST_ZIP

Instance Method Summary collapse

Methods included from AssertEntry

assert_contents, #assert_entry, #assert_entryContents, #assert_entryContentsForStream, #assert_next_entry, #assert_stream_contents, #assert_test_zip_contents

Instance Method Details

#setupObject



8
9
10
11
# File 'lib/hotplate/gems/rubyzip-1.1.7/test/file_extract_test.rb', line 8

def setup
  super
  ::File.delete(EXTRACTED_FILENAME) if ::File.exist?(EXTRACTED_FILENAME)
end

#test_extractObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/hotplate/gems/rubyzip-1.1.7/test/file_extract_test.rb', line 13

def test_extract
  ::Zip::File.open(TEST_ZIP.zip_name) {
      |zf|
    zf.extract(ENTRY_TO_EXTRACT, EXTRACTED_FILENAME)

    assert(File.exist?(EXTRACTED_FILENAME))
    AssertEntry::assert_contents(EXTRACTED_FILENAME,
                                 zf.get_input_stream(ENTRY_TO_EXTRACT) { |is| is.read })


    ::File.unlink(EXTRACTED_FILENAME)

    entry = zf.get_entry(ENTRY_TO_EXTRACT)
    entry.extract(EXTRACTED_FILENAME)

    assert(File.exist?(EXTRACTED_FILENAME))
    AssertEntry::assert_contents(EXTRACTED_FILENAME,
                                 entry.get_input_stream() { |is| is.read })

  }
end

#test_extractExistsObject



35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/hotplate/gems/rubyzip-1.1.7/test/file_extract_test.rb', line 35

def test_extractExists
  writtenText = "written text"
  ::File.open(EXTRACTED_FILENAME, "w") { |f| f.write(writtenText) }

  assert_raises(::Zip::DestinationFileExistsError) {
    ::Zip::File.open(TEST_ZIP.zip_name) { |zf|
      zf.extract(zf.entries.first, EXTRACTED_FILENAME)
    }
  }
  File.open(EXTRACTED_FILENAME, "r") { |f|
    assert_equal(writtenText, f.read)
  }
end

#test_extractExistsOverwriteObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/hotplate/gems/rubyzip-1.1.7/test/file_extract_test.rb', line 49

def test_extractExistsOverwrite
  writtenText = "written text"
  ::File.open(EXTRACTED_FILENAME, "w") { |f| f.write(writtenText) }

  gotCalledCorrectly = false
  ::Zip::File.open(TEST_ZIP.zip_name) {
      |zf|
    zf.extract(zf.entries.first, EXTRACTED_FILENAME) {
        |entry, extractLoc|
      gotCalledCorrectly = zf.entries.first == entry &&
          extractLoc == EXTRACTED_FILENAME
      true
    }
  }

  assert(gotCalledCorrectly)
  ::File.open(EXTRACTED_FILENAME, "r") {
      |f|
    assert(writtenText != f.read)
  }
end

#test_extractNonEntryObject



71
72
73
74
75
76
# File 'lib/hotplate/gems/rubyzip-1.1.7/test/file_extract_test.rb', line 71

def test_extractNonEntry
  zf = ::Zip::File.new(TEST_ZIP.zip_name)
  assert_raises(Errno::ENOENT) { zf.extract("nonExistingEntry", "nonExistingEntry") }
ensure
  zf.close if zf
end

#test_extractNonEntry2Object



78
79
80
81
82
83
84
85
86
87
88
# File 'lib/hotplate/gems/rubyzip-1.1.7/test/file_extract_test.rb', line 78

def test_extractNonEntry2
  outFile = "outfile"
  assert_raises(Errno::ENOENT) {
    zf = ::Zip::File.new(TEST_ZIP.zip_name)
    nonEntry = "hotdog-diddelidoo"
    assert(!zf.entries.include?(nonEntry))
    zf.extract(nonEntry, outFile)
    zf.close
  }
  assert(!File.exist?(outFile))
end