Commit 4c1d90824fcd9a6a5107b33b76af0158c06dcd3e

Authored by Jeroen Jacobs
1 parent 88004758
Exists in master and in 1 other branch production

Uses https-links for gravatar when using ssl

app/helpers/problems_helper.rb
... ... @@ -12,7 +12,7 @@ module ProblemsHelper
12 12  
13 13 def gravatar_tag(email, options = {})
14 14 return nil unless email.present?
15   -
  15 +
16 16 image_tag gravatar_url(email, options), :alt => email, :class => 'gravatar'
17 17 end
18 18  
... ... @@ -25,7 +25,8 @@ module ProblemsHelper
25 25 options.reverse_merge! default_options
26 26 params = options.extract!(:s, :d).delete_if { |k, v| v.blank? }
27 27 email_hash = Digest::MD5.hexdigest(email)
28   - "http://www.gravatar.com/avatar/#{email_hash}?#{params.to_query}"
  28 + url = request.ssl? ? "https://secure.gravatar.com" : "http://www.gravatar.com"
  29 + "#{url}/avatar/#{email_hash}?#{params.to_query}"
29 30 end
30 31 end
31 32  
... ...
spec/helpers/problems_helper_spec.rb
... ... @@ -42,10 +42,32 @@ describe ProblemsHelper do
42 42 describe "#gravatar_url" do
43 43 context "no email" do
44 44 let(:email) { nil }
45   -
  45 +
46 46 it "should return nil" do
47 47 helper.gravatar_url(email).should be_nil
48 48 end
49 49 end
  50 +
  51 + context "without ssl" do
  52 + let(:email) { "gravatar@example.com" }
  53 + let(:email_hash) { Digest::MD5.hexdigest email }
  54 +
  55 + it "should return the http url" do
  56 + helper.gravatar_url(email).should eq("http://www.gravatar.com/avatar/#{email_hash}?d=identicon")
  57 + end
  58 + end
  59 +
  60 + context "with ssl" do
  61 + let(:email) { "gravatar@example.com" }
  62 + let(:email_hash) { Digest::MD5.hexdigest email }
  63 +
  64 + it "should return the http url" do
  65 + # request.env['HTTPS'] = 'on'
  66 + ActionController::TestRequest.any_instance.stub ssl?: true
  67 +
  68 +
  69 + helper.gravatar_url(email).should eq("https://secure.gravatar.com/avatar/#{email_hash}?d=identicon")
  70 + end
  71 + end
50 72 end
51 73 end
... ...