diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2016-10-18 20:39:26 +0300 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2016-10-18 20:39:26 +0300 |
commit | 136ea6940792b0cd9814856a72fee5fd872c2be3 (patch) | |
tree | 7a8f5223016bcdcb3ab04eb77f3fe11607f8b6c1 | |
parent | 2f7e1c0ead6b6bca102c674707ea8ee55ba55fa1 (diff) | |
parent | 4012c695cb17f77f3fc928e9eef5c2fd679defc1 (diff) |
Merge branch '23311-fix-double-escaping' into 'master'
Stop event_commit_title from escaping its output
Fixes a double-escape issue (actually triple-escape!) viewing the activity feed
Closes #23311
Related to #23258 !6832
See merge request !6930
-rw-r--r-- | app/helpers/events_helper.rb | 2 | ||||
-rw-r--r-- | spec/helpers/events_helper_spec.rb | 17 |
2 files changed, 18 insertions, 1 deletions
diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb index bfedcb1c42b..f8ded05c31a 100644 --- a/app/helpers/events_helper.rb +++ b/app/helpers/events_helper.rb @@ -154,7 +154,7 @@ module EventsHelper end def event_commit_title(message) - escape_once(truncate(message.split("\n").first, length: 70)) + (message.split("\n").first || "").truncate(70) rescue "--broken encoding" end diff --git a/spec/helpers/events_helper_spec.rb b/spec/helpers/events_helper_spec.rb index 022aba0c0d0..594b40303bc 100644 --- a/spec/helpers/events_helper_spec.rb +++ b/spec/helpers/events_helper_spec.rb @@ -62,4 +62,21 @@ describe EventsHelper do expect(helper.event_note(input)).to eq(expected) end end + + describe '#event_commit_title' do + let(:message) { "foo & bar " + "A" * 70 + "\n" + "B" * 80 } + subject { helper.event_commit_title(message) } + + it "returns the first line, truncated to 70 chars" do + is_expected.to eq(message[0..66] + "...") + end + + it "is not html-safe" do + is_expected.not_to be_a(ActiveSupport::SafeBuffer) + end + + it "handles empty strings" do + expect(helper.event_commit_title("")).to eq("") + end + end end |