summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/repositories_controller.rb3
-rw-r--r--test/functional/repositories_controller_test.rb8
2 files changed, 10 insertions, 1 deletions
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index 2db9c3f92..ad0ff7f13 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -229,7 +229,8 @@ class RepositoriesController < ApplicationController
# Adds a related issue to a changeset
# POST /projects/:project_id/repository/(:repository_id/)revisions/:rev/issues
def add_related_issue
- @issue = @changeset.find_referenced_issue_by_id(params[:issue_id])
+ issue_id = params[:issue_id].to_s.sub(/^#/,'')
+ @issue = @changeset.find_referenced_issue_by_id(issue_id)
if @issue && (!@issue.visible? || @changeset.issues.include?(@issue))
@issue = nil
end
diff --git a/test/functional/repositories_controller_test.rb b/test/functional/repositories_controller_test.rb
index ec1847fcd..18558cde1 100644
--- a/test/functional/repositories_controller_test.rb
+++ b/test/functional/repositories_controller_test.rb
@@ -199,6 +199,14 @@ class RepositoriesControllerTest < ActionController::TestCase
assert_include 'Feature request #2', response.body
end
+ def test_add_related_issue_should_accept_issue_id_with_sharp
+ @request.session[:user_id] = 2
+ assert_difference 'Changeset.find(103).issues.size' do
+ xhr :post, :add_related_issue, :id => 1, :rev => 4, :issue_id => "#2", :format => 'js'
+ end
+ assert_equal [2], Changeset.find(103).issue_ids
+ end
+
def test_add_related_issue_with_invalid_issue_id
@request.session[:user_id] = 2
assert_no_difference 'Changeset.find(103).issues.size' do