[rspec-users] Testing User Agent

David Chelimsky dchelimsky at gmail.com
Wed Feb 25 10:45:27 EST 2009


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?


>
> --
> --
> 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?"
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list