summaryrefslogtreecommitdiffstats
path: root/test/integration
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-04-01 13:44:58 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-04-01 13:44:58 +0000
commit1cd6a2aa84db83b127cc037021dc6351877790d0 (patch)
treeae3eaa0a3f6d15c62771db779f19f15fce4b1d87 /test/integration
parent122ba564b9c5c475c360e45af51fa92cfe969657 (diff)
downloadredmine-1cd6a2aa84db83b127cc037021dc6351877790d0.tar.gz
redmine-1cd6a2aa84db83b127cc037021dc6351877790d0.zip
Adds User and Version custom field format that can be used to reference a project member or version in custom fields (#2096).
These new field formats are available for project, issue, version and time entry custom fields. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5272 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/integration')
-rw-r--r--test/integration/issues_test.rb75
1 files changed, 73 insertions, 2 deletions
diff --git a/test/integration/issues_test.rb b/test/integration/issues_test.rb
index b6955d252..a640d1c01 100644
--- a/test/integration/issues_test.rb
+++ b/test/integration/issues_test.rb
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2008 Jean-Philippe Lang
+# Redmine - project management software
+# Copyright (C) 2006-2011 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -126,4 +126,75 @@ class IssuesTest < ActionController::IntegrationTest
:attributes => { :href => '/projects/ecookbook/issues?page=2' }
end
+
+ def test_issue_with_user_custom_field
+ @field = IssueCustomField.create!(:name => 'Tester', :field_format => 'user', :is_for_all => true, :trackers => Tracker.all)
+ Role.anonymous.add_permission! :add_issues, :edit_issues
+ users = Project.find(1).users
+ tester = users.first
+
+ # Issue form
+ get '/projects/ecookbook/issues/new'
+ assert_response :success
+ assert_tag :select,
+ :attributes => {:name => "issue[custom_field_values][#{@field.id}]"},
+ :children => {:count => (users.size + 1)}, # +1 for blank value
+ :child => {
+ :tag => 'option',
+ :attributes => {:value => tester.id.to_s},
+ :content => tester.name
+ }
+
+ # Create issue
+ assert_difference 'Issue.count' do
+ post '/projects/ecookbook/issues',
+ :issue => {
+ :tracker_id => '1',
+ :priority_id => '4',
+ :subject => 'Issue with user custom field',
+ :custom_field_values => {@field.id.to_s => users.first.id.to_s}
+ }
+ end
+ issue = Issue.first(:order => 'id DESC')
+ assert_response 302
+
+ # Issue view
+ follow_redirect!
+ assert_tag :th,
+ :content => /Tester/,
+ :sibling => {
+ :tag => 'td',
+ :content => tester.name
+ }
+ assert_tag :select,
+ :attributes => {:name => "issue[custom_field_values][#{@field.id}]"},
+ :children => {:count => (users.size + 1)}, # +1 for blank value
+ :child => {
+ :tag => 'option',
+ :attributes => {:value => tester.id.to_s, :selected => 'selected'},
+ :content => tester.name
+ }
+
+ # Update issue
+ new_tester = users[1]
+ assert_difference 'Journal.count' do
+ put "/issues/#{issue.id}",
+ :notes => 'Updating custom field',
+ :issue => {
+ :custom_field_values => {@field.id.to_s => new_tester.id.to_s}
+ }
+ end
+ assert_response 302
+
+ # Issue view
+ follow_redirect!
+ assert_tag :content => 'Tester',
+ :ancestor => {:tag => 'ul', :attributes => {:class => /details/}},
+ :sibling => {
+ :content => tester.name,
+ :sibling => {
+ :content => new_tester.name
+ }
+ }
+ end
end