Forum: Ruby on Rails Trouble with functional tests

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
59ea1b450935b9d70abfec4186b7a4d5?d=identicon&s=25 Jeff Coleman (progressions)
on 2007-02-08 20:28
I'm having trouble making my functional tests work.  I'm trying to
simulate an action performed while a user is logged in, but it only
redirects me to the signin page as if no user was logged in.

Here's my functional test:

  def test_signout_with_valid_user
    get :signout, {}, { :user => users(:jeff).id }
    assert_redirected_to home_path
  end

The first user in my users.yml fixtures file is named jeff, with an id
of 1.

Here's my admin controller's signout method:

  before_filter :check_authentication, :except => [:signin, :show,
:reset_passwords]

  def signout
    session[:user] = nil
    session[:intended_action] = nil
    redirect_to home_path
  end

Here's my application.rb check_authentication method:

  def check_authentication
    unless session[:user]
      session[:intended_action] = params
      redirect_to signin_path
    end
  end

When I use the actual application, it works fine--I'm able to sign in,
sign out, everything works as expected.  But when I run the functional
test, I get:

test_signout_with_valid_user(AdminControllerTest)
[test/functional/admin_control
ler_test.rb:42]:
response is not a redirection to all of the options supplied
(redirection is <{"
action"=>"signin", "controller"=>"admin"}>), difference:
<{"action"=>"index", "c
ontroller"=>"comics"}>

What am I doing wrong?  As far as I can tell, I'm following exactly how
it's described in Agile Web Dev v2, page 194.

Any help would be great.  Thanks!

Jeff
83ca41657a99b65d99889abe712ba5e2?d=identicon&s=25 Jason Roelofs (Guest)
on 2007-02-08 20:32
(Received via mailing list)
Use @request.session instead of parameters to #get.

Jason
59ea1b450935b9d70abfec4186b7a4d5?d=identicon&s=25 Jeff Coleman (progressions)
on 2007-02-08 20:35
Jason Roelofs wrote:
> Use @request.session instead of parameters to #get.
>
> Jason

Thanks, that worked!

Is the Agile Web Dev book outdated already?  Sigh.

Jeff
2a34c68022ae45d335c77b6ffc412a2f?d=identicon&s=25 Thomas Mango (Guest)
on 2007-02-28 16:57
(Received via mailing list)
is using @request.session a workaround or is that the new correct
syntax?

is get :signout, {}, { :user => users(:jeff).id }  deprecated in
1.2.2?

i had read that get :signout, {}, { :user => users(:jeff).id }  not
working was a bug and will be fixed in 1.2.3, but if i shouldn't be
using that syntax anyway because it is deprecated then i will move my
tests to the new syntax.

thank you, in advance.

On Feb 8, 2:35 pm, Jeff Coleman <rails-mailing-l...@andreas-s.net>
83ca41657a99b65d99889abe712ba5e2?d=identicon&s=25 Jason Roelofs (Guest)
on 2007-03-02 20:11
(Received via mailing list)
It's a bug and will (is?) fixed in Rail 1.2.3

http://dev.rubyonrails.org/ticket/7372

Jason
2a34c68022ae45d335c77b6ffc412a2f?d=identicon&s=25 Thomas Mango (Guest)
on 2007-03-02 20:24
(Received via mailing list)
Okay, thank you.

On 3/2/07, Jason Roelofs <jameskilton@gmail.com> wrote:
> >
> > On Feb 8, 2:35 pm, Jeff Coleman <
> > >
> > > Jeff
> > >
> > > --
> > > Posted viahttp://www.ruby-forum.com/.
> >
> >
> > > >
> >
>


--
Thomas Mango
tsmango@gmail.com
This topic is locked and can not be replied to.