bulldog 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/CHANGELOG +7 -0
  2. data/lib/bulldog/attachment/base.rb +3 -6
  3. data/lib/bulldog/attachment/has_dimensions.rb +43 -34
  4. data/lib/bulldog/attachment/image.rb +5 -26
  5. data/lib/bulldog/attachment/pdf.rb +3 -28
  6. data/lib/bulldog/attachment/video.rb +48 -45
  7. data/lib/bulldog/style.rb +28 -1
  8. data/lib/bulldog/version.rb +1 -1
  9. data/spec/data/3-bytes.txt +1 -0
  10. data/spec/data/4-bytes.txt +1 -0
  11. data/spec/data/5-bytes.txt +1 -0
  12. data/spec/data/6-bytes.txt +1 -0
  13. data/spec/data/test-20x10.jpg +0 -0
  14. data/spec/data/test-20x10.pdf +0 -0
  15. data/spec/data/test-20x10x1.mov +0 -0
  16. data/spec/data/test-40x30.jpg +0 -0
  17. data/spec/data/test-40x30.pdf +0 -0
  18. data/spec/data/test-40x30x1.mov +0 -0
  19. data/spec/helpers/files.rb +123 -0
  20. data/spec/integration/lifecycle_hooks_spec.rb +1 -1
  21. data/spec/integration/processing_image_attachments.rb +1 -13
  22. data/spec/macros/attachment/has_dimensions_spec.rb +313 -0
  23. data/spec/spec_helper.rb +3 -4
  24. data/spec/unit/attachment/base_spec.rb +25 -45
  25. data/spec/unit/attachment/image_spec.rb +48 -171
  26. data/spec/unit/attachment/maybe_spec.rb +4 -12
  27. data/spec/unit/attachment/pdf_spec.rb +18 -136
  28. data/spec/unit/attachment/video_spec.rb +98 -170
  29. data/spec/unit/attachment_spec.rb +1 -1
  30. data/spec/unit/has_attachment_spec.rb +29 -26
  31. data/spec/unit/interpolation_spec.rb +2 -2
  32. data/spec/unit/processor/ffmpeg_spec.rb +3 -3
  33. data/spec/unit/processor/image_magick_spec.rb +1 -1
  34. data/spec/unit/processor/one_shot_spec.rb +1 -1
  35. data/spec/unit/stream_spec.rb +3 -3
  36. data/spec/unit/style_spec.rb +40 -0
  37. data/spec/unit/validations_spec.rb +33 -33
  38. metadata +28 -8
  39. data/spec/helpers/temporary_directory.rb +0 -25
  40. data/spec/helpers/test_upload_files.rb +0 -108
@@ -30,7 +30,7 @@ describe Attachment do
30
30
 
31
31
  describe "when the stream is not nil" do
32
32
  before do
33
- @stream = Stream.new(test_image_file)
33
+ @stream = Stream.new(temporary_file('test.jpg'))
34
34
  end
35
35
 
36
36
  it "should return a Base attachment" do
@@ -13,9 +13,8 @@ describe HasAttachment do
13
13
  it "should provide a query method for the attachment" do
14
14
  Thing.has_attachment :photo
15
15
  thing = Thing.new
16
- file = uploaded_file
17
16
  thing.photo?.should be_false
18
- thing.photo = file
17
+ thing.photo = uploaded_file('test.jpg')
19
18
  thing.photo?.should be_true
20
19
  end
21
20
 
@@ -71,7 +70,7 @@ describe HasAttachment do
71
70
  style :normal
72
71
  process(:on => :my_event){calls << 1}
73
72
  end
74
- thing = Thing.new(:photo => uploaded_file)
73
+ thing = Thing.new(:photo => uploaded_file('test.jpg'))
75
74
  thing.process_attachment(:photo, :my_event)
76
75
  calls.should == [1]
77
76
  end
@@ -108,7 +107,7 @@ describe HasAttachment do
108
107
  style :normal
109
108
  process(:on => :my_event, :with => :test){context = self}
110
109
  end
111
- thing = Thing.new(:photo => uploaded_file)
110
+ thing = Thing.new(:photo => uploaded_file('test.jpg'))
112
111
  thing.process_attachment(:photo, :my_event)
