mime-types 1.15

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.
@@ -0,0 +1,275 @@
1
+ #! /usr/bin/env ruby
2
+ #--
3
+ # MIME::Types for Ruby
4
+ # http://rubyforge.org/projects/mime-types/
5
+ # Copyright 2003 - 2005 Austin Ziegler.
6
+ # Licensed under a MIT-style licence.
7
+ #
8
+ # $Id: tc_mime_type.rb,v 1.2 2006/02/12 21:27:22 austin Exp $
9
+ #++
10
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
11
+
12
+ require 'mime/types'
13
+ require 'test/unit'
14
+
15
+ class Test_MIME__Type < Test::Unit::TestCase #:nodoc:
16
+ def setup
17
+ @zip = MIME::Type.new('x-appl/x-zip') { |t| t.extensions = ['zip', 'zp'] }
18
+ end
19
+
20
+ def test_CMP # '<=>'
21
+ assert(MIME::Type.new('text/plain') == MIME::Type.new('text/plain'))
22
+ assert(MIME::Type.new('text/plain') != MIME::Type.new('image/jpeg'))
23
+ assert(MIME::Type.new('text/plain') == 'text/plain')
24
+ assert(MIME::Type.new('text/plain') != 'image/jpeg')
25
+ assert(MIME::Type.new('text/plain') > MIME::Type.new('text/html'))
26
+ assert(MIME::Type.new('text/plain') > 'text/html')
27
+ assert(MIME::Type.new('text/html') < MIME::Type.new('text/plain'))
28
+ assert(MIME::Type.new('text/html') < 'text/plain')
29
+ assert('text/html' == MIME::Type.new('text/html'))
30
+ assert('text/html' < MIME::Type.new('text/plain'))
31
+ assert('text/plain' > MIME::Type.new('text/html'))
32
+ end
33
+
34
+ def test_ascii?
35
+ assert(MIME::Type.new('text/plain').ascii?)
36
+ assert(!MIME::Type.new('image/jpeg').ascii?)
37
+ assert(!MIME::Type.new('application/x-msword').ascii?)
38
+ assert(MIME::Type.new('text/vCard').ascii?)
39
+ assert(!MIME::Type.new('application/pkcs7-mime').ascii?)
40
+ assert(!@zip.ascii?)
41
+ end
42
+
43
+ def test_binary?
44
+ assert(!MIME::Type.new('text/plain').binary?)
45
+ assert(MIME::Type.new('image/jpeg').binary?)
46
+ assert(MIME::Type.new('application/x-msword').binary?)
47
+ assert(!MIME::Type.new('text/vCard').binary?)
48
+ assert(MIME::Type.new('application/pkcs7-mime').binary?)
49
+ assert(@zip.binary?)
50
+ end
51
+
52
+ def test_complete?
53
+ assert_nothing_raised do
54
+ @yaml = MIME::Type.from_array('text/x-yaml', ['yaml', 'yml'], '8bit',
55
+ 'linux')
56
+ end
57
+ assert(@yaml.complete?)
58
+ assert_nothing_raised { @yaml.extensions = nil }
59
+ assert(!@yaml.complete?)
60
+ end
61
+
62
+ def test_content_type
63
+ assert_equal(MIME::Type.new('text/plain').content_type, 'text/plain')
64
+ assert_equal(MIME::Type.new('image/jpeg').content_type, 'image/jpeg')
65
+ assert_equal(MIME::Type.new('application/x-msword').content_type, 'application/x-msword')
66
+ assert_equal(MIME::Type.new('text/vCard').content_type, 'text/vCard')
67
+ assert_equal(MIME::Type.new('application/pkcs7-mime').content_type, 'application/pkcs7-mime')
68
+ assert_equal(@zip.content_type, 'x-appl/x-zip');
69
+ end
70
+
71
+ def test_encoding
72
+ assert_equal(MIME::Type.new('text/plain').encoding, 'quoted-printable')
73
+ assert_equal(MIME::Type.new('image/jpeg').encoding, 'base64')
74
+ assert_equal(MIME::Type.new('application/x-msword').encoding, 'base64')
75
+ assert_equal(MIME::Type.new('text/vCard').encoding, 'quoted-printable')
76
+ assert_equal(MIME::Type.new('application/pkcs7-mime').encoding, 'base64')
77
+ assert_nothing_raised do
78
+ @yaml = MIME::Type.from_array('text/x-yaml', ['yaml', 'yml'], '8bit',
79
+ 'linux')
80
+ end
81
+ assert_equal(@yaml.encoding, '8bit')
82
+ assert_nothing_raised { @yaml.encoding = 'base64' }
83
+ assert_equal(@yaml.encoding, 'base64')
84
+ assert_nothing_raised { @yaml.encoding = :default }
85
+ assert_equal(@yaml.encoding, 'quoted-printable')
86
+ assert_raises(ArgumentError) { @yaml.encoding = 'binary' }
87
+ assert_equal(@zip.encoding, 'base64')
88
+ end
89
+
90
+ def test_eql?
91
+ assert(MIME::Type.new('text/plain').eql?(MIME::Type.new('text/plain')))
92
+ assert(!MIME::Type.new('text/plain').eql?(MIME::Type.new('image/jpeg')))
93
+ assert(!MIME::Type.new('text/plain').eql?('text/plain'))
94
+ assert(!MIME::Type.new('text/plain').eql?('image/jpeg'))
95
+ end
96
+
97
+ def test_extensions
98
+ assert_nothing_raised do
99
+ @yaml = MIME::Type.from_array('text/x-yaml', ['yaml', 'yml'], '8bit',
100
+ 'linux')
101
+ end
102
+ assert_equal(@yaml.extensions, ['yaml', 'yml'])
103
+ assert_nothing_raised { @yaml.extensions = 'yaml' }
104
+ assert_equal(@yaml.extensions, ['yaml'])
105
+ assert_equal(@zip.extensions.size, 2)
106
+ assert_equal(@zip.extensions, ['zip', 'zp'])
107
+ end
108
+
109
+ def test_like?
110
+ assert(MIME::Type.new('text/plain').like?(MIME::Type.new('text/plain')))
111
+ assert(MIME::Type.new('text/plain').like?(MIME::Type.new('text/x-plain')))
112
+ assert(!MIME::Type.new('text/plain').like?(MIME::Type.new('image/jpeg')))
113
+ assert(MIME::Type.new('text/plain').like?('text/plain'))
114
+ assert(MIME::Type.new('text/plain').like?('text/x-plain'))
115
+ assert(!MIME::Type.new('text/plain').like?('image/jpeg'))
116
+ end
117
+
118
+ def test_media_type
119
+ assert_equal(MIME::Type.new('text/plain').media_type, 'text')
120
+ assert_equal(MIME::Type.new('image/jpeg').media_type, 'image')
121
+ assert_equal(MIME::Type.new('application/x-msword').media_type, 'application')
122
+ assert_equal(MIME::Type.new('text/vCard').media_type, 'text')
123
+ assert_equal(MIME::Type.new('application/pkcs7-mime').media_type, 'application')
124
+ assert_equal(MIME::Type.new('x-chemical/x-pdb').media_type, 'chemical')
125
+ assert_equal(@zip.media_type, 'appl')
126
+ end
127
+
128
+ def test_platform?
129
+ assert_nothing_raised do
130
+ @yaml = MIME::Type.from_array('text/x-yaml', ['yaml', 'yml'], '8bit',
131
+ 'oddbox')
132
+ end
133
+ assert(!@yaml.platform?)
134
+ assert_nothing_raised { @yaml.system = nil }
135
+ assert(!@yaml.platform?)
136
+ assert_nothing_raised { @yaml.system = /#{RUBY_PLATFORM}/ }
137
+ assert(@yaml.platform?)
138
+ end
139
+
140
+ def test_raw_media_type
141
+ assert_equal(MIME::Type.new('text/plain').raw_media_type, 'text')
142
+ assert_equal(MIME::Type.new('image/jpeg').raw_media_type, 'image')
143
+ assert_equal(MIME::Type.new('application/x-msword').raw_media_type, 'application')
144
+ assert_equal(MIME::Type.new('text/vCard').raw_media_type, 'text')
145
+ assert_equal(MIME::Type.new('application/pkcs7-mime').raw_media_type, 'application')
146
+
147
+ assert_equal(MIME::Type.new('x-chemical/x-pdb').raw_media_type, 'x-chemical')
148
+ assert_equal(@zip.raw_media_type, 'x-appl')
149
+ end
150
+
151
+ def test_raw_sub_type
152
+ assert_equal(MIME::Type.new('text/plain').raw_sub_type, 'plain')
153
+ assert_equal(MIME::Type.new('image/jpeg').raw_sub_type, 'jpeg')
154
+ assert_equal(MIME::Type.new('application/x-msword').raw_sub_type, 'x-msword')
155
+ assert_equal(MIME::Type.new('text/vCard').raw_sub_type, 'vCard')
156
+ assert_equal(MIME::Type.new('application/pkcs7-mime').raw_sub_type, 'pkcs7-mime')
157
+ assert_equal(@zip.raw_sub_type, 'x-zip')
158
+ end
159
+
160
+ def test_registered?
161
+ assert(MIME::Type.new('text/plain').registered?)
162
+ assert(MIME::Type.new('image/jpeg').registered?)
163
+ assert(!MIME::Type.new('application/x-msword').registered?)
164
+ assert(MIME::Type.new('text/vCard').registered?)
165
+ assert(MIME::Type.new('application/pkcs7-mime').registered?)
166
+ assert(!@zip.registered?)
167
+ end
168
+
169
+ def test_signature?
170
+ assert(!MIME::Type.new('text/plain').signature?)
171
+ assert(!MIME::Type.new('image/jpeg').signature?)
172
+ assert(!MIME::Type.new('application/x-msword').signature?)
173
+ assert(MIME::Type.new('text/vCard').signature?)
174
+ assert(MIME::Type.new('application/pkcs7-mime').signature?)
175
+ end
176
+
177
+ def test_simplified
178
+ assert_equal(MIME::Type.new('text/plain').simplified, 'text/plain')
179
+ assert_equal(MIME::Type.new('image/jpeg').simplified, 'image/jpeg')
180
+ assert_equal(MIME::Type.new('application/x-msword').simplified, 'application/msword')
181
+ assert_equal(MIME::Type.new('text/vCard').simplified, 'text/vcard')
182
+ assert_equal(MIME::Type.new('application/pkcs7-mime').simplified, 'application/pkcs7-mime')
183
+ assert_equal(MIME::Type.new('x-chemical/x-pdb').simplified, 'chemical/pdb')
184
+ end
185
+
186
+ def test_sub_type
187
+ assert_equal(MIME::Type.new('text/plain').sub_type, 'plain')
188
+ assert_equal(MIME::Type.new('image/jpeg').sub_type, 'jpeg')
189
+ assert_equal(MIME::Type.new('application/x-msword').sub_type, 'msword')
190
+ assert_equal(MIME::Type.new('text/vCard').sub_type, 'vcard')
191
+ assert_equal(MIME::Type.new('application/pkcs7-mime').sub_type, 'pkcs7-mime')
192
+ assert_equal(@zip.sub_type, 'zip')
193
+ end
194
+
195
+ def test_system
196
+ assert_nothing_raised do
197
+ @yaml = MIME::Type.from_array('text/x-yaml', ['yaml', 'yml'], '8bit',
198
+ 'linux')
199
+ end
200
+ assert_equal(@yaml.system, %r{linux})
201
+ assert_nothing_raised { @yaml.system = /win32/ }
202
+ assert_equal(@yaml.system, %r{win32})
203
+ assert_nothing_raised { @yaml.system = nil }
204
+ assert_nil(@yaml.system)
205
+ end
206
+
207
+ def test_system?
208
+ assert_nothing_raised do
209
+ @yaml = MIME::Type.from_array('text/x-yaml', ['yaml', 'yml'], '8bit',
210
+ 'linux')
211
+ end
212
+ assert(@yaml.system?)
213
+ assert_nothing_raised { @yaml.system = nil }
214
+ assert(!@yaml.system?)
215
+ end
216
+
217
+ def test_to_a
218
+ assert_nothing_raised do
219
+ @yaml = MIME::Type.from_array('text/x-yaml', ['yaml', 'yml'], '8bit',
220
+ 'linux')
221
+ end
222
+ assert_equal(@yaml.to_a, ['text/x-yaml', ['yaml', 'yml'], '8bit',
223
+ /linux/, nil, nil, nil, false])
224
+ end
225
+
226
+ def test_to_hash
227
+ assert_nothing_raised do
228
+ @yaml = MIME::Type.from_array('text/x-yaml', ['yaml', 'yml'], '8bit',
229
+ 'linux')
230
+ end
231
+ assert_equal(@yaml.to_hash,
232
+ { 'Content-Type' => 'text/x-yaml',
233
+ 'Content-Transfer-Encoding' => '8bit',
234
+ 'Extensions' => ['yaml', 'yml'],
235
+ 'System' => /linux/,
236
+ 'Registered' => false,
237
+ 'URL' => nil,
238
+ 'Obsolete' => nil,
239
+ 'Docs' => nil })
240
+ end
241
+
242
+ def test_to_s
243
+ assert_equal("#{MIME::Type.new('text/plain')}", 'text/plain')
244
+ end
245
+
246
+ def test_s_constructors
247
+ assert_not_nil(@zip)
248
+ yaml = MIME::Type.from_array('text/x-yaml', ['yaml', 'yml'], '8bit',
249
+ 'linux')
250
+ assert_instance_of(MIME::Type, yaml)
251
+ yaml = MIME::Type.from_hash('Content-Type' => 'text/x-yaml',
252
+ 'Content-Transfer-Encoding' => '8bit',
253
+ 'System' => 'linux',
254
+ 'Extensions' => ['yaml', 'yml'])
255
+ assert_instance_of(MIME::Type, yaml)
256
+ yaml = MIME::Type.new('text/x-yaml') do |y|
257
+ y.extensions = ['yaml', 'yml']
258
+ y.encoding = '8bit'
259
+ y.system = 'linux'
260
+ end
261
+ assert_instance_of(MIME::Type, yaml)
262
+ assert_raises(MIME::InvalidContentType) { MIME::Type.new('apps') }
263
+ assert_raises(MIME::InvalidContentType) { MIME::Type.new(nil) }
264
+ end
265
+
266
+ def test_s_simplified
267
+ assert_equal(MIME::Type.simplified('text/plain'), 'text/plain')
268
+ assert_equal(MIME::Type.simplified('image/jpeg'), 'image/jpeg')
269
+ assert_equal(MIME::Type.simplified('application/x-msword'), 'application/msword')
270
+ assert_equal(MIME::Type.simplified('text/vCard'), 'text/vcard')
271
+ assert_equal(MIME::Type.simplified('application/pkcs7-mime'), 'application/pkcs7-mime')
272
+ assert_equal(@zip.simplified, 'appl/zip')
273
+ assert_equal(MIME::Type.simplified('x-xyz/abc'), 'xyz/abc')
274
+ end
275
+ end
@@ -0,0 +1,77 @@
1
+ #! /usr/bin/env ruby
2
+ #--
3
+ # MIME::Types for Ruby
4
+ # http://rubyforge.org/projects/mime-types/
5
+ # Copyright 2003 - 2005 Austin Ziegler.
6
+ # Licensed under a MIT-style licence.
7
+ #
8
+ # $Id: tc_mime_types.rb,v 1.2 2006/02/12 21:27:22 austin Exp $
9
+ #++
10
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
11
+
12
+ require 'mime/types'
13
+ require 'test/unit'
14
+
15
+ class TestMIME__Types < Test::Unit::TestCase #:nodoc:
16
+ def test_s_AREF # singleton method '[]'
17
+ text_plain = MIME::Type.new('text/plain') do |t|
18
+ t.encoding = '8bit'
19
+ t.extensions = ['asc', 'txt', 'c', 'cc', 'h', 'hh', 'cpp', 'hpp',
20
+ 'dat', 'hlp']
21
+ end
22
+ text_plain_vms = MIME::Type.new('text/plain') do |t|
23
+ t.encoding = '8bit'
24
+ t.extensions = ['doc']
25
+ t.system = 'vms'
26
+ end
27
+ text_vnd_fly = MIME::Type.new('text/vnd.fly')
28
+ assert_equal(MIME::Types['text/plain'].sort,
29
+ [text_plain, text_plain_vms].sort)
30
+
31
+ tst_bmp = MIME::Types["image/x-bmp"] +
32
+ MIME::Types["image/vnd.wap.wbmp"] + MIME::Types["image/x-win-bmp"]
33
+
34
+ assert_equal(tst_bmp.sort, MIME::Types[/bmp$/].sort)
35
+ assert_nothing_raised {
36
+ MIME::Types['image/bmp'][0].system = RUBY_PLATFORM
37
+ }
38
+ assert_equal([MIME::Type.from_array('image/x-bmp', ['bmp'])],
39
+ MIME::Types[/bmp$/, { :platform => true }])
40
+
41
+ assert(MIME::Types['text/vnd.fly', { :complete => true }].empty?)
42
+ assert(!MIME::Types['text/plain', { :complete => true} ].empty?)
43
+ end
44
+
45
+ def test_s_add
46
+ assert_nothing_raised do
47
+ @eruby = MIME::Type.new("application/x-eruby") do |t|
48
+ t.extensions = "rhtml"
49
+ t.encoding = "8bit"
50
+ end
51
+
52
+ MIME::Types.add(@eruby)
53
+ end
54
+
55
+ assert_equal(MIME::Types['application/x-eruby'], [@eruby])
56
+ end
57
+
58
+ def test_s_type_for
59
+ assert_equal(MIME::Types.type_for('xml').sort, [ MIME::Types['text/xml'], MIME::Types['application/xml'] ].sort)
60
+ assert_equal(MIME::Types.type_for('gif'), MIME::Types['image/gif'])
61
+ assert_nothing_raised do
62
+ MIME::Types['image/gif'][0].system = RUBY_PLATFORM
63
+ end
64
+ assert_equal(MIME::Types.type_for('gif', true), MIME::Types['image/gif'])
65
+ assert(MIME::Types.type_for('zzz').empty?)
66
+ end
67
+
68
+ def test_s_of
69
+ assert_equal(MIME::Types.of('xml').sort, [ MIME::Types['text/xml'], MIME::Types['application/xml'] ].sort)
70
+ assert_equal(MIME::Types.of('gif'), MIME::Types['image/gif'])
71
+ assert_nothing_raised do
72
+ MIME::Types['image/gif'][0].system = RUBY_PLATFORM
73
+ end
74
+ assert_equal(MIME::Types.of('gif', true), MIME::Types['image/gif'])
75
+ assert(MIME::Types.of('zzz').empty?)
76
+ end
77
+ end
@@ -0,0 +1,18 @@
1
+ #! /usr/bin/env ruby
2
+ #--
3
+ # MIME::Types for Ruby
4
+ # http://rubyforge.org/projects/mime-types/
5
+ # Copyright 2003 - 2005 Austin Ziegler.
6
+ # Licensed under a MIT-style licence.
7
+ #
8
+ # $Id: testall.rb,v 1.1 2005/07/08 11:58:06 austin Exp $
9
+ #++
10
+
11
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib") if __FILE__ == $0
12
+
13
+ puts "Checking for test cases:"
14
+ Dir['tc_*.rb'].each do |testcase|
15
+ puts "\t#{testcase}"
16
+ require testcase
17
+ end
18
+ puts
metadata ADDED
@@ -0,0 +1,61 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.11
3
+ specification_version: 1
4
+ name: mime-types
5
+ version: !ruby/object:Gem::Version
6
+ version: "1.15"
7
+ date: 2006-02-12 00:00:00 -05:00
8
+ summary: Manages a MIME Content-Type that will return the Content-Type for a given filename.
9
+ require_paths:
10
+ - lib
11
+ email: austin@rubyforge.org
12
+ homepage: http://mime-types.rubyforge.org/
13
+ rubyforge_project: mime-types
14
+ description: "This library allows for the identification of a file's likely MIME content type.
15
+ This is release 1.15. The identification of MIME content type is based on a
16
+ file's filename extensions."
17
+ autorequire:
18
+ default_executable:
19
+ bindir: bin
20
+ has_rdoc: true
21
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
22
+ requirements:
23
+ -
24
+ - ">"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.0.0
27
+ version:
28
+ platform: ruby
29
+ signing_key:
30
+ cert_chain:
31
+ authors:
32
+ - Austin Ziegler
33
+ files:
34
+ - lib/mime
35
+ - lib/mime/types.rb
36
+ - tests/tc_mime_type.rb
37
+ - tests/tc_mime_types.rb
38
+ - tests/testall.rb
39
+ - ChangeLog
40
+ - README
41
+ - LICENCE
42
+ - setup.rb
43
+ - Rakefile
44
+ - pre-setup.rb
45
+ - Install
46
+ test_files:
47
+ - tests/testall.rb
48
+ rdoc_options:
49
+ - "--title"
50
+ - MIME::Types
51
+ - "--main"
52
+ - README
53
+ - "--line-numbers"
54
+ extra_rdoc_files:
55
+ - README
56
+ - ChangeLog
57
+ - Install
58
+ executables: []
59
+ extensions: []
60
+ requirements: []
61
+ dependencies: []