From e2a1a644efda64614e2b5cab3a4ff89e5fc6d642 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Sun, 20 Dec 2009 20:22:45 -0600 Subject: Request#user_agent --- lib/rack/request.rb | 3 +++ test/spec_rack_request.rb | 10 ++++++++++ 2 files changed, 13 insertions(+) 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") -- cgit v1.2.3-24-ge0c7