Trouble with functional tests


#1

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


#2

Use @request.session instead of parameters to #get.

Jason


#3

Jason R. wrote:

Use @request.session instead of parameters to #get.

Jason

Thanks, that worked!

Is the Agile Web Dev book outdated already? Sigh.

Jeff


#4

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 C.man removed_email_address@domain.invalid


#5

It’s a bug and will (is?) fixed in Rail 1.2.3

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

Jason


#6

Okay, thank you.

On 3/2/07, Jason R. removed_email_address@domain.invalid wrote:

On Feb 8, 2:35 pm, Jeff C.man <

Jeff


Posted viahttp://www.ruby-forum.com/.


Thomas M.
removed_email_address@domain.invalid