Merged updates from trunk into stable branch
[feedcatcher.git] / vendor / rails / actionmailer / test / asset_host_test.rb
diff --git a/vendor/rails/actionmailer/test/asset_host_test.rb b/vendor/rails/actionmailer/test/asset_host_test.rb
new file mode 100644 (file)
index 0000000..1c92dd2
--- /dev/null
@@ -0,0 +1,54 @@
+require 'abstract_unit'
+
+class AssetHostMailer < ActionMailer::Base
+  def email_with_asset(recipient)
+    recipients recipient
+    subject    "testing email containing asset path while asset_host is set"
+    from       "tester@example.com"
+  end
+end
+
+class AssetHostTest < Test::Unit::TestCase
+  def setup
+    set_delivery_method :test
+    ActionMailer::Base.perform_deliveries = true
+    ActionMailer::Base.deliveries = []
+
+    @recipient = 'test@localhost'
+  end
+
+  def teardown
+    restore_delivery_method
+  end
+
+  def test_asset_host_as_string
+    ActionController::Base.asset_host = "http://www.example.com"
+    mail = AssetHostMailer.deliver_email_with_asset(@recipient)
+    assert_equal "<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail.body.strip
+  end
+
+  def test_asset_host_as_one_arguement_proc
+    ActionController::Base.asset_host = Proc.new { |source|
+      if source.starts_with?('/images')
+        "http://images.example.com"
+      else
+        "http://assets.example.com"
+      end
+    }
+    mail = AssetHostMailer.deliver_email_with_asset(@recipient)
+    assert_equal "<img alt=\"Somelogo\" src=\"http://images.example.com/images/somelogo.png\" />", mail.body.strip
+  end
+
+  def test_asset_host_as_two_arguement_proc
+    ActionController::Base.asset_host = Proc.new {|source,request|
+      if request && request.ssl?
+        "https://www.example.com"
+      else
+        "http://www.example.com"
+      end
+    }
+    mail = nil
+    assert_nothing_raised { mail = AssetHostMailer.deliver_email_with_asset(@recipient) }
+    assert_equal "<img alt=\"Somelogo\" src=\"http://www.example.com/images/somelogo.png\" />", mail.body.strip
+  end
+end
\ No newline at end of file