diff options
author | Nick Thomas <nick@gitlab.com> | 2018-03-12 12:43:32 +0000 |
---|---|---|
committer | Ian Baum <ibaum@gitlab.com> | 2018-03-15 13:13:52 -0500 |
commit | e5944b812d53b145f915c6a532a44f79e8ad7f1c (patch) | |
tree | de18c29520c1db1c1159de7d1a880dae3b3304a4 | |
parent | bf95d272e7221140cdf0ee36dae8f2c5ed350b35 (diff) | |
download | gitlab-ce-e5944b812d53b145f915c6a532a44f79e8ad7f1c.tar.gz |
Merge branch 'fix-code-search-500-with-non-ascii-filename' into 'master'
Fix code and wiki search results when filename is non-ASCII
See merge request gitlab-org/gitlab-ce!17685
-rw-r--r-- | changelogs/unreleased/fix-code-search-500-with-non-ascii-filename.yml | 5 | ||||
-rw-r--r-- | lib/gitlab/search_results.rb | 4 | ||||
-rw-r--r-- | spec/lib/gitlab/project_search_results_spec.rb | 16 |
3 files changed, 21 insertions, 4 deletions
diff --git a/changelogs/unreleased/fix-code-search-500-with-non-ascii-filename.yml b/changelogs/unreleased/fix-code-search-500-with-non-ascii-filename.yml new file mode 100644 index 00000000000..29e3b7be985 --- /dev/null +++ b/changelogs/unreleased/fix-code-search-500-with-non-ascii-filename.yml @@ -0,0 +1,5 @@ +--- +title: Fix code and wiki search results when filename is non-ASCII +merge_request: +author: +type: fixed diff --git a/lib/gitlab/search_results.rb b/lib/gitlab/search_results.rb index 781783f4d97..c637b85b9f7 100644 --- a/lib/gitlab/search_results.rb +++ b/lib/gitlab/search_results.rb @@ -7,8 +7,8 @@ module Gitlab def initialize(opts = {}) @id = opts.fetch(:id, nil) - @filename = opts.fetch(:filename, nil) - @basename = opts.fetch(:basename, nil) + @filename = encode_utf8(opts.fetch(:filename, nil)) + @basename = encode_utf8(opts.fetch(:basename, nil)) @ref = opts.fetch(:ref, nil) @startline = opts.fetch(:startline, nil) @data = encode_utf8(opts.fetch(:data, nil)) diff --git a/spec/lib/gitlab/project_search_results_spec.rb b/spec/lib/gitlab/project_search_results_spec.rb index d8250e4b4c6..367de8434f2 100644 --- a/spec/lib/gitlab/project_search_results_spec.rb +++ b/spec/lib/gitlab/project_search_results_spec.rb @@ -108,14 +108,26 @@ describe Gitlab::ProjectSearchResults do context 'when the search returns non-ASCII data' do context 'with UTF-8' do - let(:results) { project.repository.search_files_by_content("файл", 'master') } + let(:results) { project.repository.search_files_by_content('файл', 'master') } it 'returns results as UTF-8' do expect(subject.filename).to eq('encoding/russian.rb') expect(subject.basename).to eq('encoding/russian') expect(subject.ref).to eq('master') expect(subject.startline).to eq(1) - expect(subject.data).to eq("Хороший файл") + expect(subject.data).to eq('Хороший файл') + end + end + + context 'with UTF-8 in the filename' do + let(:results) { project.repository.search_files_by_content('webhook', 'master') } + + it 'returns results as UTF-8' do + expect(subject.filename).to eq('encoding/テスト.txt') + expect(subject.basename).to eq('encoding/テスト') + expect(subject.ref).to eq('master') + expect(subject.startline).to eq(3) + expect(subject.data).to include('WebHookの確認') end end |