paperclip 4.1.1 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of paperclip might be problematic. Click here for more details.

Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -6
  3. data/.travis.yml +4 -13
  4. data/Appraisals +0 -10
  5. data/CONTRIBUTING.md +10 -5
  6. data/Gemfile +8 -4
  7. data/NEWS +1 -1
  8. data/README.md +51 -10
  9. data/Rakefile +6 -8
  10. data/features/basic_integration.feature +5 -5
  11. data/features/step_definitions/attachment_steps.rb +4 -4
  12. data/features/step_definitions/rails_steps.rb +4 -4
  13. data/features/step_definitions/web_steps.rb +2 -2
  14. data/features/support/env.rb +2 -2
  15. data/features/support/fixtures/gemfile.txt +1 -1
  16. data/features/support/rails.rb +2 -1
  17. data/gemfiles/3.2.gemfile +5 -3
  18. data/gemfiles/4.0.gemfile +5 -3
  19. data/gemfiles/4.1.gemfile +5 -3
  20. data/lib/generators/paperclip/paperclip_generator.rb +0 -2
  21. data/lib/generators/paperclip/templates/paperclip_migration.rb.erb +1 -1
  22. data/lib/paperclip.rb +4 -1
  23. data/lib/paperclip/attachment.rb +90 -29
  24. data/lib/paperclip/content_type_detector.rb +1 -1
  25. data/lib/paperclip/geometry_detector_factory.rb +3 -1
  26. data/lib/paperclip/has_attached_file.rb +2 -1
  27. data/lib/paperclip/interpolations.rb +8 -0
  28. data/lib/paperclip/io_adapters/abstract_adapter.rb +1 -1
  29. data/lib/paperclip/io_adapters/data_uri_adapter.rb +1 -1
  30. data/lib/paperclip/io_adapters/stringio_adapter.rb +5 -11
  31. data/lib/paperclip/locales/de.yml +18 -0
  32. data/lib/paperclip/locales/es.yml +18 -0
  33. data/lib/paperclip/matchers/have_attached_file_matcher.rb +2 -1
  34. data/lib/paperclip/matchers/validate_attachment_presence_matcher.rb +2 -1
  35. data/lib/paperclip/matchers/validate_attachment_size_matcher.rb +2 -1
  36. data/lib/paperclip/media_type_spoof_detector.rb +10 -2
  37. data/lib/paperclip/storage/filesystem.rb +1 -1
  38. data/lib/paperclip/storage/s3.rb +26 -4
  39. data/lib/paperclip/style.rb +1 -1
  40. data/lib/paperclip/thumbnail.rb +6 -6
  41. data/lib/paperclip/validators.rb +5 -3
  42. data/lib/paperclip/validators/attachment_size_validator.rb +7 -3
  43. data/lib/paperclip/version.rb +1 -1
  44. data/lib/tasks/paperclip.rake +1 -2
  45. data/paperclip.gemspec +5 -3
  46. data/shoulda_macros/paperclip.rb +0 -1
  47. data/{test → spec}/database.yml +0 -0
  48. data/spec/paperclip/attachment_definitions_spec.rb +13 -0
  49. data/{test/attachment_processing_test.rb → spec/paperclip/attachment_processing_spec.rb} +20 -21
  50. data/{test/attachment_registry_test.rb → spec/paperclip/attachment_registry_spec.rb} +10 -11
  51. data/{test/attachment_test.rb → spec/paperclip/attachment_spec.rb} +367 -360
  52. data/{test/content_type_detector_test.rb → spec/paperclip/content_type_detector_spec.rb} +8 -8
  53. data/{test/file_command_content_type_detector_test.rb → spec/paperclip/file_command_content_type_detector_spec.rb} +5 -5
  54. data/spec/paperclip/filename_cleaner_spec.rb +14 -0
  55. data/spec/paperclip/geometry_detector_spec.rb +39 -0
  56. data/{test/geometry_parser_test.rb → spec/paperclip/geometry_parser_spec.rb} +27 -27
  57. data/{test/geometry_test.rb → spec/paperclip/geometry_spec.rb} +49 -51
  58. data/{test/has_attached_file_test.rb → spec/paperclip/has_attached_file_spec.rb} +18 -27
  59. data/{test/integration_test.rb → spec/paperclip/integration_spec.rb} +134 -126
  60. data/{test/interpolations_test.rb → spec/paperclip/interpolations_spec.rb} +54 -40
  61. data/{test/io_adapters/abstract_adapter_test.rb → spec/paperclip/io_adapters/abstract_adapter_spec.rb} +21 -10
  62. data/{test/io_adapters/attachment_adapter_test.rb → spec/paperclip/io_adapters/attachment_adapter_spec.rb} +27 -29
  63. data/{test/io_adapters/data_uri_adapter_test.rb → spec/paperclip/io_adapters/data_uri_adapter_spec.rb} +22 -18
  64. data/spec/paperclip/io_adapters/empty_string_adapter_spec.rb +17 -0
  65. data/{test/io_adapters/file_adapter_test.rb → spec/paperclip/io_adapters/file_adapter_spec.rb} +32 -28
  66. data/{test/io_adapters/http_url_proxy_adapter_test.rb → spec/paperclip/io_adapters/http_url_proxy_adapter_spec.rb} +22 -22
  67. data/spec/paperclip/io_adapters/identity_adapter_spec.rb +8 -0
  68. data/{test/io_adapters/nil_adapter_test.rb → spec/paperclip/io_adapters/nil_adapter_spec.rb} +7 -7
  69. data/{test/io_adapters/registry_test.rb → spec/paperclip/io_adapters/registry_spec.rb} +10 -7
  70. data/{test/io_adapters/stringio_adapter_test.rb → spec/paperclip/io_adapters/stringio_adapter_spec.rb} +16 -17
  71. data/{test/io_adapters/uploaded_file_adapter_test.rb → spec/paperclip/io_adapters/uploaded_file_adapter_spec.rb} +41 -41
  72. data/{test/io_adapters/uri_adapter_test.rb → spec/paperclip/io_adapters/uri_adapter_spec.rb} +22 -22
  73. data/spec/paperclip/matchers/have_attached_file_matcher_spec.rb +19 -0
  74. data/spec/paperclip/matchers/validate_attachment_content_type_matcher_spec.rb +99 -0
  75. data/spec/paperclip/matchers/validate_attachment_presence_matcher_spec.rb +69 -0
  76. data/spec/paperclip/matchers/validate_attachment_size_matcher_spec.rb +88 -0
  77. data/{test/media_type_spoof_detector_test.rb → spec/paperclip/media_type_spoof_detector_spec.rb} +13 -8
  78. data/spec/paperclip/meta_class_spec.rb +30 -0
  79. data/spec/paperclip/paperclip_missing_attachment_styles_spec.rb +84 -0
  80. data/{test/paperclip_test.rb → spec/paperclip/paperclip_spec.rb} +47 -47
  81. data/{test/plural_cache_test.rb → spec/paperclip/plural_cache_spec.rb} +6 -6
  82. data/{test/processor_test.rb → spec/paperclip/processor_spec.rb} +5 -5
  83. data/{test/rake_test.rb → spec/paperclip/rake_spec.rb} +15 -15
  84. data/spec/paperclip/schema_spec.rb +206 -0
  85. data/{test/storage/filesystem_test.rb → spec/paperclip/storage/filesystem_spec.rb} +18 -18
  86. data/{test/storage/fog_test.rb → spec/paperclip/storage/fog_spec.rb} +145 -140
  87. data/spec/paperclip/storage/s3_live_spec.rb +182 -0
  88. data/spec/paperclip/storage/s3_spec.rb +1475 -0
  89. data/spec/paperclip/style_spec.rb +255 -0
  90. data/spec/paperclip/tempfile_factory_spec.rb +29 -0
  91. data/{test/thumbnail_test.rb → spec/paperclip/thumbnail_spec.rb} +107 -107
  92. data/{test/url_generator_test.rb → spec/paperclip/url_generator_spec.rb} +55 -56
  93. data/spec/paperclip/validators/attachment_content_type_validator_spec.rb +322 -0
  94. data/spec/paperclip/validators/attachment_file_name_validator_spec.rb +160 -0
  95. data/{test/validators/attachment_presence_validator_test.rb → spec/paperclip/validators/attachment_presence_validator_spec.rb} +19 -19
  96. data/{test/validators/attachment_size_validator_test.rb → spec/paperclip/validators/attachment_size_validator_spec.rb} +65 -58
  97. data/{test/validators/media_type_spoof_detection_validator_test.rb → spec/paperclip/validators/media_type_spoof_detection_validator_spec.rb} +8 -8
  98. data/spec/paperclip/validators_spec.rb +164 -0
  99. data/spec/spec_helper.rb +40 -0
  100. data/spec/support/assertions.rb +71 -0
  101. data/spec/support/fake_model.rb +21 -0
  102. data/spec/support/fake_rails.rb +12 -0
  103. data/{test → spec/support}/fixtures/12k.png +0 -0
  104. data/{test → spec/support}/fixtures/50x50.png +0 -0
  105. data/{test → spec/support}/fixtures/5k.png +0 -0
  106. data/{test → spec/support}/fixtures/animated +0 -0
  107. data/{test → spec/support}/fixtures/animated.gif +0 -0
  108. data/{test → spec/support}/fixtures/animated.unknown +0 -0
  109. data/{test → spec/support}/fixtures/bad.png +0 -0
  110. data/{test → spec/support}/fixtures/empty.html +0 -0
  111. data/{test → spec/support}/fixtures/fog.yml +0 -0
  112. data/{test → spec/support}/fixtures/rotated.jpg +0 -0
  113. data/{test → spec/support}/fixtures/s3.yml +0 -0
  114. data/spec/support/fixtures/spaced file.jpg +0 -0
  115. data/test/fixtures/spaced file.png b/data/spec/support/fixtures/spaced → file.png +0 -0
  116. data/{test → spec/support}/fixtures/text.txt +0 -0
  117. data/{test → spec/support}/fixtures/twopage.pdf +0 -0
  118. data/{test → spec/support}/fixtures/uppercase.PNG +0 -0
  119. data/spec/support/matchers/accept.rb +5 -0
  120. data/spec/support/matchers/exist.rb +5 -0
  121. data/{test → spec}/support/mock_attachment.rb +0 -0
  122. data/{test → spec}/support/mock_interpolator.rb +0 -0
  123. data/{test → spec}/support/mock_model.rb +0 -0
  124. data/{test → spec}/support/mock_url_generator_builder.rb +0 -0
  125. data/spec/support/model_reconstruction.rb +60 -0
  126. data/spec/support/rails_helpers.rb +7 -0
  127. data/spec/support/test_data.rb +13 -0
  128. data/spec/support/version_helper.rb +9 -0
  129. metadata +256 -210
  130. data/gemfiles/3.0.gemfile +0 -11
  131. data/gemfiles/3.1.gemfile +0 -11
  132. data/test/attachment_definitions_test.rb +0 -13
  133. data/test/filename_cleaner_test.rb +0 -14
  134. data/test/generator_test.rb +0 -84
  135. data/test/geometry_detector_test.rb +0 -24
  136. data/test/helper.rb +0 -239
  137. data/test/io_adapters/empty_string_adapter_test.rb +0 -18
  138. data/test/io_adapters/identity_adapter_test.rb +0 -8
  139. data/test/matchers/have_attached_file_matcher_test.rb +0 -25
  140. data/test/matchers/validate_attachment_content_type_matcher_test.rb +0 -111
  141. data/test/matchers/validate_attachment_presence_matcher_test.rb +0 -70
  142. data/test/matchers/validate_attachment_size_matcher_test.rb +0 -87
  143. data/test/meta_class_test.rb +0 -32
  144. data/test/paperclip_missing_attachment_styles_test.rb +0 -90
  145. data/test/schema_test.rb +0 -206
  146. data/test/storage/s3_live_test.rb +0 -179
  147. data/test/storage/s3_test.rb +0 -1357
  148. data/test/style_test.rb +0 -251
  149. data/test/tempfile_factory_test.rb +0 -29
  150. data/test/validators/attachment_content_type_validator_test.rb +0 -324
  151. data/test/validators/attachment_file_name_validator_test.rb +0 -162
  152. data/test/validators_test.rb +0 -101