113
112
  context.should be_a(Processor::Test)
114
113
  end
@@ -120,13 +119,17 @@ describe HasAttachment do
120
119
  style :normal
121
120
  process(:on => :my_event){context = self}
122
121
  end
123
- thing = Thing.new(:photo => uploaded_file)
122
+ thing = Thing.new(:photo => uploaded_file('test.jpg'))
124
123
  thing.process_attachment(:photo, :my_event)
125
124
  context.should be_a(Processor::Base)
126
125
  end
127
126
  end
128
127
 
129
128
  describe "object lifecycle" do
129
+ def test_image_file
130
+ uploaded_file('test.jpg')
131
+ end
132
+
130
133
  outline "building a record" do
131
134
  with_model_class :Thing do
132
135
  spec = self
@@ -200,7 +203,7 @@ describe HasAttachment do
200
203
  use_model_class(:Thing)
201
204
 
202
205
  before do
203
- @file = uploaded_file('test.jpg', 'test.jpg')
206
+ @file = uploaded_file('test.jpg')
204
207
  end
205
208
 
206
209
  def configure(&block)
@@ -295,7 +298,7 @@ describe HasAttachment do
295
298
  describe "when the record already exists" do
296
299
  describe "when a file name is set, and the original file exists" do
297
300
  def instantiate
298
- file = uploaded_file('test.jpg', 'test.jpg')
301
+ file = uploaded_file('test.jpg')
299
302
  thing = Thing.create(:photo => file)
300
303
  @thing = Thing.find(thing.id)
301
304
  end
@@ -304,7 +307,7 @@ describe HasAttachment do
304
307
  instantiate
305
308
  @thing.photo_file_name.should == 'test.jpg'
306
309
  @thing.photo_content_type.split(/;/).first.should == "image/jpeg"
307
- @thing.photo_file_size.should == File.size(test_path('test.jpg'))
310
+ @thing.photo_file_size.should == File.size("#{ROOT}/spec/data/test.jpg")
308
311
  end
309
312
  end
310
313
 
@@ -323,7 +326,7 @@ describe HasAttachment do
323
326
 
324
327
  describe "when a file name is set, but the original file is missing" do
325
328
  def instantiate
326
- file = uploaded_file('test.jpg', 'test.jpg')
329
+ file = uploaded_file('test.jpg')
327
330
  @thing = Thing.create(:photo => file)
328
331
  File.unlink(original_path)
329
332
  @thing = Thing.find(@thing.id)
@@ -333,7 +336,7 @@ describe HasAttachment do
333
336
  instantiate
334
337
  @thing.photo_file_name.should == 'test.jpg'
335
338
  @thing.photo_content_type == "image/jpeg"
336
- @thing.photo_file_size.should == File.size(test_path('test.jpg'))
339
+ @thing.photo_file_size.should == File.size("#{ROOT}/spec/data/test.jpg")
337
340
  end
338
341
 
339
342
  describe "when the record is saved" do
@@ -357,14 +360,14 @@ describe HasAttachment do
357
360
 
358
361
  describe "when an attachment is assigned" do
359
362
  before do
360
- @file = uploaded_file('test.jpg', 'test.jpg')
363
+ @file = uploaded_file('test.jpg')
361
364
  end
362
365
 
363
366
  it "should set the stored attributes" do
364
367
  @thing.photo = @file
365
368
  @thing.photo_file_name.should == 'test.jpg'
366
369
  @thing.photo_content_type.split(/;/).first.should == "image/jpeg"
367
- @thing.photo_file_size.should == File.size(test_path('test.jpg'))
370
+ @thing.photo_file_size.should == File.size("#{ROOT}/spec/data/test.jpg")
368
371
  end
369
372
 
370
373
  it "should not create the original file" do
@@ -389,7 +392,7 @@ describe HasAttachment do
389
392
 
390
393
  describe "when the record exists and there is an attachment" do
391
394
  before do
392
- @old_file = test_file('test.jpg')
395
+ @old_file = uploaded_file('test.jpg')
393
396
  thing = Thing.create(:photo => @old_file)
