Module Authorization::TestHelper
In: lib/declarative_authorization/maintenance.rb

TestHelper provides assert methods and controller request methods which take authorization into account and set the current user to a specific one.

Defines get_with, post_with, get_by_xhr_with etc. for methods get, post, put, delete each with the signature

  get_with(user, action, params = {}, session = {}, flash = {})

Use it by including it in your TestHelper:

 require File.expand_path(File.dirname(__FILE__) +
   "/../vendor/plugins/declarative_authorization/lib/maintenance")
 class Test::Unit::TestCase
   include Authorization::TestHelper
   ...

   def admin
     # create admin user
   end
 end

 class SomeControllerTest < ActionController::TestCase
   def test_should_get_index
     ...
     get_with admin, :index, :param_1 => "param value"
     ...
   end
 end

Methods

Included Modules

Authorization::Maintenance

Public Class methods

[Source]

     # File lib/declarative_authorization/maintenance.rb, line 168
168:     def self.included (base)
169:       [:get, :post, :put, :delete].each do |method|
170:         base.class_eval "def \#{method}_with (user, *args)\nrequest_with(user, \#{method.inspect}, false, *args)\nend\n\ndef \#{method}_by_xhr_with (user, *args)\nrequest_with(user, \#{method.inspect}, true, *args)\nend\n", __FILE__, __LINE__
171:       end
172:     end

Public Instance methods

Analogue to the Ruby‘s assert_raise method, only executing the block in the context of the given user.

[Source]

     # File lib/declarative_authorization/maintenance.rb, line 136
136:     def assert_raise_with_user (user, *args, &block)
137:       assert_raise(*args) do
138:         with_user(user, &block)
139:       end
140:     end

[Source]

     # File lib/declarative_authorization/maintenance.rb, line 156
156:     def request_with (user, method, xhr, action, params = {}, 
157:         session = {}, flash = {})
158:       session = session.merge({:user => user, :user_id => user.id})
159:       with_user(user) do
160:         if xhr
161:           xhr method, action, params, session, flash
162:         else
163:           send method, action, params, session, flash
164:         end
165:       end
166:     end

[Source]

     # File lib/declarative_authorization/maintenance.rb, line 142
142:     def should_be_allowed_to (privilege, object_or_context)
143:       options = {}
144:       options[object_or_context.is_a?(Symbol) ? :context : :object] = object_or_context
145:       assert_nothing_raised do
146:         Authorization::Engine.instance.permit!(privilege, options)
147:       end
148:     end

[Source]

     # File lib/declarative_authorization/maintenance.rb, line 150
150:     def should_not_be_allowed_to (privilege, object_or_context)
151:       options = {}
152:       options[object_or_context.is_a?(Symbol) ? :context : :object] = object_or_context
153:       assert !Authorization::Engine.instance.permit?(privilege, options)
154:     end

[Validate]