Commit c2788e4a authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'url_links_with_relative_url' into '7-8-stable'

Fix links to issues if instance is using relative urls.

Fix for https://github.com/gitlabhq/gitlabhq/issues/8767

See merge request !1574
parents bcc8dbd0 6327dd0e
...@@ -27,14 +27,20 @@ class GitlabIssueTrackerService < IssueTrackerService ...@@ -27,14 +27,20 @@ class GitlabIssueTrackerService < IssueTrackerService
end end
def project_url def project_url
project_issues_path(project) "#{gitlab_url}#{project_issues_path(project)}"
end end
def new_issue_url def new_issue_url
new_project_issue_path project_id: project "#{gitlab_url}#{new_project_issue_path(project_id: project)}"
end end
def issue_url(iid) def issue_url(iid)
"#{Gitlab.config.gitlab.url}#{project_issue_path(project_id: project, id: iid)}" "#{gitlab_url}#{project_issue_path(project_id: project, id: iid)}"
end
private
def gitlab_url
Gitlab.config.gitlab.relative_url_root.chomp("/") if Gitlab.config.gitlab.relative_url_root
end end
end end
...@@ -474,7 +474,7 @@ describe GitlabMarkdownHelper do ...@@ -474,7 +474,7 @@ describe GitlabMarkdownHelper do
# First issue link # First issue link
expect(groups[1]). expect(groups[1]).
to match(/href="#{project_issue_url(project, issues[0])}"/) to match(/href="#{project_issue_path(project, issues[0])}"/)
expect(groups[1]).to match(/##{issues[0].iid}$/) expect(groups[1]).to match(/##{issues[0].iid}$/)
# Internal commit link # Internal commit link
...@@ -483,7 +483,7 @@ describe GitlabMarkdownHelper do ...@@ -483,7 +483,7 @@ describe GitlabMarkdownHelper do
# Second issue link # Second issue link
expect(groups[3]). expect(groups[3]).
to match(/href="#{project_issue_url(project, issues[1])}"/) to match(/href="#{project_issue_path(project, issues[1])}"/)
expect(groups[3]).to match(/##{issues[1].iid}$/) expect(groups[3]).to match(/##{issues[1].iid}$/)
# Trailing commit link # Trailing commit link
...@@ -611,7 +611,7 @@ describe GitlabMarkdownHelper do ...@@ -611,7 +611,7 @@ describe GitlabMarkdownHelper do
end end
it "should generate absolute urls for refs" do it "should generate absolute urls for refs" do
expect(markdown("##{issue.iid}")).to include(project_issue_url(project, issue)) expect(markdown("##{issue.iid}")).to include(project_issue_path(project, issue))
end end
it "should generate absolute urls for emoji" do it "should generate absolute urls for emoji" do
......
# == Schema Information
#
# Table name: services
#
# id :integer not null, primary key
# type :string(255)
# title :string(255)
# project_id :integer
# created_at :datetime
# updated_at :datetime
# active :boolean default(FALSE), not null
# properties :text
# template :boolean default(FALSE)
#
require 'spec_helper'
describe GitlabIssueTrackerService do
describe "Associations" do
it { is_expected.to belong_to :project }
it { is_expected.to have_one :service_hook }
end
describe 'project and issue urls' do
let(:project) { create(:project) }
context 'with absolute urls' do
before do
@service = project.create_gitlab_issue_tracker_service(active: true)
end
after do
@service.destroy!
end
it 'should give the correct path' do
expect(@service.project_url).to eq("/#{project.path_with_namespace}/issues")
expect(@service.new_issue_url).to eq("/#{project.path_with_namespace}/issues/new")
expect(@service.issue_url(432)).to eq("/#{project.path_with_namespace}/issues/432")
end
end
context 'with enabled relative urls' do
before do
Settings.gitlab.stub(:relative_url_root).and_return("/gitlab/root")
@service = project.create_gitlab_issue_tracker_service(active: true)
end
after do
@service.destroy!
end
it 'should give the correct path' do
expect(@service.project_url).to eq("/gitlab/root/#{project.path_with_namespace}/issues")
expect(@service.new_issue_url).to eq("/gitlab/root/#{project.path_with_namespace}/issues/new")
expect(@service.issue_url(432)).to eq("/gitlab/root/#{project.path_with_namespace}/issues/432")
end
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