class UserCreationTest < ActionController::IntegrationTest
fixtures :users
+ def setup
+ begin
+ # Test if the ROTS (Ruby OpenID Test Server) is already running
+ rots_response = Net::HTTP.get_response(URI.parse("http://localhost:1123/"))
+ rescue
+ # It isn't, so start a new instance.
+ rots = IO.popen(RAILS_ROOT + "/vendor/gems/rots-0.2.1/bin/rots --silent")
+
+ # Wait for up to 30 seconds for the server to start and respond before continuing
+ for i in (1 .. 30)
+ begin
+ sleep 1
+ rots_response = Net::HTTP.get_response(URI.parse("http://localhost:1123/"))
+ # If the rescue block doesn't fire, ROTS is up and running and we can continue
+ break
+ rescue
+ # If the connection failed, do nothing and repeat the loop
+ end
+ end
+
+ # Arrange to kill the process when we exit - note that we need
+ # to kill it really har due to a bug in ROTS
+ Kernel.at_exit do
+ Process.kill("KILL", rots.pid)
+ end
+ end
+ end
+
def test_create_user_form
I18n.available_locales.each do |locale|
get '/user/new', {}, {"accept_language" => locale.to_s}
assert_equal register_email.to[0], new_email
# Check that the confirm account url is correct
- confirm_regex = Regexp.new("/user/confirm\\?confirm_string=([a-zA-Z0-9]*)")
+ confirm_regex = Regexp.new("/user/redirect_tester/confirm\\?confirm_string=([a-zA-Z0-9]*)")
assert_match(confirm_regex, register_email.body)
confirm_string = confirm_regex.match(register_email.body)[1]
assert_equal register_email.to[0], new_email
# Check that the confirm account url is correct
- confirm_regex = Regexp.new("/user/confirm\\?confirm_string=([a-zA-Z0-9]*)")
+ confirm_regex = Regexp.new("/user/redirect_tester_openid/confirm\\?confirm_string=([a-zA-Z0-9]*)")
assert_match(confirm_regex, register_email.body)
confirm_string = confirm_regex.match(register_email.body)[1]