added attachment_fu and made the set of changes
[selectricity-live] / vendor / plugins / attachment_fu / test / validation_test.rb
diff --git a/vendor/plugins/attachment_fu/test/validation_test.rb b/vendor/plugins/attachment_fu/test/validation_test.rb
new file mode 100644 (file)
index 0000000..a14cf99
--- /dev/null
@@ -0,0 +1,55 @@
+require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
+
+class ValidationTest < Test::Unit::TestCase
+  def test_should_invalidate_big_files
+    @attachment = SmallAttachment.new
+    assert !@attachment.valid?
+    assert @attachment.errors.on(:size)
+    
+    @attachment.size = 2000
+    assert !@attachment.valid?
+    assert @attachment.errors.on(:size), @attachment.errors.full_messages.to_sentence
+    
+    @attachment.size = 1000
+    assert !@attachment.valid?
+    assert_nil @attachment.errors.on(:size)
+  end
+
+  def test_should_invalidate_small_files
+    @attachment = BigAttachment.new
+    assert !@attachment.valid?
+    assert @attachment.errors.on(:size)
+    
+    @attachment.size = 2000
+    assert !@attachment.valid?
+    assert @attachment.errors.on(:size), @attachment.errors.full_messages.to_sentence
+    
+    @attachment.size = 1.megabyte
+    assert !@attachment.valid?
+    assert_nil @attachment.errors.on(:size)
+  end
+  
+  def test_should_validate_content_type
+    @attachment = PdfAttachment.new
+    assert !@attachment.valid?
+    assert @attachment.errors.on(:content_type)
+
+    @attachment.content_type = 'foo'
+    assert !@attachment.valid?
+    assert @attachment.errors.on(:content_type)
+
+    @attachment.content_type = 'pdf'
+    assert !@attachment.valid?
+    assert_nil @attachment.errors.on(:content_type)
+  end
+
+  def test_should_require_filename
+    @attachment = Attachment.new
+    assert !@attachment.valid?
+    assert @attachment.errors.on(:filename)
+    
+    @attachment.filename = 'foo'
+    assert !@attachment.valid?
+    assert_nil @attachment.errors.on(:filename)
+  end
+end
\ No newline at end of file

Benjamin Mako Hill || Want to submit a patch?