]> source.dussan.org Git - redmine.git/commitdiff
Fixed: Updating tickets add a time log with zero hours (#1147).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 30 Apr 2008 09:09:28 +0000 (09:09 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Wed, 30 Apr 2008 09:09:28 +0000 (09:09 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1385 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/core_ext/string/conversions.rb
test/functional/issues_controller_test.rb

index 7444445b0767d18a56b1da291b5813fe15149eee..41149f5eadc689c63c3a26583242ef60db5d820d 100644 (file)
@@ -32,7 +32,7 @@ module Redmine #:nodoc:
           end
           # 2,5 => 2.5
           s.gsub!(',', '.')
-          s.to_f
+          begin; Kernel.Float(s); rescue; nil; end
         end
       end
     end
index 042a8f3f2c8e111d7404ad1554eba3631dfbb667..a6d2ca6e3a641da239bcae0348a00987289a6eb4 100644 (file)
@@ -169,13 +169,15 @@ class IssuesControllerTest < Test::Unit::TestCase
                :issue => {:tracker_id => 1,
                           :subject => 'This is the test_new issue',
                           :description => 'This is the description',
-                          :priority_id => 5},
+                          :priority_id => 5,
+                          :estimated_hours => ''},
                :custom_fields => {'2' => 'Value for field 2'}
     assert_redirected_to 'issues/show'
     
     issue = Issue.find_by_subject('This is the test_new issue')
     assert_not_nil issue
     assert_equal 2, issue.author_id
+    assert_nil issue.estimated_hours
     v = issue.custom_values.find_by_custom_field_id(2)
     assert_not_nil v
     assert_equal 'Value for field 2', v.value
@@ -254,10 +256,13 @@ class IssuesControllerTest < Test::Unit::TestCase
     issue = Issue.find(1)
     assert_equal 1, issue.status_id
     @request.session[:user_id] = 2
-    post :edit,
-         :id => 1,
-         :issue => { :status_id => 2, :assigned_to_id => 3 },
-         :notes => 'Assigned to dlopper'
+    assert_difference('TimeEntry.count', 0) do
+      post :edit,
+           :id => 1,
+           :issue => { :status_id => 2, :assigned_to_id => 3 },
+           :notes => 'Assigned to dlopper',
+           :time_entry => { :hours => '', :comments => '', :activity_id => Enumeration.get_values('ACTI').first }
+    end
     assert_redirected_to 'issues/show/1'
     issue.reload
     assert_equal 2, issue.status_id
@@ -288,10 +293,12 @@ class IssuesControllerTest < Test::Unit::TestCase
   def test_post_edit_with_note_and_spent_time
     @request.session[:user_id] = 2
     spent_hours_before = Issue.find(1).spent_hours
-    post :edit,
-         :id => 1,
-         :notes => '2.5 hours added',
-         :time_entry => { :hours => '2.5', :comments => '', :activity_id => Enumeration.get_values('ACTI').first }
+    assert_difference('TimeEntry.count') do
+      post :edit,
+           :id => 1,
+           :notes => '2.5 hours added',
+           :time_entry => { :hours => '2.5', :comments => '', :activity_id => Enumeration.get_values('ACTI').first }
+    end
     assert_redirected_to 'issues/show/1'
     
     issue = Issue.find(1)