Sha256: ada4d4ebae3b2884342dc80c1e34e45016ef44ccc3575cd324bf1c6b8fb4deb5

Contents?: true

Size: 1.02 KB

Versions: 115

Compression:

Stored size: 1.02 KB

Contents

module ClearanceMatchers
  class DenyAccessMatcher
    include Shoulda::ActionController::Matchers

    def initialize(context)
      @context = context
    end

    def matches?(controller)
      if @method
        @context.__send__(@method, *@args)
      end

      begin
        if @flash
          controller.should set_the_flash.to(@flash)
        else
          controller.should_not set_the_flash
        end

        url = controller.__send__(:sign_in_url)
        controller.should redirect_to(url).in_context(@context)

        true
      rescue RSpec::Expectations::ExpectationNotMetError => failure
        @failure_message = failure.message
        false
      end
    end

    def flash(flash)
      @flash = flash
      self
    end

    def on(method, *args)
      @method = method
      @args   = args
      self
    end

    def failure_message_for_should
      @failure_message
    end
  end

  def deny_access
    DenyAccessMatcher.new(self)
  end
end


RSpec.configure do |config|
  config.include ClearanceMatchers
end

Version data entries

115 entries across 115 versions & 2 rubygems

Version Path
saucy-0.2.38 spec/support/clearance_matchers.rb
saucy-0.2.36 spec/support/clearance_matchers.rb
saucy-0.2.35 spec/support/clearance_matchers.rb
saucy-0.2.34 spec/support/clearance_matchers.rb
saucy-0.2.33 spec/support/clearance_matchers.rb
saucy-0.2.32 spec/support/clearance_matchers.rb
saucy-0.2.31 spec/support/clearance_matchers.rb
saucy-0.2.30 spec/support/clearance_matchers.rb
saucy-0.2.29 spec/support/clearance_matchers.rb
saucy-0.2.28 spec/support/clearance_matchers.rb
saucy-0.2.27 spec/support/clearance_matchers.rb
saucy-0.2.26 spec/support/clearance_matchers.rb
saucy-0.2.25 spec/support/clearance_matchers.rb
saucy-0.2.24 spec/support/clearance_matchers.rb
saucy-0.2.21 spec/support/clearance_matchers.rb
saucy-0.2.20 spec/support/clearance_matchers.rb
saucy-0.2.18 spec/support/clearance_matchers.rb
saucy-0.2.17 spec/support/clearance_matchers.rb
saucy-0.2.16 spec/support/clearance_matchers.rb
saucy-0.2.15 spec/support/clearance_matchers.rb