1
0
Fork 0
mirror of https://github.com/sinatra/sinatra synced 2023-03-27 23:18:01 -04:00
sinatra/rack-protection/spec/lib/rack/protection/base_spec.rb

39 lines
1.2 KiB
Ruby
Raw Normal View History

describe Rack::Protection::Base do
2014-01-23 17:22:40 -05:00
subject { described_class.new(lambda {}) }
describe "#random_string" do
it "outputs a string of 32 characters" do
expect(subject.random_string.length).to eq(32)
end
end
describe "#referrer" do
2014-01-23 17:29:16 -05:00
it "Reads referrer from Referer header" do
env = {"HTTP_HOST" => "foo.com", "HTTP_REFERER" => "http://bar.com/valid"}
expect(subject.referrer(env)).to eq("bar.com")
end
2014-01-23 17:29:16 -05:00
it "Reads referrer from Host header when Referer header is relative" do
env = {"HTTP_HOST" => "foo.com", "HTTP_REFERER" => "/valid"}
expect(subject.referrer(env)).to eq("foo.com")
end
2014-01-23 17:29:16 -05:00
it "Reads referrer from Host header when Referer header is missing" do
env = {"HTTP_HOST" => "foo.com"}
expect(subject.referrer(env)).to eq("foo.com")
end
2014-01-23 17:29:16 -05:00
it "Returns nil when Referer header is missing and allow_empty_referrer is false" do
env = {"HTTP_HOST" => "foo.com"}
2014-01-23 17:22:40 -05:00
subject.options[:allow_empty_referrer] = false
expect(subject.referrer(env)).to be_nil
end
2014-01-23 17:29:16 -05:00
it "Returns nil when Referer header is invalid" do
env = {"HTTP_HOST" => "foo.com", "HTTP_REFERER" => "http://bar.com/bad|uri"}
expect(subject.referrer(env)).to be_nil
end
end
end