X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/887eba8c8dda1eaea0a6d4785a443798da6f80b7..32f86316712b8b781dfc2ffde0a5b88b742a6627:/test/integration/user_creation_test.rb diff --git a/test/integration/user_creation_test.rb b/test/integration/user_creation_test.rb index e6ac49e8d..e4ed23294 100644 --- a/test/integration/user_creation_test.rb +++ b/test/integration/user_creation_test.rb @@ -85,4 +85,44 @@ class UserCreationTest < ActionController::IntegrationTest # Submit the reset password token # Check that the password has changed, and the user can login end + + def test_user_create_redirect + new_email = "redirect_tester@osm.org" + display_name = "redirect_tester" + password = "testtest" + # nothing special about this page, just need a protected page to redirect back to. + referer = "/traces/mine" + assert_difference('User.count') do + assert_difference('ActionMailer::Base.deliveries.size', 1) do + post_via_redirect "/user/save", + {:user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :pass_crypt => password, :pass_crypt_confirmation => password}, :referer => referer } + end + end + + # Check the e-mail + register_email = ActionMailer::Base.deliveries.first + + 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]*)") + assert_match(confirm_regex, register_email.body) + confirm_string = confirm_regex.match(register_email.body)[1] + + # Check the page + assert_response :success + assert_template 'login' + + ActionMailer::Base.deliveries.clear + + # Go to the confirmation page + get 'user/confirm', { :confirm_string => confirm_string } + assert_response :success + assert_template 'user/confirm' + + post 'user/confirm', { :confirm_string => confirm_string, :confirm_action => 'submit' } + assert_response :redirect + follow_redirect! + assert_response :success + assert_template "trace/mine" + end end