zip-container 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/test/tc_read.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013 The University of Manchester, UK.
1
+ # Copyright (c) 2013, 2014 The University of Manchester, UK.
2
2
  #
3
3
  # All rights reserved.
4
4
  #
@@ -37,38 +37,38 @@ class TestRead < Test::Unit::TestCase
37
37
 
38
38
  # Check that the null file does not verify.
39
39
  def test_verify_null_file
40
- assert_raise(Zip::ZipError) do
41
- ZipContainer::Container.verify!($file_null)
40
+ assert_raise(ZipContainer::ZipError) do
41
+ ZipContainer::File.verify!($file_null)
42
42
  end
43
43
 
44
- refute(ZipContainer::Container.verify($file_null))
44
+ refute(ZipContainer::File.verify($file_null))
45
45
  end
46
46
 
47
47
  # Check that the empty container file does verify.
48
48
  def test_verify_empty_container
49
- assert_nothing_raised(ZipContainer::MalformedContainerError, Zip::ZipError) do
50
- ZipContainer::Container.verify!($empty)
49
+ assert_nothing_raised(ZipContainer::MalformedContainerError, ZipContainer::ZipError) do
50
+ ZipContainer::File.verify!($empty)
51
51
  end
52
52
 
53
- assert(ZipContainer::Container.verify($empty))
53
+ assert(ZipContainer::File.verify($empty))
54
54
  end
55
55
 
56
56
  # Check that the empty zip file does not verify.
57
57
  def test_verify_empty_zip
58
58
  assert_raise(ZipContainer::MalformedContainerError) do
59
- ZipContainer::Container.verify!($empty_zip)
59
+ ZipContainer::File.verify!($empty_zip)
60
60
  end
61
61
 
62
- refute(ZipContainer::Container.verify($empty_zip))
62
+ refute(ZipContainer::File.verify($empty_zip))
63
63
  end
64
64
 
65
65
  # Check that a compressed mimetype file is detected.
66
66
  def test_verify_compressed_mimetype
67
67
  assert_raise(ZipContainer::MalformedContainerError) do
68
- ZipContainer::Container.verify!($compressed_mimetype)
68
+ ZipContainer::File.verify!($compressed_mimetype)
69
69
  end
70
70
 
71
- refute(ZipContainer::Container.verify($compressed_mimetype))
71
+ refute(ZipContainer::File.verify($compressed_mimetype))
72
72
  end
73
73
 
74
74
  # Check the raw mimetype bytes
@@ -83,8 +83,8 @@ class TestRead < Test::Unit::TestCase
83
83
  # Check reading files out of a container file and make sure we don't change
84
84
  # it.
85
85
  def test_read_files_from_container
86
- assert_nothing_raised(ZipContainer::MalformedContainerError, Zip::ZipError) do
87
- ZipContainer::Container.open($example) do |c|
86
+ assert_nothing_raised(ZipContainer::MalformedContainerError, ZipContainer::ZipError) do
87
+ ZipContainer::File.open($example) do |c|
88
88
  assert(c.on_disk?)
89
89
  refute(c.in_memory?)
90
90
 
@@ -34,7 +34,7 @@ require 'test/unit'
34
34
  require 'zip-container'
35
35
 
36
36
  # A class to test the overriding of reserved and managed names.
37
- class NewZipContainer < ZipContainer::Container
37
+ class NewZipContainer < ZipContainer::File
38
38
 
39
39
  private_class_method :new
40
40
 
@@ -66,7 +66,7 @@ class TestReservedNames < Test::Unit::TestCase
66
66
  # Check the reserved names stuff all works correctly, baring in mind that
67
67
  # such comparisons for ZipContainer file should be case sensitive.
68
68
  def test_reserved_names
69
- ZipContainer::Container.open($example) do |c|
69
+ ZipContainer::File.open($example) do |c|
70
70
  assert_equal(1, c.reserved_names.length)
71
71
  assert_equal(["mimetype"], c.reserved_names)
72
72
 
@@ -129,7 +129,7 @@ class TestReservedNames < Test::Unit::TestCase
129
129
 
130
130
  # Check that nothing happens when trying to delete the mimetype file.
131
131
  def test_delete_mimetype
132
- ZipContainer::Container.open($example) do |c|
132
+ ZipContainer::File.open($example) do |c|
133
133
  assert(c.file.exists?("mimetype"))
134
134
  assert_nil(c.remove("mimetype"))
135
135
  assert(c.file.exists?("mimetype"))
@@ -138,7 +138,7 @@ class TestReservedNames < Test::Unit::TestCase
138
138
 
139
139
  # Check that nothing happens when trying to rename the mimetype file.
140
140
  def test_rename_mimetype
141
- ZipContainer::Container.open($example) do |c|
141
+ ZipContainer::File.open($example) do |c|
142
142
  assert(c.file.exists?("mimetype"))
