diff options
Diffstat (limited to 'spec/helpers/application_helper_spec.rb')
-rw-r--r-- | spec/helpers/application_helper_spec.rb | 91 |
1 files changed, 31 insertions, 60 deletions
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index c1966c273db..cc7f889b927 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -82,71 +82,42 @@ describe ApplicationHelper do end describe 'avatar_icon' do - let(:user) { create(:user, avatar: File.open(uploaded_image_temp_path)) } - - context 'using an email' do - context 'when there is a matching user' do - it 'returns a relative URL for the avatar' do - expect(helper.avatar_icon(user.email).to_s). - to eq("/uploads/system/user/avatar/#{user.id}/banana_sample.gif") - end - - context 'when an asset_host is set in the config' do - let(:asset_host) { 'http://assets' } - - before do - allow(ActionController::Base).to receive(:asset_host).and_return(asset_host) - end - - it 'returns an absolute URL on that asset host' do - expect(helper.avatar_icon(user.email, only_path: false).to_s). - to eq("#{asset_host}/uploads/system/user/avatar/#{user.id}/banana_sample.gif") - end - end - - context 'when only_path is set to false' do - it 'returns an absolute URL for the avatar' do - expect(helper.avatar_icon(user.email, only_path: false).to_s). - to eq("#{gitlab_host}/uploads/system/user/avatar/#{user.id}/banana_sample.gif") - end - end - - context 'when the GitLab instance is at a relative URL' do - before do - stub_config_setting(relative_url_root: '/gitlab') - # Must be stubbed after the stub above, and separately - stub_config_setting(url: Settings.send(:build_gitlab_url)) - end - - it 'returns a relative URL with the correct prefix' do - expect(helper.avatar_icon(user.email).to_s). - to eq("/gitlab/uploads/system/user/avatar/#{user.id}/banana_sample.gif") - end - end - end + it 'returns an url for the avatar' do + user = create(:user, avatar: File.open(uploaded_image_temp_path)) - context 'when no user exists for the email' do - it 'calls gravatar_icon' do - expect(helper).to receive(:gravatar_icon).with('foo@example.com', 20, 2) + avatar_url = "/uploads/system/user/avatar/#{user.id}/banana_sample.gif" - helper.avatar_icon('foo@example.com', 20, 2) - end - end + expect(helper.avatar_icon(user.email).to_s).to match(avatar_url) + + allow(ActionController::Base).to receive(:asset_host).and_return(gitlab_host) + avatar_url = "#{gitlab_host}/uploads/system/user/avatar/#{user.id}/banana_sample.gif" + + expect(helper.avatar_icon(user.email).to_s).to match(avatar_url) end - describe 'using a user' do - context 'when only_path is true' do - it 'returns a relative URL for the avatar' do - expect(helper.avatar_icon(user, only_path: true).to_s). - to eq("/uploads/system/user/avatar/#{user.id}/banana_sample.gif") - end - end + it 'returns an url for the avatar with relative url' do + stub_config_setting(relative_url_root: '/gitlab') + # Must be stubbed after the stub above, and separately + stub_config_setting(url: Settings.send(:build_gitlab_url)) + + user = create(:user, avatar: File.open(uploaded_image_temp_path)) + + expect(helper.avatar_icon(user.email).to_s). + to match("/gitlab/uploads/system/user/avatar/#{user.id}/banana_sample.gif") + end + + it 'calls gravatar_icon when no User exists with the given email' do + expect(helper).to receive(:gravatar_icon).with('foo@example.com', 20, 2) + + helper.avatar_icon('foo@example.com', 20, 2) + end + + describe 'using a User' do + it 'returns an URL for the avatar' do + user = create(:user, avatar: File.open(uploaded_image_temp_path)) - context 'when only_path is false' do - it 'returns an absolute URL for the avatar' do - expect(helper.avatar_icon(user, only_path: false).to_s). - to eq("#{gitlab_host}/uploads/system/user/avatar/#{user.id}/banana_sample.gif") - end + expect(helper.avatar_icon(user).to_s). + to match("/uploads/system/user/avatar/#{user.id}/banana_sample.gif") end end end |