Commit a9898a1cf84da1323101e3f8479c972d00eced67

Authored by Rodrigo Souto
1 parent 2638f65f

rails3: fix uploaded_file tests

PS1: the monkey_patch is not being loaded.
PS2: there are still some tests failing due to ActionTracker bug.
app/models/uploaded_file.rb
@@ -6,6 +6,8 @@ require 'short_filename' @@ -6,6 +6,8 @@ require 'short_filename'
6 # of the file itself is kept. (FIXME?) 6 # of the file itself is kept. (FIXME?)
7 class UploadedFile < Article 7 class UploadedFile < Article
8 8
  9 + attr_accessible :uploaded_data
  10 +
9 def self.type_name 11 def self.type_name
10 _('File') 12 _('File')
11 end 13 end
@@ -31,7 +33,7 @@ class UploadedFile &lt; Article @@ -31,7 +33,7 @@ class UploadedFile &lt; Article
31 end 33 end
32 34
33 def thumbnail_path 35 def thumbnail_path
34 - self.image? ? self.full_filename(:display).gsub(Rails.root.join('public'), '') : nil 36 + self.image? ? self.full_filename(:display).to_s.gsub(Rails.root.join('public'), '') : nil
35 end 37 end
36 38
37 def display_title 39 def display_title
test/unit/uploaded_file_test.rb
@@ -50,35 +50,35 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -50,35 +50,35 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
50 end 50 end
51 51
52 should 'properly save images' do 52 should 'properly save images' do
53 - file = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) 53 + file = build(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
54 file.profile = profile 54 file.profile = profile
55 assert file.save 55 assert file.save
56 assert file.is_image 56 assert file.is_image
57 end 57 end
58 58
59 should 'has attachment_fu validation options' do 59 should 'has attachment_fu validation options' do
60 - file = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) 60 + file = build(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
61 assert_respond_to file, :attachment_validation_options 61 assert_respond_to file, :attachment_validation_options
62 end 62 end
63 63
64 should 'has attachment_fu validation option for size' do 64 should 'has attachment_fu validation option for size' do
65 - file = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) 65 + file = build(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
66 assert_includes file.attachment_validation_options, :size 66 assert_includes file.attachment_validation_options, :size
67 end 67 end
68 68
69 should 'can display hits' do 69 should 'can display hits' do
70 - file = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) 70 + file = build(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
71 assert_equal false, file.can_display_hits? 71 assert_equal false, file.can_display_hits?
72 end 72 end
73 73
74 should 'not upload files bigger than max_size' do 74 should 'not upload files bigger than max_size' do
75 - f = UploadedFile.new(:profile => @profile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) 75 + f = build(UploadedFile, :profile => @profile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
76 f.expects(:size).returns(UploadedFile.attachment_options[:max_size] + 1024) 76 f.expects(:size).returns(UploadedFile.attachment_options[:max_size] + 1024)
77 assert !f.valid? 77 assert !f.valid?
78 end 78 end
79 79
80 should 'upload files smaller than max_size' do 80 should 'upload files smaller than max_size' do
81 - f = UploadedFile.new(:profile => @profile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) 81 + f = build(UploadedFile, :profile => @profile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
82 f.expects(:size).returns(UploadedFile.attachment_options[:max_size] - 1024) 82 f.expects(:size).returns(UploadedFile.attachment_options[:max_size] - 1024)
83 assert f.valid? 83 assert f.valid?
84 end 84 end
@@ -86,16 +86,18 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -86,16 +86,18 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
86 should 'create icon when created in folder' do 86 should 'create icon when created in folder' do
87 p = create_user('test_user').person 87 p = create_user('test_user').person
88 f = fast_create(Folder, :name => 'test_folder', :profile_id => p.id) 88 f = fast_create(Folder, :name => 'test_folder', :profile_id => p.id)
89 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent_id => f.id, :profile => p) 89 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent_id => f.id, :profile => p)
90 90
91 process_delayed_job_queue 91 process_delayed_job_queue
92 - assert File.exists?(UploadedFile.find(file.id).public_filename(:icon)) 92 +
  93 + file.reload
  94 + assert File.exists?(file.public_filename(:icon))
93 file.destroy 95 file.destroy
94 end 96 end
95 97
96 should 'create icon when not created in folder' do 98 should 'create icon when not created in folder' do
97 p = create_user('test_user').person 99 p = create_user('test_user').person
98 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => p) 100 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => p)
99 101
100 process_delayed_job_queue 102 process_delayed_job_queue
101 assert File.exists?(UploadedFile.find(file.id).public_filename(:icon)) 103 assert File.exists?(UploadedFile.find(file.id).public_filename(:icon))
@@ -103,7 +105,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -103,7 +105,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
103 end 105 end
104 106
105 should 'match max_size in validates message of size field' do 107 should 'match max_size in validates message of size field' do
106 - up = UploadedFile.new(:filename => 'fake_filename.png') 108 + up = build(UploadedFile, :filename => 'fake_filename.png')
107 up.valid? 109 up.valid?
108 110
109 assert_match /#{UploadedFile.max_size.to_humanreadable}/, up.errors[:size] 111 assert_match /#{UploadedFile.max_size.to_humanreadable}/, up.errors[:size]
@@ -111,7 +113,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -111,7 +113,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
111 113
112 should 'display link to download of non-image files' do 114 should 'display link to download of non-image files' do
113 p = create_user('test_user').person 115 p = create_user('test_user').person
114 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :profile => p) 116 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :profile => p)
115 117
116 stubs(:content_tag).returns('link') 118 stubs(:content_tag).returns('link')
117 expects(:link_to).with(file.name, file.url, :class => file.css_class_name) 119 expects(:link_to).with(file.name, file.url, :class => file.css_class_name)
@@ -120,7 +122,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -120,7 +122,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
120 end 122 end
121 123
122 should 'have title' do 124 should 'have title' do
123 - assert_equal 'my title', UploadedFile.new(:title => 'my title').title 125 + assert_equal 'my title', build(UploadedFile, :title => 'my title').title
124 end 126 end
125 127
126 should 'limit title to 140 characters' do 128 should 'limit title to 140 characters' do
@@ -135,7 +137,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -135,7 +137,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
135 end 137 end
136 138
137 should 'always provide a display title' do 139 should 'always provide a display title' do
138 - upload = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain')) 140 + upload = build(UploadedFile, :uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'))
139 assert_equal 'test.txt', upload.display_title 141 assert_equal 'test.txt', upload.display_title
140 upload.title = 'My text file' 142 upload.title = 'My text file'
141 assert_equal 'My text file', upload.display_title 143 assert_equal 'My text file', upload.display_title
@@ -151,13 +153,13 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -151,13 +153,13 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
151 end 153 end
152 154
153 should 'use name as title by default but cut down the title' do 155 should 'use name as title by default but cut down the title' do
154 - upload = UploadedFile.new(:uploaded_data => fixture_file_upload('/files/AGENDA_CULTURA_-_FESTA_DE_VAQUEIROS_PONTO_DE_SERRA_PRETA_BAIXA.txt')) 156 + upload = build(UploadedFile, :uploaded_data => fixture_file_upload('/files/AGENDA_CULTURA_-_FESTA_DE_VAQUEIROS_PONTO_DE_SERRA_PRETA_BAIXA.txt'))
155 upload.valid? 157 upload.valid?
156 assert_nil upload.errors[:title] 158 assert_nil upload.errors[:title]
157 end 159 end
158 160
159 should 'create thumbnails after processing jobs' do 161 should 'create thumbnails after processing jobs' do
160 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => profile) 162 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => profile)
161 163
162 process_delayed_job_queue 164 process_delayed_job_queue
163 165
@@ -168,7 +170,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -168,7 +170,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
168 end 170 end
169 171
170 should 'set thumbnails_processed to true after creating thumbnails' do 172 should 'set thumbnails_processed to true after creating thumbnails' do
171 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => profile) 173 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => profile)
172 174
173 process_delayed_job_queue 175 process_delayed_job_queue
174 176
@@ -198,7 +200,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -198,7 +200,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
198 end 200 end
199 201
200 should 'return image thumbnail if thumbnails were processed' do 202 should 'return image thumbnail if thumbnails were processed' do
201 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => profile) 203 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => profile)
202 process_delayed_job_queue 204 process_delayed_job_queue
203 205
204 assert_match(/rails_thumb.png/, UploadedFile.find(file.id).public_filename(:thumb)) 206 assert_match(/rails_thumb.png/, UploadedFile.find(file.id).public_filename(:thumb))
@@ -214,7 +216,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -214,7 +216,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
214 end 216 end
215 217
216 should 'store width and height after processing' do 218 should 'store width and height after processing' do
217 - file = UploadedFile.create!(:profile => @profile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) 219 + file = create(UploadedFile, :profile => @profile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
218 file.create_thumbnails 220 file.create_thumbnails
219 221
220 file = UploadedFile.find(file.id) 222 file = UploadedFile.find(file.id)
@@ -241,7 +243,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -241,7 +243,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
241 243
242 should 'track action when a published image is uploaded in a gallery' do 244 should 'track action when a published image is uploaded in a gallery' do
243 p = fast_create(Gallery, :profile_id => @profile.id) 245 p = fast_create(Gallery, :profile_id => @profile.id)
244 - f = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => p, :profile => @profile) 246 + f = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => p, :profile => @profile)
245 ta = ActionTracker::Record.last(:conditions => { :verb => "upload_image" }) 247 ta = ActionTracker::Record.last(:conditions => { :verb => "upload_image" })
246 assert_kind_of String, ta.get_thumbnail_path[0] 248 assert_kind_of String, ta.get_thumbnail_path[0]
247 assert_equal [f.reload.view_url], ta.get_view_url 249 assert_equal [f.reload.view_url], ta.get_view_url
@@ -252,26 +254,26 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -252,26 +254,26 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
252 should 'not track action when is not image' do 254 should 'not track action when is not image' do
253 ActionTracker::Record.delete_all 255 ActionTracker::Record.delete_all
254 p = fast_create(Gallery, :profile_id => @profile.id) 256 p = fast_create(Gallery, :profile_id => @profile.id)
255 - f = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :parent => p, :profile => @profile) 257 + f = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :parent => p, :profile => @profile)
256 assert_nil ActionTracker::Record.last(:conditions => { :verb => "upload_image" }) 258 assert_nil ActionTracker::Record.last(:conditions => { :verb => "upload_image" })
257 end 259 end
258 260
259 should 'not track action when has no parent' do 261 should 'not track action when has no parent' do
260 - f = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => nil, :profile => @profile) 262 + f = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => nil, :profile => @profile)
261 assert_nil ActionTracker::Record.last(:conditions => { :verb => "upload_image" }) 263 assert_nil ActionTracker::Record.last(:conditions => { :verb => "upload_image" })
262 end 264 end
263 265
264 should 'not track action when is not published' do 266 should 'not track action when is not published' do
265 ActionTracker::Record.delete_all 267 ActionTracker::Record.delete_all
266 p = fast_create(Gallery, :profile_id => @profile.id) 268 p = fast_create(Gallery, :profile_id => @profile.id)
267 - f = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => p, :profile => @profile, :published => false) 269 + f = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => p, :profile => @profile, :published => false)
268 assert_nil ActionTracker::Record.last(:conditions => { :verb => "upload_image" }) 270 assert_nil ActionTracker::Record.last(:conditions => { :verb => "upload_image" })
269 end 271 end
270 272
271 should 'not track action when parent is not gallery' do 273 should 'not track action when parent is not gallery' do
272 ActionTracker::Record.delete_all 274 ActionTracker::Record.delete_all
273 p = fast_create(Folder, :profile_id => @profile.id) 275 p = fast_create(Folder, :profile_id => @profile.id)
274 - f = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => p, :profile => @profile) 276 + f = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => p, :profile => @profile)
275 assert_nil ActionTracker::Record.last(:conditions => { :verb => "upload_image" }) 277 assert_nil ActionTracker::Record.last(:conditions => { :verb => "upload_image" })
276 end 278 end
277 279
@@ -295,11 +297,11 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -295,11 +297,11 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
295 297
296 should 'upload to a folder with same name as the schema if database is postgresql' do 298 should 'upload to a folder with same name as the schema if database is postgresql' do
297 uses_postgresql 'image_schema_one' 299 uses_postgresql 'image_schema_one'
298 - file1 = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => @profile) 300 + file1 = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => @profile)
299 process_delayed_job_queue 301 process_delayed_job_queue
300 assert_match(/image_schema_one\/\d{4}\/\d{4}\/rails.png/, UploadedFile.find(file1.id).public_filename) 302 assert_match(/image_schema_one\/\d{4}\/\d{4}\/rails.png/, UploadedFile.find(file1.id).public_filename)
301 uses_postgresql 'image_schema_two' 303 uses_postgresql 'image_schema_two'
302 - file2 = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :profile => @profile) 304 + file2 = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :profile => @profile)
303 assert_match(/image_schema_two\/\d{4}\/\d{4}\/test.txt/, UploadedFile.find(file2.id).public_filename) 305 assert_match(/image_schema_two\/\d{4}\/\d{4}\/test.txt/, UploadedFile.find(file2.id).public_filename)
304 file1.destroy 306 file1.destroy
305 file2.destroy 307 file2.destroy
@@ -307,13 +309,13 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -307,13 +309,13 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
307 end 309 end
308 310
309 should 'return extension' do 311 should 'return extension' do
310 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => @profile) 312 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => @profile)
311 assert_equal 'png', file.extension 313 assert_equal 'png', file.extension
312 end 314 end
313 315
314 should 'upload to path prefix folder if database is not postgresql' do 316 should 'upload to path prefix folder if database is not postgresql' do
315 uses_sqlite 317 uses_sqlite
316 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :profile => @profile) 318 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :profile => @profile)
317 assert_match(/\/\d{4}\/\d{4}\/test.txt/, UploadedFile.find(file.id).public_filename) 319 assert_match(/\/\d{4}\/\d{4}\/test.txt/, UploadedFile.find(file.id).public_filename)
318 assert_no_match(/test_schema\/\d{4}\/\d{4}\/test.txt/, UploadedFile.find(file.id).public_filename) 320 assert_no_match(/test_schema\/\d{4}\/\d{4}\/test.txt/, UploadedFile.find(file.id).public_filename)
319 file.destroy 321 file.destroy
@@ -321,7 +323,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -321,7 +323,7 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
321 323
322 should 'upload thumbnails to a folder with same name as the schema if database is postgresql' do 324 should 'upload thumbnails to a folder with same name as the schema if database is postgresql' do
323 uses_postgresql 325 uses_postgresql
324 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => @profile) 326 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => @profile)
325 process_delayed_job_queue 327 process_delayed_job_queue
326 UploadedFile.attachment_options[:thumbnails].each do |suffix, size| 328 UploadedFile.attachment_options[:thumbnails].each do |suffix, size|
327 assert_match(/test_schema\/\d{4}\/\d{4}\/rails_#{suffix}.png/, UploadedFile.find(file.id).public_filename(suffix)) 329 assert_match(/test_schema\/\d{4}\/\d{4}\/rails_#{suffix}.png/, UploadedFile.find(file.id).public_filename(suffix))
@@ -331,13 +333,13 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -331,13 +333,13 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
331 end 333 end
332 334
333 should 'not allow script files to be uploaded without append .txt in the end' do 335 should 'not allow script files to be uploaded without append .txt in the end' do
334 - file = UploadedFile.create!(:uploaded_data => fixture_file_upload('files/hello_world.php', 'application/x-php'), :profile => @profile) 336 + file = create(UploadedFile, :uploaded_data => fixture_file_upload('files/hello_world.php', 'application/x-php'), :profile => @profile)
335 assert_equal 'hello_world.php.txt', file.filename 337 assert_equal 'hello_world.php.txt', file.filename
336 end 338 end
337 339
338 should 'use gallery as target for action tracker' do 340 should 'use gallery as target for action tracker' do
339 gallery = fast_create(Gallery, :profile_id => profile.id) 341 gallery = fast_create(Gallery, :profile_id => profile.id)
340 - image = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => gallery, :profile => profile) 342 + image = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => gallery, :profile => profile)
341 activity = ActionTracker::Record.find_last_by_verb 'upload_image' 343 activity = ActionTracker::Record.find_last_by_verb 'upload_image'
342 assert_equal gallery, activity.target 344 assert_equal gallery, activity.target
343 end 345 end
@@ -345,10 +347,10 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -345,10 +347,10 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
345 should 'group trackers activity of image\'s upload' do 347 should 'group trackers activity of image\'s upload' do
346 gallery = fast_create(Gallery, :profile_id => profile.id) 348 gallery = fast_create(Gallery, :profile_id => profile.id)
347 349
348 - image1 = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => gallery, :profile => profile) 350 + image1 = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => gallery, :profile => profile)
349 assert_equal 1, ActionTracker::Record.find_all_by_verb('upload_image').count 351 assert_equal 1, ActionTracker::Record.find_all_by_verb('upload_image').count
350 352
351 - image2 = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/other-pic.jpg', 'image/jpg'), :parent => gallery, :profile => profile) 353 + image2 = create(UploadedFile, :uploaded_data => fixture_file_upload('/files/other-pic.jpg', 'image/jpg'), :parent => gallery, :profile => profile)
352 assert_equal 1, ActionTracker::Record.find_all_by_verb('upload_image').count 354 assert_equal 1, ActionTracker::Record.find_all_by_verb('upload_image').count
353 end 355 end
354 356
vendor/plugins/monkey_patches/attachment_fu/init.rb 0 → 100644
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
  1 +# Monkey patch to rewrite attachment_fu's logic where no image with parent can
  2 +# be thumbnailable.
  3 +
  4 +Technoweenie::AttachmentFu.module_eval do
  5 + def thumbnailable?
  6 + image? && !is_thumbnail?
  7 + end
  8 +
  9 + def is_thumbnail?
  10 + (thumbnail_class == self.class) && !(respond_to?(:parent_id) && parent_id.nil?)
  11 + end
  12 +end
  13 +
  14 +# Monkey patch to rewrite attachment_fu's logic where no image with parent can
  15 +# be thumbnailable and supposition that full_filename will return a String
  16 +# while it might return Pathname.
  17 +Technoweenie::AttachmentFu::Backends::FileSystemBackend.module_eval do
  18 + def attachment_path_id
  19 + (is_thumbnail? && respond_to?(:parent_id)) ? parent_id : id
  20 + end
  21 +
  22 + def public_filename(thumbnail = nil)
  23 + full_filename(thumbnail).to_s.gsub %r(^#{Regexp.escape(base_path)}), ''
  24 + end
  25 +end
  26 +