mirror of
https://github.com/TracksApp/tracks.git
synced 2026-02-03 14:31:47 +01:00
Made all dates and times stored in UTC in the database and presented according to the User's preferred time zone. Cleaned up old unused preference methods in UserController Restored keyboard shortcuts for date field interaction Aliased preference in User model to prefs for brevity Don't forget to rake db:migrate for this update! All tests pass, but there were a lot of little changes involved in this feature. Please help me test it thoroughly if you're using the trunk. Fixes #349 git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@392 a4c988fc-2ded-0310-b66e-134b36920a42
80 lines
3 KiB
Ruby
80 lines
3 KiB
Ruby
require File.dirname(__FILE__) + '/../test_helper'
|
|
require 'todo_controller'
|
|
|
|
# Re-raise errors caught by the controller.
|
|
class TodoController; def rescue_action(e) raise e end; end
|
|
|
|
class TodoControllerTest < Test::Unit::TestCase
|
|
fixtures :users, :preferences, :projects, :contexts, :todos
|
|
|
|
def setup
|
|
@controller = TodoController.new
|
|
@request, @response = ActionController::TestRequest.new, ActionController::TestResponse.new
|
|
end
|
|
|
|
def test_get_index_when_not_logged_in
|
|
get :index
|
|
assert_redirected_to :controller => 'login', :action => 'login'
|
|
end
|
|
|
|
def test_not_done_counts
|
|
@request.session['user_id'] = users(:admin_user).id
|
|
get :index
|
|
assert_equal 2, assigns['project_not_done_counts'][projects(:timemachine).id]
|
|
assert_equal 3, assigns['context_not_done_counts'][contexts(:call).id]
|
|
assert_equal 1, assigns['context_not_done_counts'][contexts(:lab).id]
|
|
end
|
|
|
|
def test_not_done_counts_after_hiding_project
|
|
p = Project.find(1)
|
|
p.hide!
|
|
p.save!
|
|
@request.session['user_id'] = users(:admin_user).id
|
|
get :index
|
|
assert_equal nil, assigns['project_not_done_counts'][projects(:timemachine).id]
|
|
assert_equal 2, assigns['context_not_done_counts'][contexts(:call).id]
|
|
assert_equal nil, assigns['context_not_done_counts'][contexts(:lab).id]
|
|
end
|
|
|
|
def test_not_done_counts_after_hiding_and_unhiding_project
|
|
p = Project.find(1)
|
|
p.hide!
|
|
p.save!
|
|
p.activate!
|
|
p.save!
|
|
@request.session['user_id'] = users(:admin_user).id
|
|
get :index
|
|
assert_equal 2, assigns['project_not_done_counts'][projects(:timemachine).id]
|
|
assert_equal 3, assigns['context_not_done_counts'][contexts(:call).id]
|
|
assert_equal 1, assigns['context_not_done_counts'][contexts(:lab).id]
|
|
end
|
|
|
|
def test_deferred_count_for_project_source_view
|
|
@request.session['user_id'] = users(:admin_user).id
|
|
xhr :post, :toggle_check, :id => 5, :_source_view => 'project'
|
|
assert_equal 1, assigns['deferred_count']
|
|
xhr :post, :toggle_check, :id => 15, :_source_view => 'project'
|
|
assert_equal 0, assigns['deferred_count']
|
|
end
|
|
|
|
def test_destroy_item
|
|
@request.session['user_id'] = users(:admin_user).id
|
|
xhr :post, :destroy, :id => 1, :_source_view => 'todo'
|
|
assert_rjs :page, "todo_1", :remove
|
|
#assert_rjs :replace_html, "badge-count", '9'
|
|
end
|
|
|
|
def test_update_item
|
|
t = Todo.find(1)
|
|
@request.session['user_id'] = users(:admin_user).id
|
|
xhr :post, :update, :id => 1, :_source_view => 'todo', "item"=>{"context_id"=>"1", "project_id"=>"2", "id"=>"1", "notes"=>"", "description"=>"Call Warren Buffet to find out how much he makes per day", "due"=>"30/11/2006"}
|
|
#assert_rjs :page, "todo_1", :visual_effect, :highlight, :duration => '1'
|
|
t = Todo.find(1)
|
|
assert_equal "Call Warren Buffet to find out how much he makes per day", t.description
|
|
expected = Date.new(2006,11,30).to_time.utc.to_date
|
|
actual = t.due
|
|
assert_equal expected, actual, "Expected #{expected.to_s(:db)}, was #{actual.to_s(:db)}"
|
|
end
|
|
|
|
|
|
end
|