application_helper_spec.rb 2.73 KB
Newer Older
1 2 3
require 'spec_helper'

describe ApplicationHelper do
4 5 6 7 8 9 10 11 12 13 14 15
  describe 'current_controller?' do
    before do
      controller.stub!(:controller_name).and_return('foo')
    end

    it "returns true when controller matches argument" do
      current_controller?(:foo).should be_true
    end

    it "returns false when controller does not match argument" do
      current_controller?(:bar).should_not be_true
    end
16 17 18 19 20

    it "should take any number of arguments" do
      current_controller?(:baz, :bar).should_not be_true
      current_controller?(:baz, :bar, :foo).should be_true
    end
21 22
  end

Robert Speicher's avatar
Robert Speicher committed
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
  describe 'current_action?' do
    before do
      stub!(:action_name).and_return('foo')
    end

    it "returns true when action matches argument" do
      current_action?(:foo).should be_true
    end

    it "returns false when action does not match argument" do
      current_action?(:bar).should_not be_true
    end

    it "should take any number of arguments" do
      current_action?(:baz, :bar).should_not be_true
      current_action?(:baz, :bar, :foo).should be_true
    end
  end

42 43 44 45
  describe "gravatar_icon" do
    let(:user_email) { 'user@email.com' }

    it "should return a generic avatar path when Gravatar is disabled" do
46
      Gitlab.config.gravatar.stub(:enabled).and_return(false)
47 48 49 50 51 52 53
      gravatar_icon(user_email).should == 'no_avatar.png'
    end

    it "should return a generic avatar path when email is blank" do
      gravatar_icon('').should == 'no_avatar.png'
    end

Sergey Linnik's avatar
Sergey Linnik committed
54 55 56 57 58
    it "should return default gravatar url" do
      stub!(:request).and_return(double(:ssl? => false))
      gravatar_icon(user_email).should match('http://www.gravatar.com/avatar/b58c6f14d292556214bd64909bcdb118')
    end

59 60 61 62 63
    it "should use SSL when appropriate" do
      stub!(:request).and_return(double(:ssl? => true))
      gravatar_icon(user_email).should match('https://secure.gravatar.com')
    end

Sergey Linnik's avatar
Sergey Linnik committed
64 65
    it "should return custom gravatar path when gravatar_url is set" do
      stub!(:request).and_return(double(:ssl? => false))
66
      Gitlab.config.gravatar.stub(:plain_url).and_return('http://example.local/?s=%{size}&hash=%{hash}')
Sergey Linnik's avatar
Sergey Linnik committed
67 68 69
      gravatar_icon(user_email, 20).should == 'http://example.local/?s=20&hash=b58c6f14d292556214bd64909bcdb118'
    end

70 71 72 73
    it "should accept a custom size" do
      stub!(:request).and_return(double(:ssl? => false))
      gravatar_icon(user_email, 64).should match(/\?s=64/)
    end
Sergey Linnik's avatar
Sergey Linnik committed
74 75 76 77 78 79 80 81 82 83 84

    it "should use default size when size is wrong" do
      stub!(:request).and_return(double(:ssl? => false))
      gravatar_icon(user_email, nil).should match(/\?s=40/)
    end

    it "should be case insensitive" do
      stub!(:request).and_return(double(:ssl? => false))
      gravatar_icon(user_email).should == gravatar_icon(user_email.upcase + " ")
    end

85 86
  end
end