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 ? -- -- 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/20090225/f3d743b4/attachment.html>
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?> > -- > -- > 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 >
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 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] -- -- 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/20090225/3aacc4c4/attachment.html>
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 > ? endOff 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 >
On 25/02/2009, at 4:51 AM, Suprie Leonhart 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 > > 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] > > -- > -- > Best Regards > Suprie > http://suprie.in.ruangkopi.comHi Suprie. AFAIK, RSpec populates the "request" object in your specs after a controller action is called. Since your "should know if it''s from blackberry" example doesn''t call a controller action, the "request" object is nil. -Nick
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>
On Thu, Feb 26, 2009 at 4:39 AM, Nick Hoffman <nick at deadorange.com> wrote:> > Hi Suprie. AFAIK, RSpec populates the "request" object in your specs after > a controller action is called. Since your "should know if it''s from > blackberry" example doesn''t call a controller action, the "request" object > is nil. > -Nickso i should put the test on controller spec then ? -- -- 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/de15f492/attachment.html>
On 25/02/2009, at 9:49 PM, Suprie Leonhart wrote:> On Thu, Feb 26, 2009 at 4:39 AM, Nick Hoffman <nick at deadorange.com> > wrote: > > Hi Suprie. AFAIK, RSpec populates the "request" object in your specs > after a controller action is called. Since your "should know if it''s > from blackberry" example doesn''t call a controller action, the > "request" object is nil. > -Nick > > so i should put the test on controller spec then ? > > -- > -- > Best Regards > SuprieUltimately, you should be speccing your application''s behaviour rather than specific methods. If a controller action calls #mobile_content? , then write specs for that action, and make sure to cover the case(s) when #mobile_content? is called. -Nick
On Thu, Feb 26, 2009 at 12:08 PM, Nick Hoffman <nick at deadorange.com> wrote:> On 25/02/2009, at 9:49 PM, Suprie Leonhart wrote: > >> On Thu, Feb 26, 2009 at 4:39 AM, Nick Hoffman <nick at deadorange.com> >> wrote: >> >> Hi Suprie. AFAIK, RSpec populates the "request" object in your specs after >> a controller action is called. Since your "should know if it''s from >> blackberry" example doesn''t call a controller action, the "request" object >> is nil. >> -Nick >> >> so i should put the test on controller spec then ? >> >> -- >> -- >> Best Regards >> Suprie >> > > Ultimately, you should be speccing your application''s behaviour rather than > specific methods. If a controller action calls #mobile_content? , then write > specs for that action, and make sure to cover the case(s) when > #mobile_content? is called. >thanks a lot for the advice. -- -- 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/57c29405/attachment.html>