Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

43 lines (36 sloc) 1.037 kB
### WARNING: there be hax in this file.
require 'rack/session/abstract/id'
describe Rack::Session::Abstract::ID do
id = Rack::Session::Abstract::ID
def silence_warning
o, $VERBOSE = $VERBOSE, nil
yield
ensure
$VERBOSE = o
end
def reload_id
$".delete $".find { |part| part =~ %r{session/abstract/id.rb} }
silence_warning { require 'rack/session/abstract/id' }
end
should "use securerandom when available" do
begin
fake = false
silence_warning do
::SecureRandom = fake = true unless defined?(SecureRandom)
end
reload_id
id::DEFAULT_OPTIONS[:secure_random].should.eql(fake || SecureRandom)
ensure
Object.send(:remove_const, :SecureRandom) if fake
end
end
should "not use securerandom when unavailable" do
begin
sr = Object.send(:remove_const, :SecureRandom) if defined?(SecureRandom)
reload_id
id::DEFAULT_OPTIONS[:secure_random].should.eql false
ensure
::SecureRandom = sr if defined?(sr)
end
end
end
Jump to Line
Something went wrong with that request. Please try again.