Navigation Menu

Skip to content

Commit

Permalink
FIX: handle clicks counters in full quotes
Browse files Browse the repository at this point in the history
  • Loading branch information
ZogStriP committed May 17, 2019
1 parent 081eb76 commit 7696b92
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
11 changes: 8 additions & 3 deletions lib/cooked_post_processor.rb
Expand Up @@ -106,10 +106,15 @@ def remove_full_quote_on_direct_reply

return if previous.blank?

previous_text = Nokogiri::HTML::fragment(previous).text.strip
quoted_text = @doc.css("aside.quote:first-child blockquote").first&.text&.strip
# remove click counters
previous_doc = Nokogiri::HTML::fragment(previous)
previous_doc.css("span.clicks").remove

return if previous_text != quoted_text
previous_text = previous_doc.text.strip

quoted_text = @doc.css("aside.quote:first-child blockquote").first&.text&.strip || ""

return if previous_text.gsub(/(\s){2,}/, '\1') != quoted_text.gsub(/(\s){2,}/, '\1')

quote_regexp = /\A\s*\[quote.+?\[\/quote\]/im
quoteless_raw = @post.raw.sub(quote_regexp, "").strip
Expand Down
19 changes: 18 additions & 1 deletion spec/components/cooked_post_processor_spec.rb
Expand Up @@ -1305,7 +1305,7 @@

end

context "remove direct reply full quote" do
context "full quote on direct reply" do
fab!(:topic) { Fabricate(:topic) }
let!(:post) { Fabricate(:post, topic: topic, raw: 'this is the "first" post') }

Expand Down Expand Up @@ -1384,6 +1384,23 @@
expect(reply.raw).to eq("and this is the third reply")
end

it "works with click counters" do
post = Fabricate(:post,
topic: topic,
raw: "[Discourse](https://www.discourse.org) is amazing!",
cooked: %{<p><a href="https://www.discourse.org">Discourse <span class="badge badge-notification clicks" title="1 click">1</span></a> is amazing!</p>}
)

reply = Fabricate(:post,
topic: topic,
raw: "[quote]\n[Discourse](https://www.discourse.org) is amazing!\n[/quote]\nIt sure is :+1:"
)

CookedPostProcessor.new(reply).remove_full_quote_on_direct_reply

expect(reply.raw).to eq("It sure is :+1:")
end

end

end

1 comment on commit 7696b92

@discoursereviewbot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.