Simplify handling of verified emails in OpenID signup

Also make sure that all paths that lead to OpenID based signup
will notice a verified email properly.
This commit is contained in:
Tom Hughes 2012-10-30 18:53:58 +00:00
parent 104727f889
commit b7b68aee36
5 changed files with 107 additions and 67 deletions

View file

@ -216,7 +216,13 @@ class UserControllerTest < ActionController::TestCase
display_name = "new_tester"
assert_difference('User.count') do
assert_difference('ActionMailer::Base.deliveries.size') do
post :save, {:user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"}}
session[:new_user] = User.new({
:status => "pending", :display_name => display_name,
:email => new_email, :email_confirmation => new_email,
:pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"
}, :without_protection => true)
post :save
end
end
@ -237,7 +243,13 @@ class UserControllerTest < ActionController::TestCase
display_name = "new_tester"
assert_difference('User.count', 0) do
assert_difference('ActionMailer::Base.deliveries.size', 0) do
post :save, :user => { :email => email, :email_confirmation => email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"}
session[:new_user] = User.new({
:status => "pending", :display_name => display_name,
:email => email, :email_confirmation => email,
:pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"
}, :without_protection => true)
post :save
end
end
assert_response :success
@ -251,7 +263,13 @@ class UserControllerTest < ActionController::TestCase
display_name = "new_tester"
assert_difference('User.count', 0) do
assert_difference('ActionMailer::Base.deliveries.size', 0) do
post :save, :user => { :email => email, :email_confirmation => email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"}
session[:new_user] = User.new({
:status => "pending", :display_name => display_name,
:email => email, :email_confirmation => email,
:pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"
}, :without_protection => true)
post :save
end
end
assert_response :success
@ -265,7 +283,13 @@ class UserControllerTest < ActionController::TestCase
display_name = users(:public_user).display_name
assert_difference('User.count', 0) do
assert_difference('ActionMailer::Base.deliveries.size', 0) do
post :save, :user => { :email => email, :email_confirmation => email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"}
session[:new_user] = User.new({
:status => "pending", :display_name => display_name,
:email => email, :email_confirmation => email,
:pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"
}, :without_protection => true)
post :save
end
end
assert_response :success
@ -279,7 +303,13 @@ class UserControllerTest < ActionController::TestCase
display_name = users(:public_user).display_name.upcase
assert_difference('User.count', 0) do
assert_difference('ActionMailer::Base.deliveries.size', 0) do
post :save, :user => { :email => email, :email_confirmation => email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"}
session[:new_user] = User.new({
:status => "pending", :display_name => display_name,
:email => email, :email_confirmation => email,
:pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"
}, :without_protection => true)
post :save
end
end
assert_response :success

View file

@ -21,7 +21,7 @@ class UserCreationTest < ActionController::IntegrationTest
display_name = "#{localer.to_s}_new_tester"
assert_difference('User.count', 0) do
assert_difference('ActionMailer::Base.deliveries.size', 0) do
post '/user/save',
post '/user/terms',
{:user => { :email => dup_email, :email_confirmation => dup_email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"}},
{"HTTP_ACCEPT_LANGUAGE" => localer.to_s}
end
@ -41,7 +41,7 @@ class UserCreationTest < ActionController::IntegrationTest
email = "#{locale.to_s}_new_tester"
assert_difference('User.count', 0) do
assert_difference('ActionMailer::Base.deliveries.size', 0) do
post '/user/save',
post '/user/terms',
{:user => {:email => email, :email_confirmation => email, :display_name => dup_display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"}},
{"HTTP_ACCEPT_LANGUAGE" => locale.to_s}
end
@ -58,10 +58,20 @@ class UserCreationTest < ActionController::IntegrationTest
I18n.available_locales.each do |locale|
new_email = "#{locale.to_s}newtester@osm.org"
display_name = "#{locale.to_s}_new_tester"
assert_difference('User.count', 0) do
assert_difference('ActionMailer::Base.deliveries.size', 0) do
post "/user/terms",
{:user => { :email => new_email, :email_confirmation => new_email, :display_name => display_name, :pass_crypt => "testtest", :pass_crypt_confirmation => "testtest"}}
end
end
assert_response :success
assert_template 'user/terms'
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 => "testtest", :pass_crypt_confirmation => "testtest"}},
post_via_redirect "/user/save", {},
{"HTTP_ACCEPT_LANGUAGE" => "#{locale.to_s}"}
end
end