394
397
  @thing = Thing.find(thing.id)
395
398
  end
@@ -406,14 +409,14 @@ describe HasAttachment do
406
409
 
407
410
  describe "when a new attachment is assigned" do
408
411
  before do
409
- @new_file = test_file('test.png')
412
+ @new_file = uploaded_file('test.png')
410
413
  end
411
414
 
412
415
  it "should set the stored attributes" do
413
416
  @thing.photo = @new_file
414
417
  @thing.photo_file_name.should == 'test.png'
415
418
  @thing.photo_content_type.split(/;/).first.should == 'image/png'
416
- @thing.photo_file_size.should == File.size(test_path('test.png'))
419
+ @thing.photo_file_size.should == File.size("#{ROOT}/spec/data/test.png")
417
420
  end
418
421
 
419
422
  it "should not create the new original file yet" do
@@ -499,7 +502,7 @@ describe HasAttachment do
499
502
  describe "#destroy" do
500
503
  describe "when the record is new" do
501
504
  before do
502
- file = uploaded_file('test.jpg', 'test.jpg')
505
+ file = uploaded_file('test.jpg')
503
506
  @thing = Thing.new(:photo => file)
504
507
  end
505
508
 
@@ -526,7 +529,7 @@ describe HasAttachment do
526
529
 
527
530
  describe "when the record existed and had an attachment" do
528
531
  before do
529
- file = uploaded_file('test.jpg', 'test.jpg')
532
+ file = uploaded_file('test.jpg')
530
533
  thing = Thing.create(:photo => file)
531
534
  @thing = Thing.find(thing.id)
532
535
  end
@@ -567,7 +570,7 @@ describe HasAttachment do
567
570
  Thing.has_attachment :photo do
568
571
  path "#{spec.temporary_directory}/:id.jpg"
569
572
  end
570
- thing = Thing.create(:name => 'old', :photo => uploaded_file)
573
+ thing = Thing.create(:name => 'old', :photo => uploaded_file('test.jpg'))
571
574
  @thing = Thing.find(thing.id)
572
575
  end
573
576
 
@@ -586,7 +589,7 @@ describe HasAttachment do
586
589
  end
587
590
 
588
591
  it "should return true if a new value has been assigned to the attachment" do
589
- @thing.photo = uploaded_file
592
+ @thing.photo = uploaded_file('test.jpg')
590
593
  @thing.photo_changed?.should be_true
591
594
  end
592
595
  end
@@ -599,7 +602,7 @@ describe HasAttachment do
599
602
 
600
603
  it "should return a clone of the original value after assignment" do
601
604
  original_photo = @thing.photo
602
- @thing.photo = uploaded_file
605
+ @thing.photo = uploaded_file('test.jpg')
603
606
  @thing.photo_was.should_not equal(original_photo)
604
607
  @thing.photo_was.should == original_photo
605
608
  end
@@ -609,7 +612,7 @@ describe HasAttachment do
609
612
  it "should return attachment changes along with other attribute changes" do
610
613
  old_photo = @thing.photo
611
614
  @thing.name = 'new'
