--- /dev/null
+module BaseAttachmentTests
+ def test_should_create_file_from_uploaded_file
+ assert_created do
+ attachment = upload_file :filename => '/files/foo.txt'
+ assert_valid attachment
+ assert !attachment.db_file.new_record? if attachment.respond_to?(:db_file)
+ assert attachment.image?
+ assert !attachment.size.zero?
+ #assert_equal 3, attachment.size
+ assert_nil attachment.width
+ assert_nil attachment.height
+ end
+ end
+
+ def test_reassign_attribute_data
+ assert_created 1 do
+ attachment = upload_file :filename => '/files/rails.png'
+ assert_valid attachment
+ assert attachment.size > 0, "no data was set"
+
+ attachment.temp_data = 'wtf'
+ assert attachment.save_attachment?
+ attachment.save!
+
+ assert_equal 'wtf', attachment_model.find(attachment.id).send(:current_data)
+ end
+ end
+
+ def test_no_reassign_attribute_data_on_nil
+ assert_created 1 do
+ attachment = upload_file :filename => '/files/rails.png'
+ assert_valid attachment
+ assert attachment.size > 0, "no data was set"
+
+ attachment.temp_data = nil
+ assert !attachment.save_attachment?
+ end
+ end
+
+ def test_should_overwrite_old_contents_when_updating
+ attachment = upload_file :filename => '/files/rails.png'
+ assert_not_created do # no new db_file records
+ use_temp_file 'files/rails.png' do |file|
+ attachment.filename = 'rails2.png'
+ attachment.temp_path = File.join(fixture_path, file)
+ attachment.save!
+ end
+ end
+ end
+
+ def test_should_save_without_updating_file
+ attachment = upload_file :filename => '/files/foo.txt'
+ assert_valid attachment
+ assert !attachment.save_attachment?
+ assert_nothing_raised { attachment.save! }
+ end
+end
\ No newline at end of file