Sha256: 5609e0ed720d21c6fdc25d4f4053c43d7de25b38be5e4a68f3ad238c438dcec3

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'support/spec_helper'

require "rad/support/callbacks"
require "rad/support/filters"

describe "Filters" do
  module ARemote
    inherit Rad::Filters
  end
  
  class FiltersBasic
    inherit ARemote
          
    before :set_user
    
    def action
      'result'
    end

    attr_reader :user
    def set_user
      @user = 'some user'
    end
  end
  
  class FilterInheritance < FiltersBasic
    before :set_model
    
    attr_reader :model
    def set_model
      @model = 'some model'
    end      
  end
  
  class FilterOverrideAction < FiltersBasic
    def action
      'overriden result'
    end
  end
  
  it 'basic' do
    r = FiltersBasic.new
    r.run_callbacks(:action){r.send :action}.should == 'result'
    r.user.should == 'some user'
  end
  
  it 'inheritance' do
    r = FilterInheritance.new
    r.run_callbacks(:action){r.send :action}.should == 'result'
    r.user.should == 'some user'
    r.model.should == 'some model'
  end
  
  it "overriding action" do
    r = FilterOverrideAction.new
    r.run_callbacks(:action){r.send :action}.should == 'overriden result'
    r.user.should == 'some user'
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rad_core-0.0.13 spec/support/filters_spec.rb