5a3e6fdff9
This commit, introduced in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/23812, fixes a problem creating a displaying image diff notes when the image is stored in LFS. The main problem was that `Gitlab::Diff::File` was returning an invalid valid in `text?` for this kind of files. It also fixes a rendering problem with other LFS files, like text ones. They LFS pointer shouldn't be shown when LFS is enabled for the project, but they were.
125 lines
2.5 KiB
Ruby
125 lines
2.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
describe Gitlab::BlobHelper do
|
|
include FakeBlobHelpers
|
|
|
|
let(:project) { create(:project) }
|
|
let(:blob) { fake_blob(path: 'file.txt') }
|
|
let(:large_blob) { fake_blob(path: 'test.pdf', size: 2.megabytes, binary: true) }
|
|
|
|
describe '#extname' do
|
|
it 'returns the extension' do
|
|
expect(blob.extname).to eq('.txt')
|
|
end
|
|
end
|
|
|
|
describe '#known_extension?' do
|
|
it 'returns true' do
|
|
expect(blob.known_extension?).to be_truthy
|
|
end
|
|
end
|
|
|
|
describe '#viewable' do
|
|
it 'returns true' do
|
|
expect(blob.viewable?).to be_truthy
|
|
end
|
|
|
|
it 'returns false' do
|
|
expect(large_blob.viewable?).to be_falsey
|
|
end
|
|
end
|
|
|
|
describe '#large?' do
|
|
it 'returns false' do
|
|
expect(blob.large?).to be_falsey
|
|
end
|
|
|
|
it 'returns true' do
|
|
expect(large_blob.large?).to be_truthy
|
|
end
|
|
end
|
|
|
|
describe '#binary?' do
|
|
it 'returns true' do
|
|
expect(large_blob.binary?).to be_truthy
|
|
end
|
|
|
|
it 'returns false' do
|
|
expect(blob.binary?).to be_falsey
|
|
end
|
|
end
|
|
|
|
describe '#text?' do
|
|
it 'returns true' do
|
|
expect(blob.text_in_repo?).to be_truthy
|
|
end
|
|
|
|
it 'returns false' do
|
|
expect(large_blob.text_in_repo?).to be_falsey
|
|
end
|
|
end
|
|
|
|
describe '#image?' do
|
|
it 'returns false' do
|
|
expect(blob.image?).to be_falsey
|
|
end
|
|
end
|
|
|
|
describe '#mime_type' do
|
|
it 'returns text/plain' do
|
|
expect(blob.mime_type).to eq('text/plain')
|
|
end
|
|
|
|
it 'returns application/pdf' do
|
|
expect(large_blob.mime_type).to eq('application/pdf')
|
|
end
|
|
end
|
|
|
|
describe '#binary_mime_type?' do
|
|
it 'returns false' do
|
|
expect(blob.binary_mime_type?).to be_falsey
|
|
end
|
|
end
|
|
|
|
describe '#lines' do
|
|
it 'returns the payload in an Array' do
|
|
expect(blob.lines).to eq(['foo'])
|
|
end
|
|
end
|
|
|
|
describe '#content_type' do
|
|
it 'returns text/plain' do
|
|
expect(blob.content_type).to eq('text/plain; charset=utf-8')
|
|
end
|
|
|
|
it 'returns text/plain' do
|
|
expect(large_blob.content_type).to eq('application/pdf')
|
|
end
|
|
end
|
|
|
|
describe '#encoded_newlines_re' do
|
|
it 'returns a regular expression' do
|
|
expect(blob.encoded_newlines_re).to eq(/\r\n|\r|\n/)
|
|
end
|
|
end
|
|
|
|
describe '#ruby_encoding' do
|
|
it 'returns UTF-8' do
|
|
expect(blob.ruby_encoding).to eq('UTF-8')
|
|
end
|
|
end
|
|
|
|
describe '#encoding' do
|
|
it 'returns UTF-8' do
|
|
expect(blob.ruby_encoding).to eq('UTF-8')
|
|
end
|
|
end
|
|
|
|
describe '#empty?' do
|
|
it 'returns false' do
|
|
expect(blob.empty?).to be_falsey
|
|
end
|
|
end
|
|
end
|