Hola a todos,
Tengo un filtro para una autenticación básica, la del Agile, que
redirige en caso de que no envÃen el id del usuario como variable de
sesión. Este es:
def authorize
@p=Person.find_by_id(session[:person_id])
unless @p
flash[:notice] = “Please log in”
redirect_to(:controller => “login” , :action => “login” )
end
end
El problema es que en el test funcional me redirige aún cuando le paso
la variable adecuadamente (¿no?):
p = Person.find(:first)
assert p!=nil
get :index, {}, { :person_id => p.id }
assert_response :success
El primer assert confirma que p existe, pero aún asà el assert_response
falla porque redirige. Da el siguiente error:
- Failure:
test_index_with_user(HomeControllerTest)
[/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/action_controller/assertions/response_assertions.rb:26:in
assert_response' /usr/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/action_controller/assertions/response_assertions.rb:18:in
assert_response’
test/functional/home_controller_test.rb:27:in
`test_index_with_user’]:
Expected response to be a <:success>, but was <302>
Y en log/test.log aparece:
Processing HomeController#index (for 0.0.0.0 at 2007-05-06 14:13:15)
[GET]
Session ID:
Parameters: {“action”=>“index”, “controller”=>“home”}
Person Load (0.000317) SELECT * FROM people WHERE (people.id
IS
NULL) LIMIT 1
Redirected to http://test.host/login/login
¿Alguna idea? Gracias.