Skip to content

Instantly share code, notes, and snippets.

@phillipkoebbe
Created January 5, 2010 17:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save phillipkoebbe/269544 to your computer and use it in GitHub Desktop.
Save phillipkoebbe/269544 to your computer and use it in GitHub Desktop.
class Admin::BaseController < ApplicationController
before_filter :require_admin
protected
def require_admin
redirect_to error_path(403) unless current_user.is_administrator?
end
end
require 'spec_helper'
describe Admin::BaseController do
should_be_an_instance_of Admin::BaseController
should_descend_from ApplicationController
context 'before_filter' do
it 'should respond to :require_admin' do
controller.should respond_to(:require_admin)
end
end
end
describe Admin::HomeController do
should_be_an_instance_of Admin::HomeController
should_descend_from Admin::BaseController
it_should_behave_like 'administrative controllers'
end
shared_examples_for 'administrative controllers' do
context 'access by administrative users' do
before :each do
setup_admin
get :index
end
should_not_redirect_to { error_path(403) }
should_succeed
end
context 'access by non-administrative users' do
before :each do
setup_user
get :index
end
should_redirect_to { error_path(403) }
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment