]> git.openstreetmap.org Git - rails.git/blobdiff - test/integration/user_login_test.rb
Check if db is writable on oauth authorization pages
[rails.git] / test / integration / user_login_test.rb
index 5b39ea76a44be70480178b2011a466f57369092a..a7301233d9eb2b37a9c78ca2b296bc6119c87504 100644 (file)
@@ -9,7 +9,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:openid] = nil
     OmniAuth.config.mock_auth[:google] = nil
     OmniAuth.config.mock_auth[:facebook] = nil
-    OmniAuth.config.mock_auth[:windowslive] = nil
+    OmniAuth.config.mock_auth[:microsoft] = nil
     OmniAuth.config.mock_auth[:github] = nil
     OmniAuth.config.mock_auth[:wikipedia] = nil
     OmniAuth.config.test_mode = false
@@ -113,7 +113,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -125,7 +125,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -137,7 +137,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -270,7 +270,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -282,7 +282,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -294,7 +294,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -354,13 +354,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:openid, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path(:cookie_test => true, :referer => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -375,13 +373,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:openid, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path(:cookie_test => true, :referer => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -395,13 +391,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:openid, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path(:cookie_test => true, :referer => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -409,7 +403,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_response :success
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -420,13 +414,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:openid, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path(:cookie_test => true, :referer => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -441,23 +433,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:openid] = :connection_failed
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path(:cookie_test => true, :referer => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "openid", :openid_url => user.auth_uid, :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => user.auth_uid, :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "openid", :message => "connection_failed", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Connection to authentication provider failed"
+    assert_select "div.alert.alert-danger", "Connection to authentication provider failed"
     assert_select "span.username", false
   end
 
@@ -466,23 +455,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:openid] = :invalid_credentials
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path(:cookie_test => true, :referer => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "openid", :openid_url => user.auth_uid, :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => user.auth_uid, :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "openid", :message => "invalid_credentials", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Invalid authentication credentials"
+    assert_select "div.alert.alert-danger", "Invalid authentication credentials"
     assert_select "span.username", false
   end
 
@@ -490,13 +476,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/fred.bloggs")
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path(:cookie_test => true, :referer => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "openid", :openid_url => "http://localhost:1123/fred.bloggs", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/fred.bloggs", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -513,13 +497,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
                              })
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "google", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "google")
     follow_redirect!
     assert_response :redirect
@@ -536,13 +518,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
                              })
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "google", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "google")
     follow_redirect!
     assert_response :redirect
@@ -558,13 +538,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
                              })
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "google", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "google")
     follow_redirect!
     assert_response :redirect
@@ -572,7 +550,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_response :success
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -585,13 +563,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
                              })
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "google", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "google")
     follow_redirect!
     assert_response :redirect
@@ -605,23 +581,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:google] = :connection_failed
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "google", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "google")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "google", :message => "connection_failed", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Connection to authentication provider failed"
+    assert_select "div.alert.alert-danger", "Connection to authentication provider failed"
     assert_select "span.username", false
   end
 
@@ -629,23 +602,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:google] = :invalid_credentials
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "google", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "google")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "google", :message => "invalid_credentials", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Invalid authentication credentials"
+    assert_select "div.alert.alert-danger", "Invalid authentication credentials"
     assert_select "span.username", false
   end
 
@@ -655,13 +625,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
                              })
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "google", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "google")
     follow_redirect!
     assert_response :redirect
@@ -678,13 +646,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
                              })
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "google", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "google")
     follow_redirect!
     assert_response :redirect
@@ -703,13 +669,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:facebook, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "facebook", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "facebook")
     follow_redirect!
     assert_response :redirect
@@ -724,13 +688,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:facebook, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "facebook", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "facebook")
     follow_redirect!
     assert_response :redirect
@@ -744,13 +706,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:facebook, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "facebook", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "facebook")
     follow_redirect!
     assert_response :redirect
@@ -758,7 +718,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_response :success
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -769,13 +729,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:facebook, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "facebook", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "facebook")
     follow_redirect!
     assert_response :redirect
@@ -789,23 +747,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:facebook] = :connection_failed
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "facebook", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "facebook")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "facebook", :message => "connection_failed", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Connection to authentication provider failed"
+    assert_select "div.alert.alert-danger", "Connection to authentication provider failed"
     assert_select "span.username", false
   end
 
@@ -813,23 +768,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:facebook] = :invalid_credentials
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "facebook", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "facebook")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "facebook", :message => "invalid_credentials", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Invalid authentication credentials"
+    assert_select "div.alert.alert-danger", "Invalid authentication credentials"
     assert_select "span.username", false
   end
 
