Commit 0f48abf2 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'fix-help-page-links' into 'master'

Fix error links in help index page when access it with url `http://gitlab.example.com/help/` which have an extra slash 

Fixes #24349

See merge request !7396
parents 4e9b02c3 b9928280
...@@ -7,8 +7,8 @@ class HelpController < ApplicationController ...@@ -7,8 +7,8 @@ class HelpController < ApplicationController
@help_index = File.read(Rails.root.join('doc', 'README.md')) @help_index = File.read(Rails.root.join('doc', 'README.md'))
# Prefix Markdown links with `help/` unless they already have been # Prefix Markdown links with `help/` unless they already have been
# See http://rubular.com/r/nwwhzH6Z8X # See http://rubular.com/r/ie2MlpdUMq
@help_index.gsub!(/(\]\()(?!help\/)([^\)\(]+)(\))/, '\1help/\2\3') @help_index.gsub!(/(\]\()(\/?help\/)?([^\)\(]+\))/, '\1/help/\3')
end end
def show def show
......
---
title: Fix error links in help index page
merge_request: 7396
author: Fu Xu
...@@ -7,6 +7,40 @@ describe HelpController do ...@@ -7,6 +7,40 @@ describe HelpController do
sign_in(user) sign_in(user)
end end
describe 'GET #index' do
context 'when url prefixed without /help/' do
it 'has correct url prefix' do
stub_readme("[API](api/README.md)")
get :index
expect(assigns[:help_index]).to eq '[API](/help/api/README.md)'
end
end
context 'when url prefixed with help/' do
it 'will be an absolute path' do
stub_readme("[API](help/api/README.md)")
get :index
expect(assigns[:help_index]).to eq '[API](/help/api/README.md)'
end
end
context 'when url prefixed with help' do
it 'will be an absolute path' do
stub_readme("[API](helpful_hints/README.md)")
get :index
expect(assigns[:help_index]).to eq '[API](/help/helpful_hints/README.md)'
end
end
context 'when url prefixed with /help/' do
it 'will not be changed' do
stub_readme("[API](/help/api/README.md)")
get :index
expect(assigns[:help_index]).to eq '[API](/help/api/README.md)'
end
end
end
describe 'GET #show' do describe 'GET #show' do
context 'for Markdown formats' do context 'for Markdown formats' do
context 'when requested file exists' do context 'when requested file exists' do
...@@ -72,4 +106,8 @@ describe HelpController do ...@@ -72,4 +106,8 @@ describe HelpController do
end end
end end
end end
def stub_readme(content)
allow(File).to receive(:read).and_return(content)
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment