Commit c5de2ce7 authored by Douwe Maan's avatar Douwe Maan

Return full URLs from GitLabIssueTrackerService.

parent 28592ae4
......@@ -46,6 +46,7 @@ v 7.10.0 (unreleased)
- Refactor issue filtering
- AJAX selectbox for issue assignee and author filters
- Fix issue with missing options in issue filtering dropdown if selected one
- Get issue links in notification mail to work again.
v 7.9.0
- Send EmailsOnPush email when branch or tag is created or deleted.
......
......@@ -20,8 +20,13 @@
class GitlabIssueTrackerService < IssueTrackerService
include Rails.application.routes.url_helpers
prop_accessor :title, :description, :project_url, :issues_url, :new_issue_url
default_url_options[:host] = Gitlab.config.gitlab.host
default_url_options[:protocol] = Gitlab.config.gitlab.protocol
default_url_options[:port] = Gitlab.config.gitlab.port unless Gitlab.config.gitlab_on_standard_port?
default_url_options[:script_name] = Gitlab.config.gitlab.relative_url_root
prop_accessor :title, :description, :project_url, :issues_url, :new_issue_url
def default?
true
......@@ -32,20 +37,14 @@ class GitlabIssueTrackerService < IssueTrackerService
end
def project_url
"#{gitlab_url}#{namespace_project_issues_path(project.namespace, project)}"
namespace_project_issues_url(project.namespace, project)
end
def new_issue_url
"#{gitlab_url}#{new_namespace_project_issue_path(namespace_id: project.namespace, project_id: project)}"
new_namespace_project_issue_url(namespace_id: project.namespace, project_id: project)
end
def issue_url(iid)
"#{gitlab_url}#{namespace_project_issue_path(namespace_id: project.namespace, project_id: project, id: iid)}"
end
private
def gitlab_url
Gitlab.config.gitlab.relative_url_root.chomp("/") if Gitlab.config.gitlab.relative_url_root
namespace_project_issue_url(namespace_id: project.namespace, project_id: project, id: iid)
end
end
......@@ -522,7 +522,7 @@ describe GitlabMarkdownHelper do
# First issue link
expect(groups[1]).
to match(/href="#{namespace_project_issue_path(project.namespace, project, issues[0])}"/)
to match(/href="#{namespace_project_issue_url(project.namespace, project, issues[0])}"/)
expect(groups[1]).to match(/##{issues[0].iid}$/)
# Internal commit link
......@@ -531,7 +531,7 @@ describe GitlabMarkdownHelper do
# Second issue link
expect(groups[3]).
to match(/href="#{namespace_project_issue_path(project.namespace, project, issues[1])}"/)
to match(/href="#{namespace_project_issue_url(project.namespace, project, issues[1])}"/)
expect(groups[3]).to match(/##{issues[1].iid}$/)
# Trailing commit link
......
......@@ -39,15 +39,15 @@ describe GitlabIssueTrackerService do
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")
expect(@service.project_url).to eq("http://localhost/#{project.path_with_namespace}/issues")
expect(@service.new_issue_url).to eq("http://localhost/#{project.path_with_namespace}/issues/new")
expect(@service.issue_url(432)).to eq("http://localhost/#{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")
GitlabIssueTrackerService.default_url_options[:script_name] = "/gitlab/root"
@service = project.create_gitlab_issue_tracker_service(active: true)
end
......@@ -56,9 +56,9 @@ describe GitlabIssueTrackerService do
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")
expect(@service.project_url).to eq("http://localhost/gitlab/root/#{project.path_with_namespace}/issues")
expect(@service.new_issue_url).to eq("http://localhost/gitlab/root/#{project.path_with_namespace}/issues/new")
expect(@service.issue_url(432)).to eq("http://localhost/gitlab/root/#{project.path_with_namespace}/issues/432")
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