@@ -1,11 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "jruby-openssl", :platform=>:jruby
6
- gem "activerecord-jdbcsqlite3-adapter", :platform=>:jruby
7
- gem "pry", :platform=>:ruby
8
- gem "rails", "~> 3.0.20"
9
- gem "paperclip", :path=>"../"
10
-
11
- gemspec :path=>"../"
@@ -1,11 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "jruby-openssl", :platform=>:jruby
6
- gem "activerecord-jdbcsqlite3-adapter", :platform=>:jruby
7
- gem "pry", :platform=>:ruby
8
- gem "rails", "~> 3.1.12"
9
- gem "paperclip", :path=>"../"
10
-
11
- gemspec :path=>"../"
@@ -1,13 +0,0 @@
1
- require './test/helper'
2
-
3
- class AttachmentDefinitionsTest < Test::Unit::TestCase
4
- should 'return all of the attachments on the class' do
5
- reset_class "Dummy"
6
- Dummy.has_attached_file :avatar, {:path => "abc"}
7
- Dummy.has_attached_file :other_attachment, {:url => "123"}
8
- Dummy.do_not_validate_attachment_file_type :avatar
9
- expected = {:avatar => {:path => "abc"}, :other_attachment => {:url => "123"}}
10
-
11
- assert_equal expected, Dummy.attachment_definitions
12
- end
13
- end
@@ -1,14 +0,0 @@
1
- # encoding: utf-8
2
- require './test/helper'
3
-
4
- class FilenameCleanerTest < Test::Unit::TestCase
5
- should 'convert invalid characters to underscores' do
6
- cleaner = Paperclip::FilenameCleaner.new(/[aeiou]/)
7
- assert_equal "b_s_b_ll", cleaner.call("baseball")
8
- end
9
-
10
- should 'not convert anything if the character regex is nil' do
11
- cleaner = Paperclip::FilenameCleaner.new(nil)
12
- assert_equal "baseball", cleaner.call("baseball")
13
- end
14
- end
@@ -1,84 +0,0 @@
1
- require './test/helper'
2
- require 'rails/generators'
3
- require 'generators/paperclip/paperclip_generator'
4
-
5
- class GeneratorTest < Rails::Generators::TestCase
6
- tests PaperclipGenerator
7
- destination File.expand_path("../tmp", File.dirname(__FILE__))
8
- setup :prepare_destination
9
-
10
- context 'running migration' do
11
- context 'with single attachment name' do
12
- setup do
13
- run_generator %w(user avatar)
14
- end
15
-
16
- should 'create a correct migration file' do
17
- assert_migration 'db/migrate/add_attachment_avatar_to_users.rb' do |migration|
18
- assert_match /class AddAttachmentAvatarToUsers/, migration
19
-
20
- assert_class_method :up, migration do |up|
21
- expected = <<-migration
22
- change_table :users do |t|
23
- t.attachment :avatar
24
- end
25
- migration
26
-
27
- assert_equal expected.squish, up.squish
28
- end
29
-
30
- assert_class_method :down, migration do |down|
31
- expected = <<-migration
32
- drop_attached_file :users, :avatar
33
- migration
34
-
35
- assert_equal expected.squish, down.squish
36
- end
37
- end
38
- end
39
- end
40
-
41
- context 'with multiple attachment names' do
42
- setup do
43
- run_generator %w(user avatar photo)
44
- end
45
-
46
- should 'create a correct migration file' do
47
- assert_migration 'db/migrate/add_attachment_avatar_photo_to_users.rb' do |migration|
48
- assert_match /class AddAttachmentAvatarPhotoToUsers/, migration
49
-
50
- assert_class_method :up, migration do |up|
51
- expected = <<-migration
52
- change_table :users do |t|
53
- t.attachment :avatar
54
- t.attachment :photo
55
- end
56
- migration
57
-
58
- assert_equal expected.squish, up.squish
59
- end
60
-
61
- assert_class_method :down, migration do |down|
62
- expected = <<-migration
63
- drop_attached_file :users, :avatar
64
- drop_attached_file :users, :photo
65
- migration
66
-
67
- assert_equal expected.squish, down.squish
68
- end
69
- end
70
- end
71
- end
72
-
73
- context 'without required arguments' do
74
- should 'not create the migration' do
75
- begin
76
- silence_stream(STDERR) { run_generator %w() }
77
- assert_no_migration 'db/migrate/add_attachment_avatar_to_users.rb'
78
- rescue Thor::RequiredArgumentMissingError
79
- # This is also OK. It happens in 1.9.2 and Rails 3.2
80
- end
81
- end
82
- end
83
- end
84
- end
@@ -1,24 +0,0 @@
1
- require './test/helper'
2
-
3
- class GeometryDetectorTest < Test::Unit::TestCase
4
- should 'identify an image and extract its dimensions' do
5
- Paperclip::GeometryParser.stubs(:new).with("434x66,").returns(stub(:make => :correct))
6
- file = fixture_file("5k.png")
7
- factory = Paperclip::GeometryDetector.new(file)
8
-
9
- output = factory.make
10
-
11
- assert_equal :correct, output
12
- end
13
-
14
- should 'identify an image and extract its dimensions and orientation' do
15
- Paperclip::GeometryParser.stubs(:new).with("300x200,6").returns(stub(:make => :correct))
16
- file = fixture_file("rotated.jpg")
17
- factory = Paperclip::GeometryDetector.new(file)
18
-
19
- output = factory.make
20
-
21
- assert_equal :correct, output
22
- end
23
- end
24
-
@@ -1,239 +0,0 @@
1
- require 'rubygems'
2
- require 'tempfile'
3
- require 'pathname'
4
- require 'test/unit'
5
- require 'active_record'
6
- require 'active_record/version'
7
- require 'active_support'
8
- require 'active_support/core_ext'
9
- require 'shoulda'
10
- require 'mocha/setup'
11
- require 'bourne'
12
- require 'shoulda/context'
13
- require 'mime/types'
14
- require 'pathname'
15
- require 'ostruct'
16
-
17
- begin
18
- require 'pry'
19
- rescue LoadError
20
- # Pry is not available, just ignore.
21
- end
22
-
23
- puts "Testing against version #{ActiveRecord::VERSION::STRING}"
24
-
25
- `ruby -e 'exit 0'` # Prime $? with a value.
26
-
27
- begin
28
- require 'ruby-debug'
29
- rescue LoadError
30
- puts "debugger disabled"
31
- end
32
-
33
- ROOT = Pathname(File.expand_path(File.join(File.dirname(__FILE__), '..')))
34
-
35
- $previous_count = 0
36
- class Test::Unit::TestCase
37
- def setup
38
- silence_warnings do
39
- Object.const_set(:Rails, stub('Rails'))
40
- Rails.stubs(:root).returns(Pathname.new(ROOT).join('tmp'))
41
- Rails.stubs(:env).returns('test')
42
- Rails.stubs(:const_defined?).with(:Railtie).returns(false)
43
- ActiveSupport::Deprecation.silenced = true
44
- end
45
- end
46
-
47
- def teardown
48
- end
49
-
50
- def report_files
51
- files = []
52
- ObjectSpace.each_object(IO){|io| files << io unless io.closed? }
53
- if files.count > $previous_count
54
- puts __name__
55
- puts "#{files.count} files"
56
- files.each do |file|
57
- puts "Open IO: #{file.inspect}"
58
- end
59
- end
60
- $previous_count = files.count
61
- end
62
- end
63
-
64
- $LOAD_PATH << File.join(ROOT, 'lib')
65
- $LOAD_PATH << File.join(ROOT, 'lib', 'paperclip')
66
-
67
- require File.join(ROOT, 'lib', 'paperclip.rb')
68
-
69
- require './shoulda_macros/paperclip'
70
-
71
- FIXTURES_DIR = File.join(File.dirname(__FILE__), "fixtures")
72
- config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
73
- ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
74
- ActiveRecord::Base.establish_connection(config['test'])
75
- Paperclip.options[:logger] = ActiveRecord::Base.logger
76
-
77
- def using_protected_attributes?
78
- ActiveRecord::VERSION::MAJOR < 4
79
- end
80
-
81
- def require_everything_in_directory(directory_name)
82
- Dir[File.join(File.dirname(__FILE__), directory_name, '*')].each do |f|
83
- require f
84
- end
85
- end
86
-
87
- require_everything_in_directory('support')
88
-
89
- def reset_class class_name
90
- ActiveRecord::Base.send(:include, Paperclip::Glue)
91
- Object.send(:remove_const, class_name) rescue nil
92
- klass = Object.const_set(class_name, Class.new(ActiveRecord::Base))
93
-
94
- klass.class_eval do
95
- include Paperclip::Glue
96
- end
97
-
98
- klass.reset_column_information
99
- klass.connection_pool.clear_table_cache!(klass.table_name) if klass.connection_pool.respond_to?(:clear_table_cache!)
100
- klass.connection.schema_cache.clear_table_cache!(klass.table_name) if klass.connection.respond_to?(:schema_cache)
101
- klass
102
- end
103
-
104
- def reset_table table_name, &block
105
- block ||= lambda { |table| true }
106
- ActiveRecord::Base.connection.create_table :dummies, {:force => true}, &block
107
- end
108
-
109
- def modify_table table_name, &block
110
- ActiveRecord::Base.connection.change_table :dummies, &block
111
- end
112
-
113
- def rebuild_model options = {}
114
- ActiveRecord::Base.connection.create_table :dummies, :force => true do |table|
115
- table.column :title, :string
116
- table.column :other, :string
117
- table.column :avatar_file_name, :string
118
- table.column :avatar_content_type, :string
119
- table.column :avatar_file_size, :integer
120
- table.column :avatar_updated_at, :datetime
121
- table.column :avatar_fingerprint, :string
122
- end
123
- rebuild_class options
124
- end
125
-
126
- def rebuild_class options = {}
127
- reset_class("Dummy").tap do |klass|
128
- klass.has_attached_file :avatar, options
129
- klass.do_not_validate_attachment_file_type :avatar
130
- Paperclip.reset_duplicate_clash_check!
131
- end
132
- end
133
-
134
- def rebuild_meta_class_of obj, options = {}
135
- (class << obj; self; end).tap do |metaklass|
136
- metaklass.has_attached_file :avatar, options
137
- metaklass.do_not_validate_attachment_file_type :avatar
138
- Paperclip.reset_duplicate_clash_check!
139
- end
140
- end
141
-
142
- class FakeModel
143
- attr_accessor :avatar_file_name,
144
- :avatar_file_size,
145
- :avatar_updated_at,
146
- :avatar_content_type,
147
- :avatar_fingerprint,
148
- :id
149
-
150
- def errors
151
- @errors ||= []
152
- end
153
-
154
- def run_paperclip_callbacks name, *args
155
- end
156
-
157
- def valid?
158
- errors.empty?
159
- end
160
- end
161
-
162
- def attachment(options={})
163
- Paperclip::Attachment.new(:avatar, FakeModel.new, options)
164
- end
165
-
166
- def silence_warnings
167
- old_verbose, $VERBOSE = $VERBOSE, nil
168
- yield
169
- ensure
170
- $VERBOSE = old_verbose
171
- end
172
-
173
- def should_accept_dummy_class
174
- should "accept the class" do
175
- assert_accepts @matcher, Dummy
176
- end
177
-
178
- should "accept an instance of that class" do
179
- assert_accepts @matcher, Dummy.new
180
- end
181
- end
182
-
183
- def should_reject_dummy_class
184
- should "reject the class" do
185
- assert_rejects @matcher, Dummy
186
- end
187
-
188
- should "reject an instance of that class" do
189
- assert_rejects @matcher, Dummy.new
190
- end
191
- end
192
-
193
- def with_exitstatus_returning(code)
194
- saved_exitstatus = $?.nil? ? 0 : $?.exitstatus
195
- begin
196
- `ruby -e 'exit #{code.to_i}'`
197
- yield
198
- ensure
199
- `ruby -e 'exit #{saved_exitstatus.to_i}'`
200
- end
201
- end
202
-
203
- def stringy_file
204
- StringIO.new('.\n')
205
- end
206
-
207
- def fixture_file(filename)
208
- File.join(File.dirname(__FILE__), 'fixtures', filename)
209
- end
210
-
211
- def assert_success_response(url)
212
- Net::HTTP.get_response(URI.parse(url)) do |response|
213
- assert_equal "200", response.code,
214
- "Expected HTTP response code 200, got #{response.code}"
215
- end
216
- end
217
-
218
- def assert_not_found_response(url)
219
- Net::HTTP.get_response(URI.parse(url)) do |response|
220
- assert_equal "404", response.code,
221
- "Expected HTTP response code 404, got #{response.code}"
222
- end
223
- end
224
-
225
- def assert_file_exists(path)
226
- assert File.exists?(path), %(Expect "#{path}" to be exists.)
227
- end
228
-
229
- def assert_file_not_exists(path)
230
- assert !File.exists?(path), %(Expect "#{path}" to not exists.)
231
- end
232
-
233
- def assert_frame_dimensions(range, frames)
234
- frames.each_with_index do |frame, frame_index|
235
- frame.split('x').each_with_index do |dimension, dimension_index |
236
- assert range.include?(dimension.to_i), "Frame #{frame_index}[#{dimension_index}] should have been within #{range.inspect}, but was #{dimension}"
237
- end
238
- end
239
- end
@@ -1,18 +0,0 @@
1
- require './test/helper'
2
-
3
- class EmptyStringAdapterTest < Test::Unit::TestCase
4
-
5
- context 'a new instance' do
6
- setup do
7
- @subject = Paperclip.io_adapters.for('')
8
- end
9
-
10
- should "return false for a call to nil?" do
11
- assert !@subject.nil?
12
- end
13
-
14
- should 'return false for a call to assignment?' do
15
- assert !@subject.assignment?
16
- end
17
- end
18
- end
@@ -1,8 +0,0 @@
1
- require './test/helper'
2
-
3
- class IdentityAdapterTest < Test::Unit::TestCase
4
- should "respond to #new by returning the argument" do
5
- adapter = Paperclip::IdentityAdapter.new
6
- assert_equal :target, adapter.new(:target)
7
- end
8
- end
@@ -1,25 +0,0 @@
1
- require './test/helper'
2
-
3
- class HaveAttachedFileMatcherTest < Test::Unit::TestCase
4
- context "have_attached_file" do
5
- setup do
6
- reset_class "Dummy"
7
- reset_table "dummies"
8
- @matcher = self.class.have_attached_file(:avatar)
9
- end
10
-
11
- context "given a class with no attachment" do
12
- should_reject_dummy_class
13
- end
14
-
15
- context "given a class with an attachment" do
16
- setup do
17
- modify_table("dummies"){|d| d.string :avatar_file_name }
18
- Dummy.has_attached_file :avatar
19
- Dummy.do_not_validate_attachment_file_type :avatar
20
- end
21
-
22
- should_accept_dummy_class
23
- end
24
- end
25
- end