Sha256: b852d02a02ed674ddae9444aab8afa1694cb0f1b67fe2baa1660e106a214fa50
Contents?: true
Size: 1.29 KB
Versions: 34
Compression:
Stored size: 1.29 KB
Contents
module MuckControllerMacros def should_require_login(*args) args = Hash[*args] login_url = args.delete :login_url args.each do |action, verb| should "Require login for '#{action}' action" do send(verb, action) assert_redirected_to(login_url) end end end def should_require_role(role, redirect_url, *actions) actions.each do |action| should "require role for '#{action}' action" do get(action) ensure_flash(/permission/i) assert_response :redirect end end end #from: http://blog.internautdesign.com/2008/9/11/more-on-custom-shoulda-macros-scoping-of-instance-variables def should_not_allow action, object, url= "/login", msg=nil msg ||= "a #{object.class.to_s.downcase}" should "not be able to #{action} #{msg}" do object = eval(object, self.send(:binding), __FILE__, __LINE__) get action, :id => object.id assert_redirected_to url end end def should_allow action, object, msg=nil msg ||= "a #{object.class.to_s.downcase}" should "be able to #{action} #{msg}" do object = eval(object, self.send(:binding), __FILE__, __LINE__) get action, :id => object.id assert_response :success end end end ActionController::TestCase.extend(MuckControllerMacros)
Version data entries
34 entries across 34 versions & 4 rubygems