Skip to content
Snippets Groups Projects
Commit 869877ab authored by haseeb's avatar haseeb Committed by Rémy Coutable
Browse files

fix for special charecter in file names

parent 73e48b74
No related branches found
No related tags found
No related merge requests found
---
title: Fix search results when a filename would contain a special character.
merge_request: 15606
author: haseebeqx
type: fixed
Loading
Loading
@@ -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}$/, '')
Loading
Loading
Loading
Loading
@@ -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
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment