summaryrefslogtreecommitdiff
path: root/spec/helpers/issues_helper_spec.rb
diff options
context:
space:
mode:
authorAndrew8xx8 <avk@8xx8.ru>2013-02-11 17:32:29 +0400
committerAndrew8xx8 <avk@8xx8.ru>2013-02-28 16:11:13 +0400
commit16c720fd966ccb70a7642c59b81b23f74f00c122 (patch)
tree14b67a96d17e84af07e305035f9377e07303e779 /spec/helpers/issues_helper_spec.rb
parentf13600845d2ccec816337234eb5f1dccd40777f7 (diff)
downloadgitlab-ce-16c720fd966ccb70a7642c59b81b23f74f00c122.tar.gz
Issues helper improved
Diffstat (limited to 'spec/helpers/issues_helper_spec.rb')
-rw-r--r--spec/helpers/issues_helper_spec.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb
new file mode 100644
index 00000000000..7d2ac8c7d84
--- /dev/null
+++ b/spec/helpers/issues_helper_spec.rb
@@ -0,0 +1,54 @@
+require "spec_helper"
+
+describe IssuesHelper do
+ let(:project) { create(:project) }
+ let(:issue) { create(:issue, project: project) }
+ let(:ext_project) { create(:redmine_project) }
+
+ describe :title_for_issue do
+ it "should return issue title if used internal tracker" do
+ @project = project
+ title_for_issue(issue.id).should eq issue.title
+ end
+
+ it "should always return empty string if used external tracker" do
+ @project = ext_project
+ title_for_issue(rand(100)).should eq ""
+ end
+
+ it "should always return empty string if project nil" do
+ @project = nil
+
+ title_for_issue(rand(100)).should eq ""
+ end
+ end
+
+ describe :url_for_issue do
+ let(:issue_id) { 3 }
+ let(:issues_url) { "http://redmine/:project_id/:issues_tracker_id/:id" }
+ let(:ext_expected) do
+ issues_url.gsub(':id', issue_id.to_s)
+ .gsub(':project_id', ext_project.id.to_s)
+ .gsub(':issues_tracker_id', ext_project.issues_tracker_id.to_s)
+ end
+ let(:int_expected) { polymorphic_path([project, issue]) }
+
+ it "should return internal path if used internal tracker" do
+ @project = project
+ url_for_issue(issue.id).should match(int_expected)
+ end
+
+ it "should return path to external tracker" do
+ @project = ext_project
+ Settings[:issues_tracker][ext_project.issues_tracker]["issues_url"] = issues_url
+
+ url_for_issue(issue_id).should match(ext_expected)
+ end
+
+ it "should return empty string if project nil" do
+ @project = nil
+
+ url_for_issue(issue.id).should eq ""
+ end
+ end
+end