From 704d39add16fbb73ac97bec1ef5e268944fff6c6 Mon Sep 17 00:00:00 2001 From: lukemelia Date: Wed, 28 Mar 2007 04:45:39 +0000 Subject: [PATCH] Blanking out a project name when editing a todo will now remove the todo from the project. Also fixed the reference to test/selenium_helper.rb in the test/environment.rb to be pathed more reliably. git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@487 a4c988fc-2ded-0310-b66e-134b36920a42 --- tracks/app/controllers/todos_controller.rb | 2 +- tracks/config/environments/test.rb | 2 +- tracks/test/functional/todos_controller_test.rb | 8 ++++++++ .../project_detail/change_todos_project_to_blank.rsel | 9 +++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 tracks/test/selenium/project_detail/change_todos_project_to_blank.rsel 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