require File.dirname(__FILE__) + '/../test_helper' require 'episodes_controller' # Re-raise errors caught by the controller. class EpisodesController; def rescue_action(e) raise e end; end class EpisodesControllerTest < Test::Unit::TestCase def setup @controller = EpisodesController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new end def test_should_get_index get :index, :program_id => 1 assert_response :success assert_not_nil assigns(:episodes) end def test_should_get_new login_as 'quentin' get :new, :program_id => 1 assert_response :success assert_match_body %r{/episodes;create} end def test_should_create_episode login_as 'quentin' old_count = Episode.count post :create, :program_id => 1, :episode => { :title => "Brewster's Millions" } assert_equal old_count+1, Episode.count assert_redirected_to program_url(assigns(:episode).program_id) end def test_should_show_episode get :show, :id => 'soggy_bacon', :program_id => 1 assert_response :success end def test_should_get_edit login_as 'quentin' get :edit, :id => 'soggy_bacon', :program_id => 1 assert_response :success assert_match_body %r{/episodes/#{assigns(:episode).to_param};update} end def test_should_update_episode login_as 'quentin' put :update, :id => 'soggy_bacon', :episode => { }, :program_id => 1 assert_redirected_to program_url(assigns(:episode).program_id) end def test_should_destroy_episode login_as 'quentin' old_count = Episode.count delete :destroy, :id => 'soggy_bacon', :program_id => 1 assert_equal old_count-1, Episode.count assert_redirected_to program_path(assigns(:episode).program_id) end def test_xhr_should_destroy_episode login_as 'quentin' old_count = Episode.count xhr :delete, :destroy, :id => 'soggy_bacon', :program_id => 1 assert_equal old_count-1, Episode.count assert_response :success end end