612
- @thing.photo = uploaded_file
615
+ @thing.photo = uploaded_file('test.jpg')
613
616
  @thing.changes.should == {
614
617
  'name' => ['old', 'new'],
615
618
  'photo' => [old_photo, @thing.photo],
@@ -619,7 +622,7 @@ describe HasAttachment do
619
622
 
620
623
  describe "when the record is saved and only attachments have been modified" do
621
624
  before do
622
- @thing.photo = uploaded_file
625
+ @thing.photo = uploaded_file('test.jpg')
623
626
  end
624
627
 
625
628
  it "should not hit the database"
@@ -634,7 +637,7 @@ describe HasAttachment do
634
637
  describe "#save" do
635
638
  before do
636
639
  @thing.name = 'new'
637
- @thing.photo = uploaded_file
640
+ @thing.photo = uploaded_file('test.jpg')
638
641
  end
639
642
 
640
643
  it "should clear all changes" do
@@ -674,7 +677,7 @@ describe HasAttachment do
674
677
 
675
678
  describe "when a file was assigned to the attachment" do
676
679
  it "should update ATTACHMENT_updated_at" do
677
- @thing.photo = uploaded_file
680
+ @thing.photo = uploaded_file('test.jpg')
678
681
  @thing.save.should be_true
679
682
  @thing.photo_updated_at.should == Time.now
680
683
  end
@@ -683,7 +686,7 @@ describe HasAttachment do
683
686
 
684
687
  describe "when the record already exists" do
685
688
  before do
686
- thing = Thing.create(:photo => uploaded_file('test.jpg', 'test.jpg'))
689
+ thing = Thing.create(:photo => uploaded_file('test.jpg'))
687
690
  @thing = Thing.find(thing.id)
688
691
  end
689
692
 
@@ -699,7 +702,7 @@ describe HasAttachment do
699
702
  describe "when a new file was assigned to the attachment" do
700
703
  it "should update ATTACHMENT_updated_at" do
701
704
  warp_ahead 1.minute
702
- @thing.photo = uploaded_file('test.jpg', 'test.jpg')
705
+ @thing.photo = uploaded_file('test.jpg')
703
706
  @thing.save.should be_true
704
707
  @thing.photo_updated_at.should == Time.now
705
708
  end
@@ -43,7 +43,7 @@ describe Interpolation do
43
43
  style :small
44
44
  store_attributes :file_name => nil
45
45
  end
46
- @thing = Thing.new(:photo => test_image_file('test.jpg'))
46
+ @thing = Thing.new(:photo => uploaded_file('test.jpg'))
47
47
  @style = Thing.attachment_reflections[:photo].styles[:small]
48
48
  end
49
49
 
@@ -132,7 +132,7 @@ describe Interpolation do
132
132
  store_attributes :file_name => :photo_file_name
133
133
  end
134
134
 
135
- @thing = Thing.new(:photo => test_image_file('test.jpg'))
135
+ @thing = Thing.new(:photo => uploaded_file('test.jpg'))
136
136
  @style = Thing.attachment_reflections[:photo].styles[:small]
137
137
  end
138
138
 
@@ -17,7 +17,7 @@ describe Processor::Ffmpeg do
17
17
  end
18
18
  end
19
19
 
20
- thing = Thing.create(:video => test_video_file('test.mov'))
20
+ thing = Thing.create(:video => uploaded_file('test.mov'))
21
21
  @thing = Thing.find(thing.id)
22
22
  end
23
23
 
@@ -187,9 +187,9 @@ describe Processor::Ffmpeg do
187
187
 
188
188
  describe "when the frame attachment already exists" do
189
189
  before do
190
- thing = Thing.create(:frame => test_image_file('test.jpg'))
190
+ thing = Thing.create(:frame => uploaded_file('test.jpg'))
191
191
  @thing = Thing.find(thing.id)
192
- @thing.video = test_video_file('test.mov')
192
+ @thing.video = uploaded_file('test.mov')
193
193
  @thing.video.stubs(:duration).returns(1)
194
194
  end
195
195
 
@@ -8,7 +8,7 @@ describe Processor::ImageMagick do
8
8
  Thing.has_attachment :attachment do
9
9
  path "#{spec.temporary_directory}/attachment.:style.:extension"
10
10
  end
11
- thing = Thing.create(:attachment => test_image_file('test.jpg'))
11
+ thing = Thing.create(:attachment => uploaded_file('test.jpg'))
12
12
  @thing = Thing.find(thing.id)
13
13
  end
14
14
 
@@ -5,7 +5,7 @@ describe Processor::OneShot do
5
5
 
6
6
  before do
7
7
  Thing.has_attachment :attachment
8
- @thing = Thing.create(:attachment => test_empty_file)
8
+ @thing = Thing.create(:attachment => uploaded_file('empty.txt'))
9
9
  end
10
10
 
11
11
  def configure(&block)
@@ -93,8 +93,8 @@ describe Stream do
93
93
  end
94
94
 
95
95
  it "should make #content_type return the new content type of the file" do
96
- jpg_data = File.read(test_path('test.jpg'))
97
- png_data = File.read(test_path('test.png'))
96
+ jpg_data = File.read("#{ROOT}/spec/data/test.jpg")
97
+ png_data = File.read("#{ROOT}/spec/data/test.png")
98
98
  stream = stream(jpg_data)
99
99
  stream.content_type.should =~ %r'\Aimage/jpeg'
100
100
  update_target(stream, png_data)
@@ -109,7 +109,7 @@ describe Stream do
109
109
  end
110
110
 
111
111
  it "should not change the result of #content_type" do
112
- jpg_data = File.read(test_path('test.jpg'))
112
+ jpg_data = File.read("#{ROOT}/spec/data/test.jpg")
113
113
  stream = stream(jpg_data)
114
114
  stream.reload
115
115
  stream.content_type.should =~ %r'\Aimage/jpeg'
@@ -48,4 +48,44 @@ describe Style do
48
48
  style.inspect.should == "#<Style :big {:size=>\"100x100\"}>"
49
49
  end
50
50
  end
51
+
52
+ describe "#dimensions" do
53
+ it "should return nil if there is no :size attribute" do
54
+ style = Style.new(:dimensionless)
55
+ style.dimensions.should be_nil
56
+ end
57
+
58
+ it "should return the value parsed from the :size attribute" do
59
+ style = Style.new(:dimensionless, :size => '40x30')
60
+ style.dimensions.should == [40, 30]
61
+ end
62
+
63
+ describe "when the :size attribute is updated" do
64
+ before do
65
+ @style = Style.new(:dimensionless, :size => '40x30')
66
+ end
67
+
68
+ it "should return nil if it was set to nil" do
69
+ @style[:size] = nil
70
+ @style.dimensions.should be_nil
71
+ end
72
+
73
+ it "should return the value parsed from the new :size attribute" do
74
+ @style[:size] = '80x60'
75
+ @style.dimensions.should == [80, 60]
76
+ end
77
+ end
78
+ end
79
+
80
+ describe "#filled?" do
81
+ it "should return true if the :filled attribute is true" do
82
+ style = Style.new(:filled, :filled => true)
83
+ style.should be_filled
84
+ end
85
+
86
+ it "should return false if the :filled attribute is omitted" do
87
+ style = Style.new(:unfilled)
88
+ style.should_not be_filled
89
+ end
90
+ end
51
91
  end
@@ -194,11 +194,11 @@ describe Validations do
194
194
  end
195
195
 
196
196
  def make_thing_pass
197
- @thing.photo = test_image_file
197
+ @thing.photo = uploaded_file('test.jpg')
198
198
  end
199
199
 
200
200
  def make_thing_fail
201
- @thing.photo = test_empty_file
201
+ @thing.photo = uploaded_file('empty.txt')
202
202
  end
203
203
 
204
204
  it_should_behave_like "an ActiveRecord validation"
@@ -212,18 +212,18 @@ describe Validations do
212
212
 
213
213
  it "should fail if the file is empty" do
214
214
  Thing.validates_attachment_presence_of :photo
215
- @thing = Thing.new(:photo => test_empty_file)
215
+ @thing = Thing.new(:photo => uploaded_file('empty.txt'))
216
216
  @thing.should_not be_valid
217
217
  end
218
218
 
219
219
  it "should pass if the file is not empty" do
220
220
  Thing.validates_attachment_presence_of :photo
221
- @thing = Thing.new(:photo => test_image_file)
221
+ @thing = Thing.new(:photo => uploaded_file('test.jpg'))
222
222
  @thing.should be_valid
223
223
  end
224
224
  end
225
225
 
226
- it_should_use_i18n_key(:attachment_blank){@thing.photo = test_empty_file}
226
+ it_should_use_i18n_key(:attachment_blank){@thing.photo = uploaded_file('empty.txt')}
227
227
  end
228
228
 
229
229
  describe ".validates_attachment_file_size_of" do
@@ -236,11 +236,11 @@ describe Validations do
236
236
  end
237
237
 
238
238
  def make_thing_pass
239
- @thing.photo = uploaded_file_with_content('test.jpg', '....')
239
+ @thing.photo = uploaded_file('4-bytes.txt')
240
240
  end
241
241
 
242
242
  def make_thing_fail
243
- @thing.photo = uploaded_file_with_content('test.jpg', '..')
243
+ @thing.photo = uploaded_file('6-bytes.txt')
244
244
  end
245
245
 
246
246
  it_should_behave_like "an ActiveRecord validation"
@@ -259,17 +259,17 @@ describe Validations do
259
259
  end
260
260
 
261
261
  it "should fail if the file size is less than the limit" do
262
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*4)
262
+ @thing.photo = uploaded_file('4-bytes.txt')
263
263
  @thing.should_not be_valid
