fix for special charecter in file names
This commit is contained in:
parent
73e48b745c
commit
869877ab26
3 changed files with 19 additions and 2 deletions
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix search results when a filename would contain a special character.
|
||||
merge_request: 15606
|
||||
author: haseebeqx
|
||||
type: fixed
|
|
@ -47,8 +47,11 @@ module Gitlab
|
|||
startline = 0
|
||||
|
||||
result.each_line.each_with_index do |line, index|
|
||||
if line =~ /^.*:.*:\d+:/
|
||||
ref, filename, startline = line.split(':')
|
||||
matches = line.match(/^(?<ref>[^:]*):(?<filename>.*):(?<startline>\d+):/)
|
||||
if matches
|
||||
ref = matches[:ref]
|
||||
filename = matches[:filename]
|
||||
startline = matches[:startline]
|
||||
startline = startline.to_i - index
|
||||
extname = Regexp.escape(File.extname(filename))
|
||||
basename = filename.sub(/#{extname}$/, '')
|
||||
|
|
|
@ -70,6 +70,15 @@ describe Gitlab::ProjectSearchResults do
|
|||
|
||||
subject { described_class.parse_search_result(search_result) }
|
||||
|
||||
it 'can correctly parse filenames including ":"' do
|
||||
special_char_result = "\nmaster:testdata/project::function1.yaml-1----\nmaster:testdata/project::function1.yaml:2:test: data1\n"
|
||||
|
||||
blob = described_class.parse_search_result(special_char_result)
|
||||
|
||||
expect(blob.ref).to eq('master')
|
||||
expect(blob.filename).to eq('testdata/project::function1.yaml')
|
||||
end
|
||||
|
||||
it "returns a valid FoundBlob" do
|
||||
is_expected.to be_an Gitlab::SearchResults::FoundBlob
|
||||
expect(subject.id).to be_nil
|
||||
|
|
Loading…
Reference in a new issue