@@ -837,13 +789,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:facebook, :uid => "987654321")
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "facebook", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "facebook")
     follow_redirect!
     assert_response :redirect
@@ -853,19 +803,17 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_select "span.username", false
   end
 
-  def test_login_windowslive_success
-    user = create(:user, :auth_provider => "windowslive", :auth_uid => "1234567890")
-    OmniAuth.config.add_mock(:windowslive, :uid => user.auth_uid)
+  def test_login_microsoft_success
+    user = create(:user, :auth_provider => "microsoft", :auth_uid => "1234567890")
+    OmniAuth.config.add_mock(:microsoft, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    post auth_path(:provider => "windowslive", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
-    assert_redirected_to auth_success_path(:provider => "windowslive")
+    post auth_path(:provider => "microsoft", :origin => "/login?referer=%2Fhistory", :referer => "/history")
+    assert_redirected_to auth_success_path(:provider => "microsoft")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
@@ -874,19 +822,17 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_select "span.username", user.display_name
   end
 
-  def test_login_windowslive_pending
-    user = create(:user, :pending, :auth_provider => "windowslive", :auth_uid => "1234567890")
-    OmniAuth.config.add_mock(:windowslive, :uid => user.auth_uid)
+  def test_login_microsoft_pending
+    user = create(:user, :pending, :auth_provider => "microsoft", :auth_uid => "1234567890")
+    OmniAuth.config.add_mock(:microsoft, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    post auth_path(:provider => "windowslive", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
-    assert_redirected_to auth_success_path(:provider => "windowslive")
+    post auth_path(:provider => "microsoft", :origin => "/login?referer=%2Fhistory", :referer => "/history")
+    assert_redirected_to auth_success_path(:provider => "microsoft")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
@@ -894,44 +840,40 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_template "confirm"
   end
 
-  def test_login_windowslive_suspended
-    user = create(:user, :suspended, :auth_provider => "windowslive", :auth_uid => "1234567890")
-    OmniAuth.config.add_mock(:windowslive, :uid => user.auth_uid)
+  def test_login_microsoft_suspended
+    user = create(:user, :suspended, :auth_provider => "microsoft", :auth_uid => "1234567890")
+    OmniAuth.config.add_mock(:microsoft, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    post auth_path(:provider => "windowslive", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
-    assert_redirected_to auth_success_path(:provider => "windowslive")
+    post auth_path(:provider => "microsoft", :origin => "/login?referer=%2Fhistory", :referer => "/history")
+    assert_redirected_to auth_success_path(:provider => "microsoft")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
 
-  def test_login_windowslive_blocked
-    user = create(:user, :auth_provider => "windowslive", :auth_uid => "1234567890")
+  def test_login_microsoft_blocked
+    user = create(:user, :auth_provider => "microsoft", :auth_uid => "1234567890")
     create(:user_block, :needs_view, :user => user)
-    OmniAuth.config.add_mock(:windowslive, :uid => user.auth_uid)
+    OmniAuth.config.add_mock(:microsoft, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    post auth_path(:provider => "windowslive", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
-    assert_redirected_to auth_success_path(:provider => "windowslive")
+    post auth_path(:provider => "microsoft", :origin => "/login?referer=%2Fhistory", :referer => "/history")
+    assert_redirected_to auth_success_path(:provider => "microsoft")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
@@ -940,66 +882,58 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_select "span.username", user.display_name
   end
 
-  def test_login_windowslive_connection_failed
-    OmniAuth.config.mock_auth[:windowslive] = :connection_failed
+  def test_login_microsoft_connection_failed
+    OmniAuth.config.mock_auth[:microsoft] = :connection_failed
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    post auth_path(:provider => "windowslive", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
-    assert_redirected_to auth_success_path(:provider => "windowslive")
+    post auth_path(:provider => "microsoft", :origin => "/login?referer=%2Fhistory", :referer => "/history")
+    assert_redirected_to auth_success_path(:provider => "microsoft")
     follow_redirect!
-    assert_response :redirect
-    assert_redirected_to auth_failure_path(:strategy => "windowslive", :message => "connection_failed", :origin => "/login?referer=%2Fhistory")
+    assert_redirected_to auth_failure_path(:strategy => "microsoft", :message => "connection_failed", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Connection to authentication provider failed"
+    assert_select "div.alert.alert-danger", "Connection to authentication provider failed"
     assert_select "span.username", false
   end
 
-  def test_login_windowslive_invalid_credentials
-    OmniAuth.config.mock_auth[:windowslive] = :invalid_credentials
+  def test_login_microsoft_invalid_credentials
+    OmniAuth.config.mock_auth[:microsoft] = :invalid_credentials
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    post auth_path(:provider => "windowslive", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
-    assert_redirected_to auth_success_path(:provider => "windowslive")
+    post auth_path(:provider => "microsoft", :origin => "/login?referer=%2Fhistory", :referer => "/history")
+    assert_redirected_to auth_success_path(:provider => "microsoft")
     follow_redirect!
-    assert_response :redirect
-    assert_redirected_to auth_failure_path(:strategy => "windowslive", :message => "invalid_credentials", :origin => "/login?referer=%2Fhistory")
+    assert_redirected_to auth_failure_path(:strategy => "microsoft", :message => "invalid_credentials", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Invalid authentication credentials"
+    assert_select "div.alert.alert-danger", "Invalid authentication credentials"
     assert_select "span.username", false
   end
 
-  def test_login_windowslive_unknown
-    OmniAuth.config.add_mock(:windowslive, :uid => "987654321")
+  def test_login_microsoft_unknown
+    OmniAuth.config.add_mock(:microsoft, :uid => "987654321")
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    post auth_path(:provider => "windowslive", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
-    assert_redirected_to auth_success_path(:provider => "windowslive")
+    post auth_path(:provider => "microsoft", :origin => "/login?referer=%2Fhistory", :referer => "/history")
+    assert_redirected_to auth_success_path(:provider => "microsoft")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
@@ -1013,13 +947,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:github, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "github", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "github")
     follow_redirect!
     assert_response :redirect
@@ -1034,13 +966,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:github, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "github", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "github")
     follow_redirect!
     assert_response :redirect
@@ -1054,13 +984,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:github, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "github", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "github")
     follow_redirect!
     assert_response :redirect
@@ -1068,7 +996,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_response :success
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -1079,13 +1007,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:github, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "github", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "github")
     follow_redirect!
     assert_response :redirect
@@ -1099,23 +1025,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:github] = :connection_failed
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "github", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "github")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "github", :message => "connection_failed", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Connection to authentication provider failed"
+    assert_select "div.alert.alert-danger", "Connection to authentication provider failed"
     assert_select "span.username", false
   end
 
@@ -1123,23 +1046,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:github] = :invalid_credentials
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "github", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "github")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "github", :message => "invalid_credentials", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Invalid authentication credentials"
+    assert_select "div.alert.alert-danger", "Invalid authentication credentials"
     assert_select "span.username", false
   end
 
@@ -1147,13 +1067,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:github, :uid => "987654321")
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "github", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "github")
     follow_redirect!
     assert_response :redirect
@@ -1168,13 +1086,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:wikipedia, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -1189,13 +1105,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:wikipedia, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -1209,13 +1123,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:wikipedia, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -1223,7 +1135,7 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     assert_response :success
     assert_template "sessions/new"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/ do
+    assert_select "div.alert.alert-danger", /your account has been suspended/ do
       assert_select "a[href='mailto:openstreetmap@example.com']", "support"
     end
   end
@@ -1234,13 +1146,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:wikipedia, :uid => user.auth_uid)
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -1254,23 +1164,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:wikipedia] = :connection_failed
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "wikipedia", :message => "connection_failed", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Connection to authentication provider failed"
+    assert_select "div.alert.alert-danger", "Connection to authentication provider failed"
     assert_select "span.username", false
   end
 
@@ -1278,23 +1185,20 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.mock_auth[:wikipedia] = :invalid_credentials
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
-    assert_response :redirect
     assert_redirected_to auth_failure_path(:strategy => "wikipedia", :message => "invalid_credentials", :origin => "/login?referer=%2Fhistory")
     follow_redirect!
     assert_response :redirect
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
-    assert_select "div.flash.error", "Invalid authentication credentials"
+    assert_select "div.alert.alert-danger", "Invalid authentication credentials"
     assert_select "span.username", false
   end
 
@@ -1302,13 +1206,11 @@ class UserLoginTest < ActionDispatch::IntegrationTest
     OmniAuth.config.add_mock(:wikipedia, :uid => "987654321")
 
     get "/login", :params => { :referer => "/history" }
-    assert_response :redirect
     assert_redirected_to login_path("cookie_test" => "true", "referer" => "/history")
     follow_redirect!
     assert_response :success
     assert_template "sessions/new"
     post auth_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
-    assert_response :redirect
     assert_redirected_to auth_success_path(:provider => "wikipedia", :origin => "/login?referer=%2Fhistory", :referer => "/history")
     follow_redirect!
     assert_response :redirect
@@ -1322,7 +1224,6 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
   def try_password_login(username, password, remember_me = nil)
     get "/login"
-    assert_response :redirect
     assert_redirected_to login_path(:cookie_test => true)
     follow_redirect!
     assert_response :success