diff options
-rw-r--r-- | lib/rack/request.rb | 3 | ||||
-rw-r--r-- | test/spec_rack_request.rb | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/rack/request.rb b/lib/rack/request.rb index d5070257..e755d5c0 100644 --- a/lib/rack/request.rb +++ b/lib/rack/request.rb @@ -178,6 +178,9 @@ module Rack end alias referrer referer + def user_agent + @env['HTTP_USER_AGENT'] + end def cookies return {} unless @env["HTTP_COOKIE"] diff --git a/test/spec_rack_request.rb b/test/spec_rack_request.rb index fe000c24..2e6bb6b2 100644 --- a/test/spec_rack_request.rb +++ b/test/spec_rack_request.rb @@ -152,6 +152,16 @@ context "Rack::Request" do req.referer.should.equal "/" end + specify "user agent should be extracted correct" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("/", "HTTP_USER_AGENT" => "Mozilla/4.0 (compatible)") + req.user_agent.should.equal "Mozilla/4.0 (compatible)" + + req = Rack::Request.new \ + Rack::MockRequest.env_for("/") + req.user_agent.should.equal nil + end + specify "can cache, but invalidates the cache" do req = Rack::Request.new \ Rack::MockRequest.env_for("/?foo=quux", :input => "foo=bar&quux=bla") |