143
143
  assert_nil(c.rename("mimetype", "something-else"))
144
144
  assert(c.file.exists?("mimetype"))
@@ -149,7 +149,7 @@ class TestReservedNames < Test::Unit::TestCase
149
149
  # Check that nothing happens when trying to replace the contents of the
150
150
  # mimetype file.
151
151
  def test_replace_mimetype
152
- ZipContainer::Container.open($example) do |c|
152
+ ZipContainer::File.open($example) do |c|
153
153
  assert(c.file.exists?("mimetype"))
154
154
  assert_nil(c.replace("mimetype", $zip_empty))
155
155
  assert_equal("application/epub+zip", c.file.read("mimetype"))
@@ -159,7 +159,7 @@ class TestReservedNames < Test::Unit::TestCase
159
159
  # Check that an exception is raised when trying to add file with a reserved
160
160
  # name.
161
161
  def test_add_reserved
162
- ZipContainer::Container.open($empty) do |c|
162
+ ZipContainer::File.open($empty) do |c|
163
163
  assert_raises(ZipContainer::ReservedNameClashError) do
164
164
  c.add("mimetype", $zip_empty)
165
165
  end
@@ -191,7 +191,7 @@ class TestReservedNames < Test::Unit::TestCase
191
191
  # Check that the META-INF directory is detected as non-existent when trying
192
192
  # to delete it.
193
193
  def test_delete_metainf
194
- ZipContainer::Container.open($example) do |c|
194
+ ZipContainer::File.open($example) do |c|
195
195
  assert_raises(Errno::ENOENT) do
196
196
  c.remove("META-INF")
197
197
  end
@@ -201,7 +201,7 @@ class TestReservedNames < Test::Unit::TestCase
201
201
  # Check that the META-INF directory is detected as non-existent when trying
202
202
  # to rename it.
203
203
  def test_rename_metainf
204
- ZipContainer::Container.open($example) do |c|
204
+ ZipContainer::File.open($example) do |c|
205
205
  assert_raises(Errno::ENOENT) do
206
206
  c.rename("META-INF", "something-else")
207
207
  end
@@ -211,7 +211,7 @@ class TestReservedNames < Test::Unit::TestCase
211
211
  # Check that an exception is raised when trying to create a directory with a
212
212
  # reserved name.
213
213
  def test_mkdir_reserved
214
- ZipContainer::Container.open($empty) do |c|
214
+ ZipContainer::File.open($empty) do |c|
215
215
  assert_raises(ZipContainer::ReservedNameClashError) do
216
216
  c.mkdir("mimetype")
217
217
  end
@@ -246,7 +246,7 @@ class TestReservedNames < Test::Unit::TestCase
246
246
 
247
247
  # Check that a file cannot be renamed to one of the reserved names.
248
248
  def test_rename_to_reserved
249
- ZipContainer::Container.open($example) do |c|
249
+ ZipContainer::File.open($example) do |c|
250
250
  assert_raises(ZipContainer::ReservedNameClashError) do
251
251
  c.rename("dir/code.rb", "mimetype")
252
252
  end
@@ -270,7 +270,7 @@ class TestReservedNames < Test::Unit::TestCase
270
270
  # Check that the ruby-like File and Dir classes respect reserved and managed
271
271
  # names.
272
272
  def test_file_dir_ops_reserved
273
- ZipContainer::Container.open($empty) do |c|
273
+ ZipContainer::File.open($empty) do |c|
274
274
  assert_raises(ZipContainer::ReservedNameClashError) do
275
275
  c.file.open("mimetype", "w") do |f|
276
276
  f.puts "TESTING"
data/test/tc_util.rb ADDED
@@ -0,0 +1,67 @@
1
+ # Copyright (c) 2014 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ require 'test/unit'
34
+ require 'zip-container'
35
+
36
+ class Util
37
+ include ZipContainer::Util
38
+ end
39
+
40
+ class TestUtil < Test::Unit::TestCase
41
+
42
+ def setup
43
+ @util = Util.new
44
+ end
45
+
46
+ def test_entry_name_strings
47
+ assert_equal("test", @util.entry_name("test"))
48
+ assert_equal("test", @util.entry_name("test/"))
49
+ assert_equal("test/test", @util.entry_name("test/test"))
50
+ assert_equal("test/test", @util.entry_name("test/test/"))
51
+ end
52
+
53
+ def test_entry_name_entries
54
+ assert_equal("test", @util.entry_name(Zip::Entry.new("fake.zip", "test")))
55
+ assert_equal("test", @util.entry_name(Zip::Entry.new("fake.zip", "test/")))
56
+ assert_equal("test/test",
57
+ @util.entry_name(Zip::Entry.new("fake.zip", "test/test")))
58
+ assert_equal("test/test",
59
+ @util.entry_name(Zip::Entry.new("fake.zip", "test/test/")))
60
+ end
61
+
62
+ def test_entry_name_odd_things
63
+ uri = URI.parse("http://www.example.com/path")
64
+ assert_equal(uri, @util.entry_name(uri))
65
+ end
66
+
67
+ end
data/test/ts_container.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013 The University of Manchester, UK.
1
+ # Copyright (c) 2013, 2014 The University of Manchester, UK.
2
2
  #
