]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/user_controller_test.rb
Handle expired confirmation tokens
[rails.git] / test / functional / user_controller_test.rb
index 61286b2845e94c660e5bc930f8649e6841aba262..75fd34f0f1457851eb8264bbf73a3e36de933103 100644 (file)
@@ -199,7 +199,7 @@ class UserControllerTest < ActionController::TestCase
 
     assert_select "html", :count => 1 do
       assert_select "head", :count => 1 do
-        assert_select "title", :text => /Create account/, :count => 1
+        assert_select "title", :text => /Sign Up/, :count => 1
       end
       assert_select "body", :count => 1 do
         assert_select "div#content", :count => 1 do
@@ -209,7 +209,7 @@ class UserControllerTest < ActionController::TestCase
             assert_select "input[id=user_display_name]", :count => 1
             assert_select "input[id=user_pass_crypt][type=password]", :count => 1
             assert_select "input[id=user_pass_crypt_confirmation][type=password]", :count => 1
-            assert_select "input[type=submit][value=Continue]", :count => 1
+            assert_select "input[type=submit][value=Sign Up]", :count => 1
           end
         end
       end
@@ -238,8 +238,8 @@ class UserControllerTest < ActionController::TestCase
     assert_match /#{@url}/, register_email.body.to_s
 
     # Check the page
-    assert_redirected_to :action => 'login', :referer => nil
-      
+    assert_redirected_to :action => 'confirm', :display_name => display_name
+
     ActionMailer::Base.deliveries.clear
   end
   
@@ -259,8 +259,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :success                                                                       
     assert_template 'new'
-    assert_select "div#errorExplanation"
-    assert_select "div#signupForm > fieldset > div.form-row > div.field_with_errors > input#user_email"
+    assert_select "form > fieldset > div.form-row > div.field_with_errors > input#user_email"
   end
   
   def test_user_create_submit_duplicate_email_uppercase
@@ -279,8 +278,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :success                                                                       
     assert_template 'new'
-    assert_select "div#errorExplanation"
-    assert_select "div#signupForm > fieldset > div.form-row > div.field_with_errors > input#user_email"
+    assert_select "form > fieldset > div.form-row > div.field_with_errors > input#user_email"
   end
     
   def test_user_create_submit_duplicate_name
@@ -299,8 +297,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :success                                                                       
     assert_template 'new'
-    assert_select "div#errorExplanation"
-    assert_select "div#signupForm > fieldset > div.form-row > div.field_with_errors > input#user_display_name"
+    assert_select "form > fieldset > div.form-row > div.field_with_errors > input#user_display_name"
   end
   
   def test_user_create_submit_duplicate_name_uppercase
@@ -319,8 +316,31 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :success                                                                       
     assert_template 'new'
-    assert_select "div#errorExplanation"
-    assert_select "div#signupForm > fieldset > div.form-row > div.field_with_errors > input#user_display_name"
+    assert_select "form > fieldset > div.form-row > div.field_with_errors > input#user_display_name"
+  end
+
+  def test_user_confirm_expired_token
+    user = users(:inactive_user)
+    token = user.tokens.new
+    token.expiry = 1.day.ago
+    token.save!
+
+    @request.cookies["_osm_session"] = user.display_name
+    post :confirm, :confirm_string => token.token
+
+    assert_redirected_to :action => 'confirm'
+    assert_match /expired/, flash[:error]
+  end
+
+  def test_user_already_confirmed
+    user = users(:normal_user)
+    token = user.tokens.create
+
+    @request.cookies["_osm_session"] = user.display_name
+    post :confirm, :confirm_string => token.token
+
+    assert_redirected_to :action => 'login'
+    assert_match /confirmed/, flash[:error]
   end
 
   def test_user_terms_new_user