[rspec-users] Testing User Agent

Suprie Leonhart suprie.leonheart at gmail.com
Wed Feb 25 21:49:27 EST 2009


On Wed, Feb 25, 2009 at 10:45 PM, David Chelimsky <dchelimsky at gmail.com>wrote:

> On Wed, Feb 25, 2009 at 3:51 AM, Suprie Leonhart
> <suprie.leonheart at gmail.com> wrote:
> >
> >
> > On Wed, Feb 25, 2009 at 4:19 PM, David Chelimsky <dchelimsky at gmail.com>
> > wrote:
> >>
> >> On Wed, Feb 25, 2009 at 1:57 AM, Suprie Leonhart
> >> <suprie.leonheart at gmail.com> wrote:
> >> > hi
> >> >
> >> > i'm testing some lib i've made for detecting mobile user agent, I
> >> > confused
> >> > how to test the lib i've made.
> >> > the test code is
> >> >
> >> > [code]
> >> >
> >> >   describe "Check if mobile browser" do
> >> >     it "should know if it's from blackberry" do
> >> >       blackberry_ua = "BlackBerry8330/4.3.0 Profile/MIDP-2.0
> >> > Configuration/CLDC-1.1 VendorID/105"
> >> >       request.env["HTTP_USER_AGENT"] = blackberry_ua
> >> >       is_mobile?.should == true
> >> >     end
> >> >   end
> >> >
> >> > [/code]
> >> >
> >> > the error is, request variable always nil
> >> >
> >> > the question : how i mock the request.env ?
> >>
> >> Since you're trying to test existing code, can you please post that
> code?
> >
> > [code]
> > module Mobile
> >   def load_mobile_agent_file
> >     ma = File.read(RAILS_ROOT+"/config/mobile.yml")
> >     yaml = YAML.load(ma)
> >     return yaml
> >   end
>
> Off topic, but this could be a one liner with no temporary variables,
> and load_file will take care of opening and reading the file for you:
>
> def load_mobile_agent_file
>   YAML.load_file(RAILS_ROOT+"/config/mobile.yml")
> end
>
> >
> >   def mobile_user_agent?
> >     if request.env["HTTP_USER_AGENT"]
> >       user_agent  = request.env["HTTP_USER_AGENT"]
> >       mua         = load_mobile_agent_file
> >       mua["mobile_agent"].each do |key, value|
> >         unless(user_agent.match(Regexp.new(Regexp.escape(key))).nil?)
> >           return true
> >         end
> >       end
> >       return false
> >     end
> >   end
> > end
> > [/code]
>
> Thanks - so I'm wondering where is_mobile? came from. Also, are you
> trying to do this in a controller spec or a helper spec? Where is the
> spec file located?
>
>
i've refactoring the is_mobile? to mobile_content?  i'm trying to spec a
lib, so i put it on spec/lib

-- 
--
Best Regards
Suprie
http://suprie.in.ruangkopi.com

"Mendapat upah karena menyenangkan orang lain yang tidak punya persangkutan
dengan kata hati sendiri, kan itu dalam seni namanya pelacuran?"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20090226/d11817cc/attachment.html>


More information about the rspec-users mailing list