From 69b2d64334de9fe1aba10d96be127fe1a39bed22 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Fri, 23 Jun 2017 17:12:06 -0400 Subject: [PATCH] FIX: letter avatars in quotes on subfolders installs are broken --- app/models/user.rb | 1 + spec/components/pretty_text_spec.rb | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/app/models/user.rb b/app/models/user.rb index 659fd7aa09..38db6852c9 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 823da26f2e..c1a2d34662 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