added attachment_fu and made the set of changes
[selectricity-live] / vendor / plugins / attachment_fu / test / base_attachment_tests.rb
diff --git a/vendor/plugins/attachment_fu/test/base_attachment_tests.rb b/vendor/plugins/attachment_fu/test/base_attachment_tests.rb
new file mode 100644 (file)
index 0000000..c9dbbd7
--- /dev/null
@@ -0,0 +1,57 @@
+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

Benjamin Mako Hill || Want to submit a patch?