summaryrefslogtreecommitdiff
path: root/spec/helpers/avatars_helper_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/helpers/avatars_helper_spec.rb')
-rw-r--r--spec/helpers/avatars_helper_spec.rb192
1 files changed, 96 insertions, 96 deletions
diff --git a/spec/helpers/avatars_helper_spec.rb b/spec/helpers/avatars_helper_spec.rb
index aa0442ab847..122ee9dc476 100644
--- a/spec/helpers/avatars_helper_spec.rb
+++ b/spec/helpers/avatars_helper_spec.rb
@@ -1,87 +1,87 @@
-require 'rails_helper'
+require "rails_helper"
describe AvatarsHelper do
include UploadHelpers
let(:user) { create(:user) }
- describe '#project_icon & #group_icon' do
- shared_examples 'resource with a default avatar' do |source_type|
- it 'returns a default avatar div' do
+ describe "#project_icon & #group_icon" do
+ shared_examples "resource with a default avatar" do |source_type|
+ it "returns a default avatar div" do
expect(public_send("#{source_type}_icon", *helper_args))
.to match(%r{<div class="identicon bg\d+">F</div>})
end
end
- shared_examples 'resource with a custom avatar' do |source_type|
- it 'returns a custom avatar image' do
+ shared_examples "resource with a custom avatar" do |source_type|
+ it "returns a custom avatar image" do
expect(public_send("#{source_type}_icon", *helper_args))
.to eq "<img src=\"#{resource.avatar.url}\" alt=\"Banana sample\" />"
end
end
- context 'when providing a project' do
- it_behaves_like 'resource with a default avatar', 'project' do
- let(:resource) { create(:project, name: 'foo') }
+ context "when providing a project" do
+ it_behaves_like "resource with a default avatar", "project" do
+ let(:resource) { create(:project, name: "foo") }
let(:helper_args) { [resource] }
end
- it_behaves_like 'resource with a custom avatar', 'project' do
+ it_behaves_like "resource with a custom avatar", "project" do
let(:resource) { create(:project, :public, avatar: File.open(uploaded_image_temp_path)) }
let(:helper_args) { [resource] }
end
end
- context 'when providing a group' do
- it_behaves_like 'resource with a default avatar', 'group' do
- let(:resource) { create(:group, name: 'foo') }
+ context "when providing a group" do
+ it_behaves_like "resource with a default avatar", "group" do
+ let(:resource) { create(:group, name: "foo") }
let(:helper_args) { [resource] }
end
- it_behaves_like 'resource with a custom avatar', 'group' do
+ it_behaves_like "resource with a custom avatar", "group" do
let(:resource) { create(:group, avatar: File.open(uploaded_image_temp_path)) }
let(:helper_args) { [resource] }
end
end
end
- describe '#avatar_icon_for' do
- let!(:user) { create(:user, avatar: File.open(uploaded_image_temp_path), email: 'bar@example.com') }
- let(:email) { 'foo@example.com' }
+ describe "#avatar_icon_for" do
+ let!(:user) { create(:user, avatar: File.open(uploaded_image_temp_path), email: "bar@example.com") }
+ let(:email) { "foo@example.com" }
let!(:another_user) { create(:user, avatar: File.open(uploaded_image_temp_path), email: email) }
- it 'prefers the user to retrieve the avatar_url' do
+ it "prefers the user to retrieve the avatar_url" do
expect(helper.avatar_icon_for(user, email).to_s)
.to eq(user.avatar.url)
end
- it 'falls back to email lookup if no user given' do
+ it "falls back to email lookup if no user given" do
expect(helper.avatar_icon_for(nil, email).to_s)
.to eq(another_user.avatar.url)
end
end
- describe '#avatar_icon_for_email' do
+ describe "#avatar_icon_for_email" 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
+ 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_for_email(user.email).to_s)
.to eq(user.avatar.url)
end
end
- 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)
+ 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)
- helper.avatar_icon_for_email('foo@example.com', 20, 2)
+ helper.avatar_icon_for_email("foo@example.com", 20, 2)
end
end
- context 'without an email passed' do
- it 'calls gravatar_icon' do
+ context "without an email passed" do
+ it "calls gravatar_icon" do
expect(helper).to receive(:gravatar_icon).with(nil, 20, 2)
helper.avatar_icon_for_email(nil, 20, 2)
@@ -90,18 +90,18 @@ describe AvatarsHelper do
end
end
- describe '#avatar_icon_for_user' do
+ describe "#avatar_icon_for_user" do
let(:user) { create(:user, avatar: File.open(uploaded_image_temp_path)) }
- context 'with a user object passed' do
- it 'returns a relative URL for the avatar' do
+ context "with a user object passed" do
+ it "returns a relative URL for the avatar" do
expect(helper.avatar_icon_for_user(user).to_s)
.to eq(user.avatar.url)
end
end
- context 'without a user object passed' do
- it 'calls gravatar_icon' do
+ context "without a user object passed" do
+ it "calls gravatar_icon" do
expect(helper).to receive(:gravatar_icon).with(nil, 20, 2)
helper.avatar_icon_for_user(nil, 20, 2)
@@ -109,71 +109,71 @@ describe AvatarsHelper do
end
end
- describe '#gravatar_icon' do
- let(:user_email) { 'user@email.com' }
+ describe "#gravatar_icon" do
+ let(:user_email) { "user@email.com" }
- context 'with Gravatar disabled' do
+ context "with Gravatar disabled" do
before do
stub_application_setting(gravatar_enabled?: false)
end
- it 'returns a generic avatar' do
- expect(helper.gravatar_icon(user_email)).to match_asset_path('no_avatar.png')
+ it "returns a generic avatar" do
+ expect(helper.gravatar_icon(user_email)).to match_asset_path("no_avatar.png")
end
end
- context 'with Gravatar enabled' do
+ context "with Gravatar enabled" do
before do
stub_application_setting(gravatar_enabled?: true)
end
- it 'returns a generic avatar when email is blank' do
- expect(helper.gravatar_icon('')).to match_asset_path('no_avatar.png')
+ it "returns a generic avatar when email is blank" do
+ expect(helper.gravatar_icon("")).to match_asset_path("no_avatar.png")
end
- it 'returns a valid Gravatar URL' do
+ it "returns a valid Gravatar URL" do
stub_config_setting(https: false)
expect(helper.gravatar_icon(user_email))
- .to match('https://www.gravatar.com/avatar/b58c6f14d292556214bd64909bcdb118')
+ .to match("https://www.gravatar.com/avatar/b58c6f14d292556214bd64909bcdb118")
end
- it 'uses HTTPs when configured' do
+ it "uses HTTPs when configured" do
stub_config_setting(https: true)
expect(helper.gravatar_icon(user_email))
- .to match('https://secure.gravatar.com')
+ .to match("https://secure.gravatar.com")
end
- it 'returns custom gravatar path when gravatar_url is set' do
- stub_gravatar_setting(plain_url: 'http://example.local/?s=%{size}&hash=%{hash}')
+ it "returns custom gravatar path when gravatar_url is set" do
+ stub_gravatar_setting(plain_url: "http://example.local/?s=%{size}&hash=%{hash}")
expect(gravatar_icon(user_email, 20))
- .to eq('http://example.local/?s=40&hash=b58c6f14d292556214bd64909bcdb118')
+ .to eq("http://example.local/?s=40&hash=b58c6f14d292556214bd64909bcdb118")
end
- it 'accepts a custom size argument' do
- expect(helper.gravatar_icon(user_email, 64)).to include '?s=128'
+ it "accepts a custom size argument" do
+ expect(helper.gravatar_icon(user_email, 64)).to include "?s=128"
end
- it 'defaults size to 40@2x when given an invalid size' do
- expect(helper.gravatar_icon(user_email, nil)).to include '?s=80'
+ it "defaults size to 40@2x when given an invalid size" do
+ expect(helper.gravatar_icon(user_email, nil)).to include "?s=80"
end
- it 'accepts a scaling factor' do
- expect(helper.gravatar_icon(user_email, 40, 3)).to include '?s=120'
+ it "accepts a scaling factor" do
+ expect(helper.gravatar_icon(user_email, 40, 3)).to include "?s=120"
end
- it 'ignores case and surrounding whitespace' do
- normal = helper.gravatar_icon('foo@example.com')
- upcase = helper.gravatar_icon(' FOO@EXAMPLE.COM ')
+ it "ignores case and surrounding whitespace" do
+ normal = helper.gravatar_icon("foo@example.com")
+ upcase = helper.gravatar_icon(" FOO@EXAMPLE.COM ")
expect(normal).to eq upcase
end
end
end
- describe '#user_avatar' do
+ describe "#user_avatar" do
subject { helper.user_avatar(user: user) }
it "links to the user's profile" do
@@ -189,101 +189,101 @@ describe AvatarsHelper do
end
end
- describe '#user_avatar_without_link' do
- let(:options) { { user: user } }
+ describe "#user_avatar_without_link" do
+ let(:options) { {user: user} }
subject { helper.user_avatar_without_link(options) }
- it 'displays user avatar' do
+ it "displays user avatar" do
is_expected.to eq tag(
:img,
alt: "#{user.name}'s avatar",
src: avatar_icon_for_user(user, 16),
- data: { container: 'body' },
- class: 'avatar s16 has-tooltip',
+ data: {container: "body"},
+ class: "avatar s16 has-tooltip",
title: user.name
)
end
- context 'with css_class parameter' do
- let(:options) { { user: user, css_class: '.cat-pics' } }
+ context "with css_class parameter" do
+ let(:options) { {user: user, css_class: ".cat-pics"} }
- it 'uses provided css_class' do
+ it "uses provided css_class" do
is_expected.to eq tag(
:img,
alt: "#{user.name}'s avatar",
src: avatar_icon_for_user(user, 16),
- data: { container: 'body' },
+ data: {container: "body"},
class: "avatar s16 #{options[:css_class]} has-tooltip",
title: user.name
)
end
end
- context 'with size parameter' do
- let(:options) { { user: user, size: 99 } }
+ context "with size parameter" do
+ let(:options) { {user: user, size: 99} }
- it 'uses provided size' do
+ it "uses provided size" do
is_expected.to eq tag(
:img,
alt: "#{user.name}'s avatar",
src: avatar_icon_for_user(user, options[:size]),
- data: { container: 'body' },
+ data: {container: "body"},
class: "avatar s#{options[:size]} has-tooltip",
title: user.name
)
end
end
- context 'with url parameter' do
- let(:options) { { user: user, url: '/over/the/rainbow.png' } }
+ context "with url parameter" do
+ let(:options) { {user: user, url: "/over/the/rainbow.png"} }
- it 'uses provided url' do
+ it "uses provided url" do
is_expected.to eq tag(
:img,
alt: "#{user.name}'s avatar",
src: options[:url],
- data: { container: 'body' },
+ data: {container: "body"},
class: "avatar s16 has-tooltip",
title: user.name
)
end
end
- context 'with lazy parameter' do
- let(:options) { { user: user, lazy: true } }
+ context "with lazy parameter" do
+ let(:options) { {user: user, lazy: true} }
- it 'adds `lazy` class to class list, sets `data-src` with avatar URL and `src` with placeholder image' do
+ it "adds `lazy` class to class list, sets `data-src` with avatar URL and `src` with placeholder image" do
is_expected.to eq tag(
:img,
alt: "#{user.name}'s avatar",
src: LazyImageTagHelper.placeholder_image,
- data: { container: 'body', src: avatar_icon_for_user(user, 16) },
+ data: {container: "body", src: avatar_icon_for_user(user, 16)},
class: "avatar s16 has-tooltip lazy",
title: user.name
)
end
end
- context 'with has_tooltip parameter' do
- context 'with has_tooltip set to true' do
- let(:options) { { user: user, has_tooltip: true } }
+ context "with has_tooltip parameter" do
+ context "with has_tooltip set to true" do
+ let(:options) { {user: user, has_tooltip: true} }
- it 'adds has-tooltip' do
+ it "adds has-tooltip" do
is_expected.to eq tag(
:img,
alt: "#{user.name}'s avatar",
src: avatar_icon_for_user(user, 16),
- data: { container: 'body' },
+ data: {container: "body"},
class: "avatar s16 has-tooltip",
title: user.name
)
end
end
- context 'with has_tooltip set to false' do
- let(:options) { { user: user, has_tooltip: false } }
+ context "with has_tooltip set to false" do
+ let(:options) { {user: user, has_tooltip: false} }
- it 'does not add has-tooltip or data container' do
+ it "does not add has-tooltip or data container" do
is_expected.to eq tag(
:img,
alt: "#{user.name}'s avatar",
@@ -295,30 +295,30 @@ describe AvatarsHelper do
end
end
- context 'with user_name parameter' do
- let(:options) { { user_name: 'Tinky Winky', user_email: 'no@f.un' } }
+ context "with user_name parameter" do
+ let(:options) { {user_name: "Tinky Winky", user_email: "no@f.un"} }
- context 'with user parameter' do
- let(:options) { { user: user, user_name: 'Tinky Winky' } }
+ context "with user parameter" do
+ let(:options) { {user: user, user_name: "Tinky Winky"} }
- it 'prefers user parameter' do
+ it "prefers user parameter" do
is_expected.to eq tag(
:img,
alt: "#{user.name}'s avatar",
src: avatar_icon_for_user(user, 16),
- data: { container: 'body' },
+ data: {container: "body"},
class: "avatar s16 has-tooltip",
title: user.name
)
end
end
- it 'uses user_name and user_email parameter if user is not present' do
+ it "uses user_name and user_email parameter if user is not present" do
is_expected.to eq tag(
:img,
alt: "#{options[:user_name]}'s avatar",
src: avatar_icon_for_email(options[:user_email], 16),
- data: { container: 'body' },
+ data: {container: "body"},
class: "avatar s16 has-tooltip",
title: options[:user_name]
)