summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormicael.bergeron <micael.bergeron@solutionstlm.com>2017-09-11 11:17:59 -0400
committerGitLab Development <gitlab@local.local>2017-09-11 15:20:31 +0000
commita91101d0ac19e33b0f26acaa4c2f1207789641fb (patch)
treef10355cb20461bb48b8b618a5bdcf81e49de36c7
parentd70c3bbc149177037490c404a42896d8b486fbe8 (diff)
downloadgitlab-ce-a91101d0ac19e33b0f26acaa4c2f1207789641fb.tar.gz
rework the html_safe not to use haml's auto escaping
add feature test for inline diff in file header
-rw-r--r--app/views/projects/diffs/_file_header.html.haml6
-rw-r--r--changelogs/unreleased/37576-renamed-files-have-escaped-html-for-the-inline-diff-in-the-header.yml5
-rw-r--r--spec/features/projects/diffs/diff_show_spec.rb13
3 files changed, 21 insertions, 3 deletions
diff --git a/app/views/projects/diffs/_file_header.html.haml b/app/views/projects/diffs/_file_header.html.haml
index 466a628b746..d5b9f328098 100644
--- a/app/views/projects/diffs/_file_header.html.haml
+++ b/app/views/projects/diffs/_file_header.html.haml
@@ -17,12 +17,12 @@
= blob_icon diff_file.b_mode, diff_file.file_path
- if diff_file.renamed_file?
- - old_path, new_path = mark_inline_diffs(diff_file.old_path, diff_file.new_path)
+ - old_path, new_path = mark_inline_diffs(diff_file.old_path, diff_file.new_path).map(&:html_safe)
%strong.file-title-name.has-tooltip{ data: { title: diff_file.old_path, container: 'body' } }
- != old_path
+ = old_path
&rarr;
%strong.file-title-name.has-tooltip{ data: { title: diff_file.new_path, container: 'body' } }
- != new_path
+ = new_path
- else
%strong.file-title-name.has-tooltip{ data: { title: diff_file.file_path, container: 'body' } }
= diff_file.file_path
diff --git a/changelogs/unreleased/37576-renamed-files-have-escaped-html-for-the-inline-diff-in-the-header.yml b/changelogs/unreleased/37576-renamed-files-have-escaped-html-for-the-inline-diff-in-the-header.yml
new file mode 100644
index 00000000000..8c328eb0950
--- /dev/null
+++ b/changelogs/unreleased/37576-renamed-files-have-escaped-html-for-the-inline-diff-in-the-header.yml
@@ -0,0 +1,5 @@
+---
+title: Fix the diff file header from being html escaped for renamed files.
+merge_request: 14121
+author:
+type: fixed
diff --git a/spec/features/projects/diffs/diff_show_spec.rb b/spec/features/projects/diffs/diff_show_spec.rb
index bc102895aaf..a6f52c9ef58 100644
--- a/spec/features/projects/diffs/diff_show_spec.rb
+++ b/spec/features/projects/diffs/diff_show_spec.rb
@@ -108,6 +108,19 @@ feature 'Diff file viewer', :js do
end
end
+ context 'renamed file' do
+ before do
+ visit_commit('6907208d755b60ebeacb2e9dfea74c92c3449a1f')
+ end
+
+ it 'shows the filename with diff highlight' do
+ within('.file-header-content') do
+ expect(page).to have_css('.idiff.left.right.deletion')
+ expect(page).to have_content('files/js/commit.coffee')
+ end
+ end
+ end
+
context 'binary file that appears to be text in the first 1024 bytes' do
before do
# The file we're visiting is smaller than 10 KB and we want it collapsed