diff --git a/app/models/user.rb b/app/models/user.rb index 659fd7aa09a..38db6852c92 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -573,6 +573,7 @@ class User < ActiveRecord::Base # TODO it may be worth caching this in a distributed cache, should be benched if SiteSetting.external_system_avatars_enabled url = SiteSetting.external_system_avatars_url.dup + url = "#{Discourse::base_uri}#{url}" unless url =~ /^https?:\/\// url.gsub! "{color}", letter_avatar_color(username.downcase) url.gsub! "{username}", username url.gsub! "{first_letter}", username[0].downcase diff --git a/spec/components/pretty_text_spec.rb b/spec/components/pretty_text_spec.rb index 823da26f2e6..c1a2d34662f 100644 --- a/spec/components/pretty_text_spec.rb +++ b/spec/components/pretty_text_spec.rb @@ -49,7 +49,21 @@ HTML it "trims spaces on quote params" do expect(PrettyText.cook("[quote=\"#{user.username}, post:555, topic: 666\"]ddd[/quote]")).to match_html "" end + end + describe "with letter avatar" do + let(:user) { Fabricate(:user) } + + context "subfolder" do + before do + GlobalSetting.stubs(:relative_url_root).returns("/forum") + Discourse.stubs(:base_uri).returns("/forum") + end + + it "should have correct avatar url" do + expect(PrettyText.cook("[quote=\"#{user.username}, post:123, topic:456, full:true\"]ddd[/quote]")).to include("/forum/letter_avatar_proxy") + end + end end it "should handle 3 mentions in a row" do