From cf1b60e0cfa7d1a8f4a80d686649cc12e73a634e Mon Sep 17 00:00:00 2001 From: hukl Date: Fri, 24 Apr 2009 11:43:08 +0200 Subject: Integrated basic Asset upload functionality. You can upload files now and use their url in pages. --- .../matchers/have_attached_file_matcher_test.rb | 21 +++++++++ ...alidate_attachment_content_type_matcher_test.rb | 30 +++++++++++++ .../validate_attachment_presence_matcher_test.rb | 21 +++++++++ .../validate_attachment_size_matcher_test.rb | 50 ++++++++++++++++++++++ 4 files changed, 122 insertions(+) create mode 100644 vendor/plugins/paperclip/test/matchers/have_attached_file_matcher_test.rb create mode 100644 vendor/plugins/paperclip/test/matchers/validate_attachment_content_type_matcher_test.rb create mode 100644 vendor/plugins/paperclip/test/matchers/validate_attachment_presence_matcher_test.rb create mode 100644 vendor/plugins/paperclip/test/matchers/validate_attachment_size_matcher_test.rb (limited to 'vendor/plugins/paperclip/test/matchers') diff --git a/vendor/plugins/paperclip/test/matchers/have_attached_file_matcher_test.rb b/vendor/plugins/paperclip/test/matchers/have_attached_file_matcher_test.rb new file mode 100644 index 00000000..b29ec372 --- /dev/null +++ b/vendor/plugins/paperclip/test/matchers/have_attached_file_matcher_test.rb @@ -0,0 +1,21 @@ +require 'test/helper' + +class HaveAttachedFileMatcherTest < Test::Unit::TestCase + context "have_attached_file" do + setup do + @dummy_class = reset_class "Dummy" + reset_table "dummies" + @matcher = self.class.have_attached_file(:avatar) + end + + should "reject a class with no attachment" do + assert_rejects @matcher, @dummy_class + end + + should "accept a class with an attachment" do + modify_table("dummies"){|d| d.string :avatar_file_name } + @dummy_class.has_attached_file :avatar + assert_accepts @matcher, @dummy_class + end + end +end diff --git a/vendor/plugins/paperclip/test/matchers/validate_attachment_content_type_matcher_test.rb b/vendor/plugins/paperclip/test/matchers/validate_attachment_content_type_matcher_test.rb new file mode 100644 index 00000000..241eb5f1 --- /dev/null +++ b/vendor/plugins/paperclip/test/matchers/validate_attachment_content_type_matcher_test.rb @@ -0,0 +1,30 @@ +require 'test/helper' + +class ValidateAttachmentContentTypeMatcherTest < Test::Unit::TestCase + context "validate_attachment_content_type" do + setup do + reset_table("dummies") do |d| + d.string :avatar_file_name + end + @dummy_class = reset_class "Dummy" + @dummy_class.has_attached_file :avatar + @matcher = self.class.validate_attachment_content_type(:avatar). + allowing(%w(image/png image/jpeg)). + rejecting(%w(audio/mp3 application/octet-stream)) + end + + should "reject a class with no validation" do + assert_rejects @matcher, @dummy_class + end + + should "reject a class with a validation that doesn't match" do + @dummy_class.validates_attachment_content_type :avatar, :content_type => %r{audio/.*} + assert_rejects @matcher, @dummy_class + end + + should "accept a class with a validation" do + @dummy_class.validates_attachment_content_type :avatar, :content_type => %r{image/.*} + assert_accepts @matcher, @dummy_class + end + end +end diff --git a/vendor/plugins/paperclip/test/matchers/validate_attachment_presence_matcher_test.rb b/vendor/plugins/paperclip/test/matchers/validate_attachment_presence_matcher_test.rb new file mode 100644 index 00000000..860a7604 --- /dev/null +++ b/vendor/plugins/paperclip/test/matchers/validate_attachment_presence_matcher_test.rb @@ -0,0 +1,21 @@ +require 'test/helper' + +class ValidateAttachmentPresenceMatcherTest < Test::Unit::TestCase + context "validate_attachment_presence" do + setup do + reset_table("dummies"){|d| d.string :avatar_file_name } + @dummy_class = reset_class "Dummy" + @dummy_class.has_attached_file :avatar + @matcher = self.class.validate_attachment_presence(:avatar) + end + + should "reject a class with no validation" do + assert_rejects @matcher, @dummy_class + end + + should "accept a class with a validation" do + @dummy_class.validates_attachment_presence :avatar + assert_accepts @matcher, @dummy_class + end + end +end diff --git a/vendor/plugins/paperclip/test/matchers/validate_attachment_size_matcher_test.rb b/vendor/plugins/paperclip/test/matchers/validate_attachment_size_matcher_test.rb new file mode 100644 index 00000000..7e4c9b40 --- /dev/null +++ b/vendor/plugins/paperclip/test/matchers/validate_attachment_size_matcher_test.rb @@ -0,0 +1,50 @@ +require 'test/helper' + +class ValidateAttachmentSizeMatcherTest < Test::Unit::TestCase + context "validate_attachment_size" do + setup do + reset_table("dummies") do |d| + d.string :avatar_file_name + end + @dummy_class = reset_class "Dummy" + @dummy_class.has_attached_file :avatar + end + + context "of limited size" do + setup{ @matcher = self.class.validate_attachment_size(:avatar).in(256..1024) } + + should "reject a class with no validation" do + assert_rejects @matcher, @dummy_class + end + + should "reject a class with a validation that's too high" do + @dummy_class.validates_attachment_size :avatar, :in => 256..2048 + assert_rejects @matcher, @dummy_class + end + + should "reject a class with a validation that's too low" do + @dummy_class.validates_attachment_size :avatar, :in => 0..1024 + assert_rejects @matcher, @dummy_class + end + + should "accept a class with a validation that matches" do + @dummy_class.validates_attachment_size :avatar, :in => 256..1024 + assert_accepts @matcher, @dummy_class + end + end + + context "validates_attachment_size with infinite range" do + setup{ @matcher = self.class.validate_attachment_size(:avatar) } + + should "accept a class with an upper limit" do + @dummy_class.validates_attachment_size :avatar, :less_than => 1 + assert_accepts @matcher, @dummy_class + end + + should "accept a class with no upper limit" do + @dummy_class.validates_attachment_size :avatar, :greater_than => 1 + assert_accepts @matcher, @dummy_class + end + end + end +end -- cgit v1.3