264
264
  end
265
265
 
266
266
  it "should fail if the file size is equal to the limit" do
267
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*5)
267
+ @thing.photo = uploaded_file('5-bytes.txt')
268
268
  @thing.should_not be_valid
269
269
  end
270
270
 
271
271
  it "should pass if the file size is greater than the limit" do
272
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*6)
272
+ @thing.photo = uploaded_file('6-bytes.txt')
273
273
  @thing.should be_valid
274
274
  end
275
275
  end
@@ -281,72 +281,72 @@ describe Validations do
281
281
  end
282
282
 
283
283
  it "should fail if the file size is greater than the limit" do
284
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*6)
284
+ @thing.photo = uploaded_file('6-bytes.txt')
285
285
  @thing.should_not be_valid
286
286
  end
287
287
 
288
288
  it "should fail if the file size is equal to the limit" do
289
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*5)
289
+ @thing.photo = uploaded_file('5-bytes.txt')
290
290
  @thing.should_not be_valid
291
291
  end
292
292
 
293
293
  it "should pass if the file size is less than the limit" do
294
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*4)
294
+ @thing.photo = uploaded_file('4-bytes.txt')
295
295
  @thing.should be_valid
296
296
  end
297
297
  end
298
298
 
299
299
  describe "when :in is given" do
