X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/e09b187cae178c000a683635d408cab72dc3d35b..3f81257fc5e83a4ffc4295c2382e5bce041f3c99:/test/integration/user_creation_test.rb diff --git a/test/integration/user_creation_test.rb b/test/integration/user_creation_test.rb index bc4ccc97b..56ff5f01d 100644 --- a/test/integration/user_creation_test.rb +++ b/test/integration/user_creation_test.rb @@ -3,6 +3,34 @@ require File.dirname(__FILE__) + '/../test_helper' 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}