From f1ae453688aef224d5d8dd9e715811a7517e1bb2 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Wed, 30 Apr 2008 09:09:28 +0000 Subject: [PATCH] Fixed: Updating tickets add a time log with zero hours (#1147). git-svn-id: http://redmine.rubyforge.org/svn/trunk@1385 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/core_ext/string/conversions.rb | 2 +- test/functional/issues_controller_test.rb | 25 ++++++++++++++-------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/redmine/core_ext/string/conversions.rb b/lib/redmine/core_ext/string/conversions.rb index 7444445b0..41149f5ea 100644 --- a/lib/redmine/core_ext/string/conversions.rb +++ b/lib/redmine/core_ext/string/conversions.rb @@ -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 diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 042a8f3f2..a6d2ca6e3 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -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)