Merge branch 'fix/wiki-find-page-invalid-encoding' into 'master'

Fix finding wiki pages when they have invalidly-encoded content

Closes #43715

See merge request gitlab-org/gitlab-ce!18856
This commit is contained in:
Robert Speicher 2018-05-10 14:47:04 +00:00
commit f667bbceab
4 changed files with 31 additions and 1 deletions

View file

@ -1 +1 @@
0.99.0 0.100.0

View file

@ -0,0 +1,5 @@
---
title: Fix finding wiki pages when they have invalidly-encoded content
merge_request: 18856
author:
type: fixed

View file

@ -7,6 +7,20 @@ module Gollum
end end
require "gollum-lib" require "gollum-lib"
module Gollum
class Page
def text_data(encoding = nil)
data = if raw_data.respond_to?(:encoding)
raw_data.force_encoding(encoding || Encoding::UTF_8)
else
raw_data
end
Gitlab::EncodingHelper.encode!(data)
end
end
end
Rails.application.configure do Rails.application.configure do
config.after_initialize do config.after_initialize do
Gollum::Page.per_page = Kaminari.config.default_per_page Gollum::Page.per_page = Kaminari.config.default_per_page

View file

@ -159,6 +159,17 @@ describe ProjectWiki do
expect(page.title).to eq("autre pagé") expect(page.title).to eq("autre pagé")
end end
end end
context 'pages with invalidly-encoded content' do
before do
create_page("encoding is fun", "f\xFCr".b)
end
it "can find the page" do
page = subject.find_page("encoding is fun")
expect(page.content).to eq("fr")
end
end
end end
context 'when Gitaly wiki_find_page is enabled' do context 'when Gitaly wiki_find_page is enabled' do