OSDN Git Service

Allow setting an issue's notes via params[:issue][:notes]. (XML API)
authorEric Davis <edavis@littlestreamsoftware.com>
Fri, 27 Aug 2010 20:08:59 +0000 (20:08 +0000)
committerEric Davis <edavis@littlestreamsoftware.com>
Fri, 27 Aug 2010 20:08:59 +0000 (20:08 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4048 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/issues_controller.rb
test/integration/issues_api_test.rb

index f10ba03..0364e30 100644 (file)
@@ -270,7 +270,7 @@ private
     @edit_allowed = User.current.allowed_to?(:edit_issues, @project)
     @time_entry = TimeEntry.new
     
-    @notes = params[:notes]
+    @notes = params[:notes] || (params[:issue].present? ? params[:issue][:notes] : nil)
     @issue.init_journal(User.current, @notes)
     # User can change issue attributes only if he has :edit permission or if a workflow transition is allowed
     if (@edit_allowed || !@allowed_statuses.empty?) && params[:issue]
index a1e2cb7..e26cf64 100644 (file)
@@ -198,7 +198,7 @@ class IssuesApiTest < ActionController::IntegrationTest
     setup do
       @issue_count = Issue.count
       @journal_count = Journal.count
-      @attributes = {:subject => 'API update'}
+      @attributes = {:subject => 'API update', :notes => 'A new note'}
 
       put '/issues/1.xml', {:issue => @attributes}, :authorization => credentials('jsmith')
     end
@@ -214,10 +214,15 @@ class IssuesApiTest < ActionController::IntegrationTest
       assert_equal Journal.count, @journal_count + 1
     end
 
+    should "add the note to the journal" do
+      journal = Journal.last
+      assert_equal "A new note", journal.notes
+    end
+
     should "update the issue" do
       issue = Issue.find(1)
       @attributes.each do |attribute, value|
-        assert_equal value, issue.send(attribute)
+        assert_equal value, issue.send(attribute) unless attribute == :notes
       end
     end
     
@@ -252,7 +257,7 @@ class IssuesApiTest < ActionController::IntegrationTest
     setup do
       @issue_count = Issue.count
       @journal_count = Journal.count
-      @attributes = {:subject => 'API update'}
+      @attributes = {:subject => 'API update', :notes => 'A new note'}
 
       put '/issues/1.json', {:issue => @attributes}, :authorization => credentials('jsmith')
     end
@@ -268,13 +273,18 @@ class IssuesApiTest < ActionController::IntegrationTest
       assert_equal Journal.count, @journal_count + 1
     end
 
+    should "add the note to the journal" do
+      journal = Journal.last
+      assert_equal "A new note", journal.notes
+    end
+
     should "update the issue" do
       issue = Issue.find(1)
       @attributes.each do |attribute, value|
-        assert_equal value, issue.send(attribute)
+        assert_equal value, issue.send(attribute) unless attribute == :notes
       end
     end
-    
+
   end
   
   context "PUT /issues/1.json with failed update" do