300
300
  before do
301
- Thing.validates_attachment_file_size_of :photo, :in => 3..5
301
+ Thing.validates_attachment_file_size_of :photo, :in => 4..5
302
302
  @thing = Thing.new
303
303
  end
304
304
 
305
305
  it "should fail if the file size is less than the lower bound" do
306
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*2)
306
+ @thing.photo = uploaded_file('3-bytes.txt')
307
307
  @thing.should_not be_valid
308
308
  end
309
309
 
310
310
  it "should pass if the file size is equal to the lower bound" do
311
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*3)
311
+ @thing.photo = uploaded_file('4-bytes.txt')
312
312
  @thing.should be_valid
313
313
  end
314
314
 
315
315
  it "should fail if the file size is greater than the upper bound" do
316
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*6)
316
+ @thing.photo = uploaded_file('6-bytes.txt')
317
317
  @thing.should_not be_valid
318
318
  end
319
319
  end
320
320
 
321
321
  describe "when :in is given with an inclusive range" do
322
322
  before do
323
- Thing.validates_attachment_file_size_of :photo, :in => 3..5
323
+ Thing.validates_attachment_file_size_of :photo, :in => 4..5
324
324
  @thing = Thing.new
325
325
  end
326
326
 
327
327
  it "should pass if the file size is equal to the upper bound" do
328
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*5)
328
+ @thing.photo = uploaded_file('5-bytes.txt')
329
329
  @thing.should be_valid
330
330
  end
331
331
  end
332
332
 
333
333
  describe "when :in is given with an exclusive range" do
334
334
  before do
335
- Thing.validates_attachment_file_size_of :photo, :in => 3...5
335
+ Thing.validates_attachment_file_size_of :photo, :in => 4...5
336
336
  @thing = Thing.new
337
337
  end
338
338
 
339
339
  it "should fail if the file size is equal to the upper bound" do
340
- @thing.photo = uploaded_file_with_content('test.jpg', '.'*5)
340
+ @thing.photo = uploaded_file('5-bytes.txt')
341
341
  @thing.should_not be_valid
342
342
  end
343
343
  end
344
344
  end
345
345
 
