require File.dirname(__FILE__) + '/../test_helper' require 'backlogs_controller' # Re-raise errors caught by the controller. class BacklogsController; def rescue_action(e) raise e end; end class BacklogsControllerTest < ActionController::TestCase main_scenario def setup @user_controller = UserController.new @controller = BacklogsController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new @request.session[:user_id] = 1000001 end def test_index_first_time Work.delete_all Estimate.delete_all TaskFile.delete_all Task.delete_all Backlog.delete_all get :index assert_response :redirect assert_redirected_to :action => :new end def test_index_active_period Work.delete(works(:started).id) get :index assert_response :redirect assert_redirected_to :action => :show, :id => backlogs(:first) end def test_index_list_started get :index assert_response :redirect assert_redirected_to :controller => 'tasks', :action => :list_started end def test_show get :show, :id => 1 assert_response :success assert_template 'show' assert_not_nil assigns(:backlog) assert assigns(:backlog).valid? assert_not_nil assigns(:tasks) end def test_new get :new assert_response :success assert_template 'new' assert_not_nil assigns(:backlog) end def test_create num_backlogs = Backlog.count @request.session[:user_id] = 1000001 post :create, :backlog => {:name => 'house work', :track_times => true} assert_response :redirect, assigns(:backlog).errors.to_a.inspect assert_redirected_to :action => :show, :id => assigns(:backlog).id assert_equal num_backlogs + 1, Backlog.count end def test_edit get :edit, :id => 1 assert_response :success assert_template 'edit' assert_not_nil assigns(:backlog) assert assigns(:backlog).valid? end def test_update post :update, :id => 1 assert_response :redirect assert_redirected_to :action => 'show', :id => 1 end def test_destroy assert_not_nil Backlog.find(1) post :destroy, :id => 1 assert_response :redirect assert_redirected_to :action => :index assert_raise(ActiveRecord::RecordNotFound) { Backlog.find(1) } end def test_autologin_with_token_startpage set_logged_out @request.cookies['autologin'] = CGI::Cookie.new('autologin', {:value => ['1000007'], :expires =>30.days.from_now}) @request.cookies['token'] = CGI::Cookie.new('token', {:value => ['random_token_string'], :expires =>30.days.from_now}) get :index assert_logged_in users(:no_password_user) assert_response :redirect assert_redirected_to :controller => 'tasks', :action => :list_started end def test_abort_task post :abort_task, :id => tasks(:first).id after = Task.find(tasks(:first).id) assert_not_nil after.finished_at assert_equal Task::ABORTED, after.resolution end def test_finish_task post :finish_task, :id => tasks(:first).id after = Task.find(tasks(:first).id) assert_not_nil after.finished_at assert_equal Task::COMPLETED, after.resolution end def test_finish_task_without_period post :finish_task, :id => tasks(:not_planned).id after = Task.find(tasks(:not_planned).id) assert_not_nil after.finished_at assert_equal Task::COMPLETED, after.resolution end def test_reopen_task post :reopen_task, :id => tasks(:completed).id after = Task.find(tasks(:first).id) assert_nil after.finished_at assert_nil after.resolution end private # TODO (uwe): This method should be removed # It is here only because ClassTableInheritanceInRails broke reading fixtures by name def users(login) super(login) end end