diff options
-rw-r--r-- | lib/gitlab/git/diff.rb | 8 | ||||
-rw-r--r-- | spec/helpers/blob_helper_spec.rb | 20 | ||||
-rw-r--r-- | spec/lib/gitlab/git/diff_spec.rb | 14 | ||||
-rw-r--r-- | spec/models/blob_viewer/base_spec.rb | 36 |
4 files changed, 25 insertions, 53 deletions
diff --git a/lib/gitlab/git/diff.rb b/lib/gitlab/git/diff.rb index e33fe4b305a..2462f766f17 100644 --- a/lib/gitlab/git/diff.rb +++ b/lib/gitlab/git/diff.rb @@ -230,9 +230,11 @@ module Gitlab end def too_large? - return @too_large if defined?(@too_large) - - @too_large = @diff.bytesize >= SIZE_LIMIT + if @too_large.nil? + @too_large = @diff.bytesize >= SIZE_LIMIT + else + @too_large + end end def too_large! diff --git a/spec/helpers/blob_helper_spec.rb b/spec/helpers/blob_helper_spec.rb index 366c635e8e8..bd3a3d24b84 100644 --- a/spec/helpers/blob_helper_spec.rb +++ b/spec/helpers/blob_helper_spec.rb @@ -168,21 +168,19 @@ describe BlobHelper do controller.params[:id] = File.join('master', blob.path) end - context 'for error :too_large' do - context 'when the size limit can be overridden' do - let(:blob) { fake_blob(size: 2.megabytes) } + context 'for error :collapsed' do + let(:blob) { fake_blob(size: 2.megabytes) } - it 'includes a "load it anyway" link' do - expect(helper.blob_render_error_options(viewer)).to include(/load it anyway/) - end + it 'includes a "load it anyway" link' do + expect(helper.blob_render_error_options(viewer)).to include(/load it anyway/) end + end - context 'when the size limit cannot be overridden' do - let(:blob) { fake_blob(size: 10.megabytes) } + context 'for error :too_large' do + let(:blob) { fake_blob(size: 10.megabytes) } - it 'does not include a "load it anyway" link' do - expect(helper.blob_render_error_options(viewer)).not_to include(/load it anyway/) - end + it 'does not include a "load it anyway" link' do + expect(helper.blob_render_error_options(viewer)).not_to include(/load it anyway/) end context 'when the viewer is rich' do diff --git a/spec/lib/gitlab/git/diff_spec.rb b/spec/lib/gitlab/git/diff_spec.rb index 1a71e3728a1..8e24168ad71 100644 --- a/spec/lib/gitlab/git/diff_spec.rb +++ b/spec/lib/gitlab/git/diff_spec.rb @@ -85,12 +85,12 @@ EOT # The patch total size is 200, with lines between 21 and 54. # This is a quick-and-dirty way to test this. Ideally, a new patch is # added to the test repo with a size that falls between the real limits. - stub_const("#{described_class}::MAX_SIZE", 150) - stub_const("#{described_class}::OVERRIDABLE_MAX_SIZE", 100) + stub_const("#{described_class}::SIZE_LIMIT", 150) + stub_const("#{described_class}::COLLAPSE_LIMIT", 100) end it 'prunes the diff as a large diff instead of as a collapsed diff' do - diff = described_class.new(@rugged_diff, collapse: true) + diff = described_class.new(@rugged_diff, expanded: false) expect(diff.diff).to be_empty expect(diff).to be_too_large @@ -299,15 +299,15 @@ EOT describe '#collapsed?' do it 'returns true for a diff that is quite large' do - diff = described_class.new(diff: 'a' * 20480) + diff = described_class.new({ diff: 'a' * 20480 }, expanded: false) - expect(diff).to be_collapsible + expect(diff).to be_collapsed end it 'returns false for a diff that is small enough' do - diff = described_class.new(diff: 'a') + diff = described_class.new({ diff: 'a' }, expanded: false) - expect(diff).not_to be_collapsible + expect(diff).not_to be_collapsed end end diff --git a/spec/models/blob_viewer/base_spec.rb b/spec/models/blob_viewer/base_spec.rb index 0749ff78777..d56379eb59d 100644 --- a/spec/models/blob_viewer/base_spec.rb +++ b/spec/models/blob_viewer/base_spec.rb @@ -105,36 +105,8 @@ describe BlobViewer::Base, model: true do end end - describe '#can_expanded?' do - context 'when the blob size is larger than the collapse limit' do - context 'when the blob size is larger than the size limit' do - let(:blob) { fake_blob(path: 'file.pdf', size: 10.megabytes) } - - it 'returns false' do - expect(viewer.can_expanded?).to be_falsey - end - end - - context 'when the blob size is smaller than the size limit' do - let(:blob) { fake_blob(path: 'file.pdf', size: 2.megabytes) } - - it 'returns true' do - expect(viewer.can_expanded?).to be_truthy - end - end - end - - context 'when the blob size is smaller than the collapse limit' do - let(:blob) { fake_blob(path: 'file.pdf', size: 10.kilobytes) } - - it 'returns false' do - expect(viewer.can_expanded?).to be_falsey - end - end - end - describe '#render_error' do - context 'when the size limit is overridden' do + context 'when expanded' do before do viewer.expanded = true end @@ -156,12 +128,12 @@ describe BlobViewer::Base, model: true do end end - context 'when the size limit is not overridden' do + context 'when not expanded' do context 'when the blob size is larger than the collapse limit' do let(:blob) { fake_blob(path: 'file.pdf', size: 2.megabytes) } - it 'returns :too_large' do - expect(viewer.render_error).to eq(:too_large) + it 'returns :collapsed' do + expect(viewer.render_error).to eq(:collapsed) end end |