Sha256: 8b2475eff27a083fe4c3c028f78e9e82b1835ad03ed5e0e470126eca6ac2e55e

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

require 'spec_helper'

describe "Rack::Rewrite Conditions" do

  ['get', 'post', 'put', 'delete'].each do |method|

    it "should detect method #{method}" do
      env = Rack::MockRequest.env_for('/test', :method => method)
      app = mock('app')
      app.should_receive(:call).with(env).and_return([200, {}, ["body"]])
      Rack::Rewrite.new(app) { on(:method => method) { pass }; fail }.call(env)
    end
  end
  
  it "should detect a simple path_info" do
    env = Rack::MockRequest.env_for('/test', :method => 'get')
    app = mock('app')
    app.should_receive(:call).with(env).and_return([200, {}, ["body"]])
    Rack::Rewrite.new(app) { on(:path_info => '/test') { pass }; fail }.call(env)
    proc { Rack::Rewrite.new(app) { on(:path_info => %r{^/test}) { pass }; fail }.call(Rack::MockRequest.env_for('/badtest', :method => 'get')) }.should raise_error
  end

  it "should fail on a simple path_info" do
    env = Rack::MockRequest.env_for('/test', :method => 'get')
    app = mock('app')
    proc { Rack::Rewrite.new(app) { on(:path_info => %r{^/test}) { pass }; fail }.call(Rack::MockRequest.env_for('/badtest', :method => 'get')) }.should raise_error
  end

  it "should detect a param in the query string" do
    env = Rack::MockRequest.env_for('/test?test=helpme', :method => 'get')
    app = mock('app')
    app.should_receive(:call).with(env).and_return([200, {}, ["body"]])
    Rack::Rewrite.new(app) { on(:params => {:test => 'helpme'}) { pass } }.call(env)
    proc { Rack::Rewrite.new(app) { on(:params => {:test => 'helpme2'}) { pass }; fail }.call(env) }.should raise_error
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
joshbuddy-rack-rewrite-0.0.4 spec/conditions_spec.rb