2014-05-16 18:03:13 -04:00
|
|
|
require 'test_helper'
|
2007-11-04 23:06:46 +00:00
|
|
|
require 'todos_controller'
|
|
|
|
|
|
2009-06-02 21:22:50 +02:00
|
|
|
class TodoCreateParamsHelperTest < ActiveSupport::TestCase
|
2007-11-04 23:06:46 +00:00
|
|
|
|
|
|
|
|
def test_works_with_request_as_root_hash_entry
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({'request' => { 'todo' => { 'description' => 'foo'}}})
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal({'description' => 'foo'}, params_helper.attributes)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def test_works_with_todo_as_root_hash_entry
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'todo' => { 'description' => 'foo'}})
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal({'description' => 'foo'}, params_helper.attributes)
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_show_from_accessor
|
2008-09-13 13:33:48 -07:00
|
|
|
expected_date = Time.now
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'todo' => { 'show_from' => expected_date}})
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal(expected_date, params_helper.show_from)
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_due_accessor
|
2008-09-13 13:33:48 -07:00
|
|
|
expected_date = Time.now
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'todo' => { 'due' => expected_date}})
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal(expected_date, params_helper.due)
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_tag_list_accessor
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'todo' => { }, 'tag_list' => 'foo, bar'})
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal('foo, bar', params_helper.tag_list)
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_parse_dates_parses_show_from_date_based_on_prefs
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'todo' => { 'show_from' => '20/05/07', 'due' => '23/5/07'}})
|
2013-04-29 20:38:35 -05:00
|
|
|
|
2013-04-29 15:15:48 +02:00
|
|
|
user = users(:admin_user)
|
|
|
|
|
prefs = user.prefs
|
2012-04-17 16:47:37 +02:00
|
|
|
prefs.date_format = "%d/%m/%y" # make sure the format matches the above
|
2013-04-29 20:38:35 -05:00
|
|
|
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, user)
|
2007-11-04 23:06:46 +00:00
|
|
|
params_helper.parse_dates()
|
2012-04-17 16:47:37 +02:00
|
|
|
assert_equal Date.new(2007, 5, 20), params_helper.show_from.to_date
|
2007-11-04 23:06:46 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def test_parse_dates_parses_due_date_based_on_prefs
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'todo' => { 'show_from' => '20/5/07', 'due' => '23/5/07'}})
|
2013-04-29 20:38:35 -05:00
|
|
|
|
2013-04-29 15:15:48 +02:00
|
|
|
user = users(:admin_user)
|
|
|
|
|
prefs = user.prefs
|
2012-04-17 16:47:37 +02:00
|
|
|
prefs.date_format = "%d/%m/%y" # make sure the format matches the above
|
|
|
|
|
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, user)
|
2007-11-04 23:06:46 +00:00
|
|
|
params_helper.parse_dates()
|
2012-04-17 16:47:37 +02:00
|
|
|
assert_equal Date.new(2007, 5, 23), params_helper.due.to_date
|
2007-11-04 23:06:46 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def test_parse_dates_sets_due_to_empty_string_if_nil
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'todo' => { 'show_from' => '20/5/07', 'due' => nil}})
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
params_helper.parse_dates()
|
|
|
|
|
assert_equal '', params_helper.due
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_project_name_is_stripped_of_leading_and_trailing_whitespace
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'project_name' => ' Visit New Orleans ' })
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal 'Visit New Orleans', params_helper.project_name
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_project_name_is_nil_when_unspecified
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ })
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_nil params_helper.project_name
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_context_name_is_stripped_of_leading_and_trailing_whitespace
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'context_name' => ' mobile phone ' })
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal 'mobile phone', params_helper.context_name
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_context_name_is_nil_when_unspecified
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ })
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_nil params_helper.context_name
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_project_specified_by_name_is_false_when_project_id_is_specified
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'todo' => { 'project_id' => 2 } })
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal false, params_helper.project_specified_by_name?
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_project_specified_by_name_is_false_when_project_name_is_blank
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'project_name' => nil, 'todo' => {} })
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal false, params_helper.project_specified_by_name?
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2015-05-10 14:08:20 +02:00
|
|
|
def test_project_specified_by_name_is_false_when_project_name_is_blank_string
|
|
|
|
|
params = ActionController::Parameters.new({ 'project_name' => '', 'todo' => {} })
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal false, params_helper.project_specified_by_name?
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_context_specified_by_name_is_false_when_context_id_is_specified
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'todo' => { 'context_id' => 3 } })
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal false, params_helper.context_specified_by_name?
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2007-11-04 23:06:46 +00:00
|
|
|
def test_context_specified_by_name_is_false_when_context_name_is_blank
|
2013-06-17 10:06:38 +02:00
|
|
|
params = ActionController::Parameters.new({ 'context_name' => nil, 'todo' => {} })
|
2013-04-29 15:15:48 +02:00
|
|
|
params_helper = Todos::TodoCreateParamsHelper.new(params, users(:admin_user))
|
2007-11-04 23:06:46 +00:00
|
|
|
assert_equal false, params_helper.context_specified_by_name?
|
|
|
|
|
end
|
2011-08-16 11:49:04 +02:00
|
|
|
|
2012-05-10 13:53:01 -05:00
|
|
|
end
|