diff --git a/lib/final_destination.rb b/lib/final_destination.rb index 35aac08e3b0..66c2ff4cf23 100644 --- a/lib/final_destination.rb +++ b/lib/final_destination.rb @@ -86,6 +86,7 @@ class FinalDestination end ) @stop_at_blocked_pages = @opts[:stop_at_blocked_pages] + @extra_headers = @opts[:headers] end def self.connection_timeout @@ -120,6 +121,7 @@ class FinalDestination "Host" => @uri.hostname + (@include_port_in_host_header ? ":#{@uri.port}" : ""), } + result.merge!(@extra_headers) if @extra_headers result["Cookie"] = @cookie if @cookie result diff --git a/lib/retrieve_title.rb b/lib/retrieve_title.rb index d75cae8f5ac..c00e27ed523 100644 --- a/lib/retrieve_title.rb +++ b/lib/retrieve_title.rb @@ -78,6 +78,9 @@ module RetrieveTitle stop_at_blocked_pages: true, max_redirects: max_redirects, initial_https_redirect_ignore_limit: initial_https_redirect_ignore_limit, + headers: { + Accept: "text/html,*/*", + }, ) current = nil diff --git a/spec/models/topic_link_spec.rb b/spec/models/topic_link_spec.rb index ca80227ff3d..773d34c8009 100644 --- a/spec/models/topic_link_spec.rb +++ b/spec/models/topic_link_spec.rb @@ -1,18 +1,13 @@ # frozen_string_literal: true RSpec.describe TopicLink do - it { is_expected.to validate_presence_of :url } - - def test_uri - URI.parse(Discourse.base_url) - end - + let(:test_uri) { URI.parse(Discourse.base_url) } fab!(:topic) { Fabricate(:topic, title: "unique topic name") } - fab!(:user) { topic.user } - fab!(:post) + it { is_expected.to validate_presence_of :url } + it "can't link to the same topic" do ftl = TopicLink.new(url: "/t/#{topic.id}", topic_id: topic.id, link_topic_id: topic.id) expect(ftl.valid?).to eq(false) @@ -25,7 +20,7 @@ RSpec.describe TopicLink do # prepare a title for one of the links stub_request(:get, non_png).with( headers: { - "Accept" => "*/*", + "Accept" => "text/html,*/*", "Accept-Encoding" => "gzip", "Host" => "b.com", }, @@ -273,6 +268,7 @@ RSpec.describe TopicLink do let(:post) do Fabricate(:post, topic: topic, user: user, raw: "faq link here") end + before { TopicLink.extract_from(post) } it "does not extract a link" do