3
3
  # All rights reserved.
4
4
  #
@@ -42,8 +42,11 @@ $empty = "test/data/empty.container"
42
42
  $empty_zip = "test/data/empty.zip"
43
43
  $compressed_mimetype = "test/data/compressed_mimetype.container"
44
44
  $example = "test/data/example.container"
45
+ $subclass = "test/data/subclassed.container"
45
46
 
46
47
  # Run test cases.
48
+ require 'tc_util'
49
+ require 'tc_exceptions'
47
50
  require 'tc_create'
48
51
  require 'tc_read'
49
52
  require 'tc_reserved_names'
data/version.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :major: 1
3
- :minor: 1
2
+ :major: 2
3
+ :minor: 0
4
4
  :patch: 0
@@ -54,10 +54,11 @@ Gem::Specification.new do |s|
54
54
  s.has_rdoc = true
55
55
  s.extra_rdoc_files = [ "Changes.rdoc", "Licence.rdoc", "ReadMe.rdoc" ]
56
56
  s.rdoc_options = [ "-N", "--tab-width=2", "--main=ReadMe.rdoc" ]
57
+ s.required_ruby_version = ">= 1.9.3"
57
58
  s.add_development_dependency("rake", "~> 10.0.4")
58
59
  s.add_development_dependency("bundler", "~> 1.5")
59
60
  s.add_development_dependency("rdoc", "~> 4.0.1")
60
61
  s.add_development_dependency('coveralls')
61
- s.add_runtime_dependency("rubyzip", "~> 1.1.4")
62
+ s.add_runtime_dependency("rubyzip", "~> 1.1.6")
62
63
  end
63
64
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zip-container
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Haines
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-18 00:00:00.000000000 Z
11
+ date: 2014-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - ~>
74
74
  - !ruby/object:Gem::Version
75
- version: 1.1.4
75
+ version: 1.1.6
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ~>
81
81
  - !ruby/object:Gem::Version
82
- version: 1.1.4
82
+ version: 1.1.6
83
83
  description: A Ruby library for working with ZIP Container Format files. See http://www.idpf.org/epub/30/spec/epub30-ocf.html
84
84
  for the OCF specification and https://learn.adobe.com/wiki/display/PDFNAV/Universal+Container+Format
85
85
  for the UCF specification.
@@ -105,23 +105,28 @@ files:
105
105
  - examples/verify-zip-container
106
106
  - examples/zip-container-info
107
107
  - lib/zip-container.rb
108
- - lib/zip-container/container.rb
109
108
  - lib/zip-container/entries/directory.rb
110
109
  - lib/zip-container/entries/entry.rb
111
110
  - lib/zip-container/entries/file.rb
112
111
  - lib/zip-container/entries/managed.rb
113
112
  - lib/zip-container/entries/reserved.rb
114
113
  - lib/zip-container/exceptions.rb
114
+ - lib/zip-container/file.rb
115
+ - lib/zip-container/util.rb
115
116
  - lib/zip-container/version.rb
116
117
  - test/data/compressed_mimetype.container
117
118
  - test/data/empty.container
118
119
  - test/data/empty.zip
119
120
  - test/data/example.container
120
121
  - test/data/null.file
122
+ - test/data/subclassed.container
123
+ - test/helpers/entry_lists.rb
121
124
  - test/tc_create.rb
125
+ - test/tc_exceptions.rb
122
126
  - test/tc_managed_entries.rb
123
127
  - test/tc_read.rb
124
128
  - test/tc_reserved_names.rb
129
+ - test/tc_util.rb
125
130
  - test/ts_container.rb
126
131
  - version.yml
127
132
  - zip-container.gemspec
@@ -140,7 +145,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
145
  requirements:
141
146
  - - ! '>='
142
147
  - !ruby/object:Gem::Version
143
- version: '0'
148
+ version: 1.9.3
144
149
  required_rubygems_version: !ruby/object:Gem::Requirement
145
150
  requirements:
146
151
  - - ! '>='
@@ -158,8 +163,12 @@ test_files:
158
163
  - test/data/empty.zip
159
164
  - test/data/example.container
160
165
  - test/data/null.file
166
+ - test/data/subclassed.container
167
+ - test/helpers/entry_lists.rb
161
168
  - test/tc_create.rb
169
+ - test/tc_exceptions.rb
162
170
  - test/tc_managed_entries.rb
163
171
  - test/tc_read.rb
164
172
  - test/tc_reserved_names.rb
173
+ - test/tc_util.rb
165
174
  - test/ts_container.rb