Unit Test: Mocking the User-Agent

Hi,

Im trying to test the following method:

def notice
65 userAgent = request.env[‘HTTP_USER_AGENT’]
66
67 if userAgent.index(‘MSIE 7.0;’) != nil
68 @ie7 = true
69 elsif userAgent.index(‘MSIE 6.0;’) != nil
70 @ie6 = true
71 end
72
73 if (@ie6)
74 render :action=> “notice”, :layout => false
75 else
76 redirect_to :controller => “home”, :action => “index”
77 end
78 end

the problem im having is that i cant seem to find a way of setting the
user agent before it goes into the method and checks the type of browser
being used.

im sure this is something trivial involving a mock but its just proving
to be a bit illusive to me :frowning:

Cheers,
Chris

If you’re in a functional test and have a TestRequest object named
@request, you could do this:

@request.env["User-Agent"] = "whutever"  # I think that header

name is right…

You can set arbitrary headers like that.

–Jeremy

On Wed, Jun 25, 2008 at 4:31 AM, Chris G.
[email protected] wrote:

69 elsif userAgent.index(‘MSIE 6.0;’) != nil

Posted via http://www.ruby-forum.com/.


http://jeremymcanally.com/
http://entp.com

Read my books:
Ruby in Practice (Ruby in Practice)
My free Ruby e-book (http://humblelittlerubybook.com/)

Or, my blogs:

http://rubyinpractice.com

Hi Jeremy,

thanks for the reply.

How exactly do i build a testRequest? ive never come across such a
thing?

Chris

You need to read up on Rails’ functional testing. Google has a lot of
good resources! :slight_smile:

http://www.google.com/search?client=safari&rls=en-us&q=rails+functional+testing&ie=UTF-8&oe=UTF-8

–Jeremy

On Thu, Jun 26, 2008 at 3:20 AM, Chris G.
[email protected] wrote:

Posted via http://www.ruby-forum.com/.


http://jeremymcanally.com/
http://entp.com

Read my books:
Ruby in Practice (Ruby in Practice)
My free Ruby e-book (http://humblelittlerubybook.com/)

Or, my blogs:

http://rubyinpractice.com