Files
danbooru/test/functional/advertisements_controller_test.rb
2014-01-08 17:06:56 -05:00

59 lines
1.7 KiB
Ruby

require 'test_helper'
class AdvertisementsControllerTest < ActionController::TestCase
context "An advertisement controller" do
setup do
@ad = FactoryGirl.create(:advertisement)
@advertiser = FactoryGirl.create(:admin_user)
end
should "get the new page" do
get :new, {}, {:user_id => @advertiser.id}
assert_response :success
end
should "get the edit page" do
get :edit, {:id => @ad.id}, {:user_id => @advertiser.id}
assert_response :success
end
should "get the index page" do
get :index, {}, {:user_id => @advertiser.id}
assert_response :success
end
should "get the show page" do
get :show, {:id => @ad.id}, {:user_id => @advertiser.id}
assert_response :success
end
should "create an ad" do
assert_difference("Advertisement.count", 1) do
post :create, {:advertisement => FactoryGirl.attributes_for(:advertisement)}, {:user_id => @advertiser.id}
end
ad = Advertisement.last
assert_redirected_to(advertisement_path(ad))
end
should "update an ad" do
post :update, {:id => @ad.id, :advertisement => {:width => 100}}, {:user_id => @advertiser.id}
ad = Advertisement.last
assert_equal(100, ad.width)
assert_redirected_to(advertisement_path(ad))
end
should "delete an ad" do
assert_difference("Advertisement.count", -1) do
post :destroy, {:id => @ad.id}, {:user_id => @advertiser.id}
end
assert_redirected_to(advertisements_path)
end
should "block non-advertisers" do
regular_user = FactoryGirl.create(:user)
get :index, {}, {:user_id => regular_user.id}
assert_response(403)
end
end
end