Is it possible to follow redirects outside of Rails on an integration test?

Hello,
Is it possible to follow redirects outside of Rails on an integration
test?

I’m trying to test my whole log in procedure and part of it includes
authenticating with OpenID. I have rots running locally but when I’m
suppose
do be redirected to the localhost:1123/server (the rots server) I end up
being redirected to localhost:3000/server (the rails server with an url
that
doesn’t exist). It is like if the code that follows the redirection on
integration tests is ignoring the URL. Is there any way to enable
external
redirections?

Thanks.

J. Pablo Fernández [email protected] (http://pupeno.com)

Hello Bill,
Thanks for the reply. As far as I know the full URL is being used for
the
redirect. I remember seeing the url in the debugger and also, the URL is
being generated by ruby-openid, so if it wasn’t using the full URL,
ruby-openid would be broken for everybody.

I can’t check it right now, as soon as I can I’ll do it and post the
result.

Thanks.

On Tue, Sep 29, 2009 at 21:43, bill walton [email protected] wrote:

(‘http://localhost:1123/server’) in your redirect?

Best regards,
Bill


J. Pablo Fernández [email protected] (http://pupeno.com)

Hi Pablo,

On Tue, 2009-09-29 at 08:02 +0200, J. Pablo Fernández wrote:

server) I end up being redirected to localhost:3000/server (the rails
server with an url that doesn’t exist). It is like if the code that
follows the redirection on integration tests is ignoring the URL. Is
there any way to enable external redirections?

I haven’t tested this, but are you using the fully qualified url
(‘http://localhost:1123/server’) in your redirect?

Best regards,
Bill

Confirmed that it doesn’t work, this is the test:

Replace this with your real tests.

test “log in” do
# Submit open id identifier to log in.
post “/users/start”, :openid_identifier => "
http://localhost:1123/john.doe?openid.success=true"
# We get redirected to the authentication page at the OpenID
provider
assert redirect?
# which is on http://localhost:1123/server.
assert @response.redirected_to.start_with?
http://localhost:1123/server
"
# Go.
follow_redirect!
# The OpenID server automatically approves any request, it’s a test
server
# called rots, it should redirect us back to the application
assert redirect?
# to http://localhost:3000/users/complete
assert @response.redirected_to.start_with? "
http://localhost:3000/users/complete
end

At the second assert redirect? in which the OpenID server should be
redirecting me back, I get a failure. If I look at the logs, the OpenID
server, running on port 1123 never gets a request, while the Rails
server
running on 3000 get’s a request to the path the OpenID server was
supposed
to get the request for: /server/…

Thanks.

2009/9/30 J. Pablo Fernández [email protected]

test?


J. Pablo Fernández [email protected] (http://pupeno.com)


J. Pablo Fernández [email protected] (http://pupeno.com)