From 46aa59635daa8e389582ce33e88a0c1ce65f6f83 Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Wed, 3 Aug 2016 16:29:28 -0700 Subject: [PATCH 1/2] Handle a case in diffs where an empty file was added Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/20605 --- app/views/projects/diffs/_content.html.haml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/projects/diffs/_content.html.haml b/app/views/projects/diffs/_content.html.haml index b87b79b170eb..96131dc59707 100644 --- a/app/views/projects/diffs/_content.html.haml +++ b/app/views/projects/diffs/_content.html.haml @@ -14,13 +14,15 @@ This diff is collapsed. %a.click-to-expand Click to expand it. - - elsif diff_file.diff_lines.length > 0 + - elsif diff_file.diff_lines.present? - if diff_view == :parallel = render "projects/diffs/parallel_view", diff_file: diff_file, project: project, blob: blob - else = render "projects/diffs/text_file", diff_file: diff_file - else - - if diff_file.mode_changed? + - if diff_file.new_file && diff_file.diff_lines.empty? + .nothing-here-block File is empty + - elsif diff_file.mode_changed? .nothing-here-block File mode changed - elsif diff_file.renamed_file .nothing-here-block File moved -- GitLab From a5fa596355f01c7c52493ab91c8356aba49f008c Mon Sep 17 00:00:00 2001 From: Robert Speicher Date: Thu, 4 Aug 2016 13:54:32 -0700 Subject: [PATCH 2/2] WIP: Add view specs for projects/diffs/_content --- .../projects/diffs/_content.html.haml_spec.rb | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 spec/views/projects/diffs/_content.html.haml_spec.rb diff --git a/spec/views/projects/diffs/_content.html.haml_spec.rb b/spec/views/projects/diffs/_content.html.haml_spec.rb new file mode 100644 index 000000000000..abc6a92a5fb8 --- /dev/null +++ b/spec/views/projects/diffs/_content.html.haml_spec.rb @@ -0,0 +1,51 @@ +require 'rails_helper' + +describe 'projects/diffs/_content' do + context 'unsupported blobs' do + it 'renders nothing' do + allow(view).to receive(:blob).and_return(double) + + expect(rendered).to eq '' + end + end + + context 'supported blobs' do + def stub_blob(overrides = {}) + messages = overrides.reverse_merge(text?: true) + + allow(view).to receive(:blob).and_return(double(messages)) + end + + context 'diff is too large' do + it 'displays the correct message' do + stub_blob + allow(view).to receive(:diff_file).and_return(double(too_large?: true)) + + render + + expect(rendered) + .to include("This diff could not be displayed because it is too large.") + end + end + + context 'blob is too large' do + it 'displays the correct message' do + stub_blob(only_display_raw?: true) + allow(view).to receive(:diff_file).and_return(double(too_large?: false)) + + render + + expect(rendered) + .to include("This file is too large to display.") + end + end + + context 'blob text viewable' do + before do + allow(view).to receive(:blob_text_viewable?).and_return(true) + end + end + + context 'blob text unviewable' + end +end -- GitLab