Sha256: 80a50d2274e7341b3842449fa903497a16c2f3f7193f8979a9e957ddd4120123

Contents?: true

Size: 1.4 KB

Versions: 23

Compression:

Stored size: 1.4 KB

Contents

require File.expand_path("spec_helper", File.dirname(File.dirname(__FILE__)))

describe "run_handler plugin" do 
  it "makes r.run :not_found=>:pass keep going on 404" do
    pr = proc{|env| [(env['PATH_INFO'] == '/a' ? 404 : 201), {}, ['b']]}
    app(:run_handler) do |r|
      r.run pr, :not_found=>:pass
      'a'
    end

    status.must_equal 201
    body.must_equal 'b'
    status('/a').must_equal 200
    body('/a').must_equal 'a'
  end

  it "makes r.run with a block yield rack app to block, and have it be thrown afterward" do
    pr = proc{|env| [(env['PATH_INFO'] == '/a' ? 404 : 201), {}, ['b']]}
    app(:run_handler) do |r|
      r.run(pr){|a| a[0] *= 2}
      'a'
    end

    status.must_equal 402
    status('/a').must_equal 808
  end

  it "works when both :not_found=>:pass and block are given" do
    pr = proc{|env| [(env['PATH_INFO'] == '/a' ? 202 : 201), {}, ['b']]}
    app(:run_handler) do |r|
      r.run(pr, :not_found=>:pass){|a| a[0] *= 2}
      'a'
    end

    status.must_equal 402
    body.must_equal 'b'
    status('/a').must_equal 200
    body('/a').must_equal 'a'
  end

  it "makes r.run work normally if not given an option or block" do
    pr = proc{|env| [(env['PATH_INFO'] == '/a' ? 404 : 201), {}, ['b']]}
    app(:run_handler) do |r|
      r.run pr
      'a'
    end

    status.must_equal 201
    body.must_equal 'b'
    status('/a').must_equal 404
    body('/a').must_equal 'b'
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
roda-2.29.0 spec/plugin/run_handler_spec.rb
roda-2.28.0 spec/plugin/run_handler_spec.rb
roda-2.27.0 spec/plugin/run_handler_spec.rb
roda-2.26.0 spec/plugin/run_handler_spec.rb
roda-2.25.0 spec/plugin/run_handler_spec.rb
roda-2.24.0 spec/plugin/run_handler_spec.rb
roda-2.23.0 spec/plugin/run_handler_spec.rb
roda-2.22.0 spec/plugin/run_handler_spec.rb
roda-2.21.0 spec/plugin/run_handler_spec.rb
roda-2.20.0 spec/plugin/run_handler_spec.rb
roda-2.19.0 spec/plugin/run_handler_spec.rb
roda-2.18.0 spec/plugin/run_handler_spec.rb
roda-2.17.0 spec/plugin/run_handler_spec.rb
roda-2.16.0 spec/plugin/run_handler_spec.rb
roda-2.15.0 spec/plugin/run_handler_spec.rb
roda-2.14.0 spec/plugin/run_handler_spec.rb
roda-2.13.0 spec/plugin/run_handler_spec.rb
roda-2.12.0 spec/plugin/run_handler_spec.rb
roda-2.11.0 spec/plugin/run_handler_spec.rb
roda-2.10.0 spec/plugin/run_handler_spec.rb