diff --git a/tracks/app/controllers/todos_controller.rb b/tracks/app/controllers/todos_controller.rb index bfd35d8f..36575c90 100644 --- a/tracks/app/controllers/todos_controller.rb +++ b/tracks/app/controllers/todos_controller.rb @@ -124,7 +124,7 @@ class TodosController < ApplicationController @original_item_context_id = @todo.context_id @original_item_project_id = @todo.project_id @original_item_was_deferred = @todo.deferred? - if params['todo']['project_id'].blank? && !params['project_name'].blank? + if params['todo']['project_id'].blank? && !params['project_name'].nil? if params['project_name'] == 'None' project = Project.null_object else diff --git a/tracks/config/environments/test.rb b/tracks/config/environments/test.rb index e7847b9d..5976d471 100644 --- a/tracks/config/environments/test.rb +++ b/tracks/config/environments/test.rb @@ -24,5 +24,5 @@ config.action_mailer.delivery_method = :test SALT = "change-me" unless defined?( SALT ).nil? config.after_initialize do - require 'test/selenium_helper' + require File.expand_path(File.dirname(__FILE__) + "/../../test/selenium_helper") end \ No newline at end of file diff --git a/tracks/test/functional/todos_controller_test.rb b/tracks/test/functional/todos_controller_test.rb index fcef3bbd..ed573b93 100644 --- a/tracks/test/functional/todos_controller_test.rb +++ b/tracks/test/functional/todos_controller_test.rb @@ -105,6 +105,14 @@ class TodosControllerTest < Test::Unit::TestCase actual = t.due assert_equal expected, actual, "Expected #{expected.to_s(:db)}, was #{actual.to_s(:db)}" end + + def test_update_todos_with_blank_project_name + t = Todo.find(1) + @request.session['user_id'] = users(:admin_user).id + xhr :post, :update, :id => 1, :_source_view => 'todo', :project_name => '', "todo"=>{"id"=>"1", "notes"=>"", "description"=>"Call Warren Buffet to find out how much he makes per day", "due"=>"30/11/2006"}, "tag_list"=>"foo, bar" + t.reload + assert t.project.nil? + end def test_update_todo_tags_to_none t = Todo.find(1) diff --git a/tracks/test/selenium/project_detail/change_todos_project_to_blank.rsel b/tracks/test/selenium/project_detail/change_todos_project_to_blank.rsel new file mode 100644 index 00000000..08562814 --- /dev/null +++ b/tracks/test/selenium/project_detail/change_todos_project_to_blank.rsel @@ -0,0 +1,9 @@ +setup :fixtures => :all +login :as => 'admin' +open "/projects/Build_a_working_time_machine" +click "edit_icon_todo_5" +wait_for_element_present "show_from_todo_5" +type "project_name_todo_5", "" +click "//input[@value='Update']" +wait_for_element_not_present "todo_5" +assert_text 'badge_count', '1' \ No newline at end of file