346
- it_should_use_i18n_key(:attachment_too_large, :in => 3..5){@thing.photo = uploaded_file_with_content('test.jpg', '......')}
347
- it_should_use_i18n_key(:attachment_too_large, :less_than => 5){@thing.photo = uploaded_file_with_content('test.jpg', '......')}
348
- it_should_use_i18n_key(:attachment_too_small, :in => 3..5){@thing.photo = uploaded_file_with_content('test.jpg', '..')}
349
- it_should_use_i18n_key(:attachment_too_small, :greater_than => 5){@thing.photo = uploaded_file_with_content('test.jpg', '..')}
346
+ it_should_use_i18n_key(:attachment_too_large, :in => 3..5){@thing.photo = uploaded_file('6-bytes.txt')}
347
+ it_should_use_i18n_key(:attachment_too_large, :less_than => 5){@thing.photo = uploaded_file('6-bytes.txt')}
348
+ it_should_use_i18n_key(:attachment_too_small, :in => 4..5){@thing.photo = uploaded_file('3-bytes.txt')}
349
+ it_should_use_i18n_key(:attachment_too_small, :greater_than => 5){@thing.photo = uploaded_file('4-bytes.txt')}
350
350
  end
351
351
 
352
352
  describe ".validates_attachment_type_of" do
@@ -359,11 +359,11 @@ describe Validations do
359
359
  end
360
360
 
361
361
  def make_thing_pass
362
- @thing.photo = uploaded_file_with_content('test.jpg', "\xff\xd8")
362
+ @thing.photo = uploaded_file('test.jpg')
363
363
  end
364
364
 
365
365
  def make_thing_fail
366
- @thing.photo = uploaded_file_with_content('test.avi', "RIFF AVI ")
366
+ @thing.photo = uploaded_file('test.mov')
367
367
  end
368
368
 
369
369
  it_should_behave_like "an ActiveRecord validation"
@@ -372,7 +372,7 @@ describe Validations do
372
372
  describe "when :matches is given" do
373
373
  before do
374
374
  Thing.validates_attachment_type_of :photo, :matches => /^image/
375
- @thing = Thing.new(:photo => uploaded_file)
375
+ @thing = Thing.new(:photo => uploaded_file('test.jpg'))
376
376
  end
377
377
 
378
378
  it "should pass if the attachment is nil" do
@@ -396,16 +396,16 @@ describe Validations do
396
396
  describe "when the value is a symbol" do
397
397
  before do
398
398
  Thing.validates_attachment_type_of :photo, :is => :image
399
- @thing = Thing.new(:photo => uploaded_file)
399
+ @thing = Thing.new(:photo => uploaded_file('test.jpg'))
400
400
  end
401
401
 
402
402
  it "should pass if the symbol matches the Attachment type" do
403
- @thing.photo = uploaded_file_with_content('test.jpg', "\xff\xd8")
403
+ @thing.photo = uploaded_file('test.jpg')
404
404
  @thing.should be_valid
405
405
  end
406
406
 
407
407
  it "should fail if the symbol does not match the Attachment type" do
408
- @thing.photo = uploaded_file_with_content('test.avi', "RIFF AVI ")
408
+ @thing.photo = uploaded_file('test.mov')
409
409
  @thing.should_not be_valid
410
410
  @thing.errors.on(:photo).should_not be_blank
411
411
  end
@@ -413,7 +413,7 @@ describe Validations do
413
413
 
414
414
  describe "when a mime-type string is given" do
415
415
  before do
416
- @thing = Thing.new(:photo => uploaded_file)
416
+ @thing = Thing.new(:photo => uploaded_file('test.jpg'))
417
417
  end
418
418
 
419
419
  describe "when the string contains optional parameters" do
@@ -486,6 +486,6 @@ describe Validations do
486
486
  end
487
487
  end
488
488
 
489
- it_should_use_i18n_key(:attachment_wrong_type, :matches => /\Aimage/){@thing.photo = uploaded_file_with_content('test.avi', "RIFF AVI ")}
489
+ it_should_use_i18n_key(:attachment_wrong_type, :matches => /\Aimage/){@thing.photo = uploaded_file('test.mov')}
490
490
  end
491
491
  end