require File.dirname(__FILE__) + '/../test_helper' require 'jobs_controller' # Re-raise errors caught by the controller. class JobsController; def rescue_action(e) raise e end; end class JobsControllerTest < Test::Unit::TestCase matrix :jobs, :logined, :visiter, :logined_validation, :unauthorized action :new, :OK, :deny, :na, :na action :edit, :OK, :deny, :na, :deny action :create, :OK, :deny, :create_failed, :na action :update, :OK, :deny, :update_failed, :deny action :show, :OK, :OK, :na, :na action :destroy, :OK, :deny, :na, :deny action :index, :OK, :OK, :na, :na after_filter :render_form, :new, :edit def setup @controller = JobsController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new @job_attr = @@job_default_attr init(:logined){ login_as :dongbin} init(:unauthorized){ login_as :litie} init(:validation){ @job_attr = @@job_default_attr.merge({ :title => nil, :location => nil}) } end def matrix_setup_new get :new end def matrix_setup_create get :new end def matrix_setup_index get :index end def matrix_setup_update put :update, :id => jobs(:doban).id, :job => @job_attr @job = assigns(:job) end def matrix_setup_edit get :edit, :id => jobs(:iease).id end def matrix_setup_destroy delete :destroy, :id => jobs(:iease).id end def matrix_setup_show get :show, :id => jobs(:iease).id end def matrix_test_show assert_response :success assert_template 'show' end def matrix_test_create assert_difference 'Job.count' do job = create(@job_attr) assert_equal job.user, users(:dongbin) assert job.valid? end assert_redirected_to job_path(assigns(:job)) end def matrix_test_create_failed assert_no_difference 'Job.count' do job = create(@job_attr) assert !job.valid? end assert_template 'new' end def matrix_test_update assert_redirected_to job_path(@job) assert @job.valid? end def matrix_test_update_failed assert_template 'edit' assert !@job.valid? end def matrix_test_deny assert_redirected_to login_path end def matrix_test_new assert_template 'new' end def matrix_test_edit assert_template 'edit' end def matrix_test_destroy assert_raise(ActiveRecord::RecordNotFound) { Job.find(jobs(:iease).id) } assert_redirected_to jobs_path end def matrix_test_index end def matrix_test_render_form assert_response :success assert assigns(:job) assert_form(assigns(:job), *@@job_default_attr.keys) end end