]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/user_controller_test.rb
Inline validation errors on sign up page
[rails.git] / test / functional / user_controller_test.rb
index 79666adfeba36d3a6fbe0a7f4cff699db1066fb3..20ea746968cf6fa6fba414daeb409c9d1ca2b22f 100644 (file)
@@ -55,11 +55,12 @@ class UserControllerTest < ActionController::TestCase
     )
 
     assert_routing(
     )
 
     assert_routing(
-      { :path => "/user/terms", :method => :get },
-      { :controller => "user", :action => "terms" }
+      { :path => "/user/new", :method => :post },
+      { :controller => "user", :action => "create" }
     )
     )
+
     assert_routing(
     assert_routing(
-      { :path => "/user/terms", :method => :post },
+      { :path => "/user/terms", :method => :get },
       { :controller => "user", :action => "terms" }
     )
 
       { :controller => "user", :action => "terms" }
     )
 
@@ -198,17 +199,17 @@ class UserControllerTest < ActionController::TestCase
 
     assert_select "html", :count => 1 do
       assert_select "head", :count => 1 do
 
     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
       end
       assert_select "body", :count => 1 do
         assert_select "div#content", :count => 1 do
-          assert_select "form[action='/user/terms'][method=post]", :count => 1 do
+          assert_select "form[action='/user/new'][method=post]", :count => 1 do
             assert_select "input[id=user_email]", :count => 1
             assert_select "input[id=user_email_confirmation]", :count => 1
             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[id=user_email]", :count => 1
             assert_select "input[id=user_email_confirmation]", :count => 1
             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
           end
         end
       end
@@ -258,8 +259,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :success                                                                       
     assert_template 'new'
     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
   end
   
   def test_user_create_submit_duplicate_email_uppercase
@@ -278,8 +278,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :success                                                                       
     assert_template 'new'
     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
   end
     
   def test_user_create_submit_duplicate_name
@@ -298,8 +297,7 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :success                                                                       
     assert_template 'new'
     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
   end
   
   def test_user_create_submit_duplicate_name_uppercase
@@ -318,8 +316,24 @@ class UserControllerTest < ActionController::TestCase
     end
     assert_response :success                                                                       
     assert_template 'new'
     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_terms_new_user
+    get :terms, {}, { "new_user" => User.new }
+    assert_response :success
+    assert_template :terms
+  end
+
+  def test_user_terms_seen
+    user = users(:normal_user)
+
+    # Set the username cookie
+    @request.cookies["_osm_username"] = user.display_name
+
+    get :terms, {}, { "user" => user }
+    assert_response :redirect
+    assert_redirected_to :action => :account, :display_name => user.display_name
   end
 
   def test_user_lost_password
   end
 
   def test_user_lost_password
@@ -413,7 +427,7 @@ class UserControllerTest < ActionController::TestCase
     assert_template :account
     assert_select "div#errorExplanation", false
     assert_select "div#notice", /^User information updated successfully/
     assert_template :account
     assert_select "div#errorExplanation", false
     assert_select "div#notice", /^User information updated successfully/
-    assert_select "table#accountForm > tr > td > div#user_description_container > div#user_description_content > textarea#user_description", user.description
+    assert_select "form#accountForm > fieldset > div.form-row > div#user_description_container > div#user_description_content > textarea#user_description", user.description
 
     # Changing name to one that exists should fail
     user.display_name = users(:public_user).display_name
 
     # Changing name to one that exists should fail
     user.display_name = users(:public_user).display_name
@@ -422,7 +436,7 @@ class UserControllerTest < ActionController::TestCase
     assert_template :account
     assert_select "div#notice", false
     assert_select "div#errorExplanation"
     assert_template :account
     assert_select "div#notice", false
     assert_select "div#errorExplanation"
-    assert_select "table#accountForm > tr > td > div[class=field_with_errors] > input#user_display_name"
+    assert_select "form#accountForm > fieldset > div.form-row > div.field_with_errors > input#user_display_name"
 
     # Changing name to one that exists should fail, regardless of case
     user.display_name = users(:public_user).display_name.upcase
 
     # Changing name to one that exists should fail, regardless of case
     user.display_name = users(:public_user).display_name.upcase
@@ -431,7 +445,7 @@ class UserControllerTest < ActionController::TestCase
     assert_template :account
     assert_select "div#notice", false
     assert_select "div#errorExplanation"
     assert_template :account
     assert_select "div#notice", false
     assert_select "div#errorExplanation"
-    assert_select "table#accountForm > tr > td > div[class=field_with_errors] > input#user_display_name"
+    assert_select "form#accountForm > fieldset > div.form-row > div.field_with_errors > input#user_display_name"
 
     # Changing name to one that doesn't exist should work
     user.display_name = "new tester"
 
     # Changing name to one that doesn't exist should work
     user.display_name = "new tester"
@@ -440,7 +454,7 @@ class UserControllerTest < ActionController::TestCase
     assert_template :account
     assert_select "div#errorExplanation", false
     assert_select "div#notice", /^User information updated successfully/
     assert_template :account
     assert_select "div#errorExplanation", false
     assert_select "div#notice", /^User information updated successfully/
-    assert_select "table#accountForm > tr > td > input#user_display_name[value=?]", user.display_name
+    assert_select "form#accountForm > fieldset > div.form-row > input#user_display_name[value=?]", user.display_name
 
     # Need to update cookies now to stay valid
     @request.cookies["_osm_username"] = user.display_name
 
     # Need to update cookies now to stay valid
     @request.cookies["_osm_username"] = user.display_name
@@ -452,7 +466,7 @@ class UserControllerTest < ActionController::TestCase
     assert_template :account
     assert_select "div#notice", false
     assert_select "div#errorExplanation"
     assert_template :account
     assert_select "div#notice", false
     assert_select "div#errorExplanation"
-    assert_select "table#accountForm > tr > td > div[class=field_with_errors] > input#user_new_email"
+    assert_select "form#accountForm > fieldset > div.form-row > div.field_with_errors > input#user_new_email"
 
     # Changing email to one that exists should fail, regardless of case
     user.new_email = users(:public_user).email.upcase
 
     # Changing email to one that exists should fail, regardless of case
     user.new_email = users(:public_user).email.upcase
@@ -461,7 +475,7 @@ class UserControllerTest < ActionController::TestCase
     assert_template :account
     assert_select "div#notice", false
     assert_select "div#errorExplanation"
     assert_template :account
     assert_select "div#notice", false
     assert_select "div#errorExplanation"
-    assert_select "table#accountForm > tr > td > div[class=field_with_errors] > input#user_new_email"
+    assert_select "form#accountForm > fieldset > div.form-row > div.field_with_errors > input#user_new_email"
 
     # Changing email to one that doesn't exist should work
     user.new_email = "new_tester@example.com"
 
     # Changing email to one that doesn't exist should work
     user.new_email = "new_tester@example.com"
@@ -470,7 +484,7 @@ class UserControllerTest < ActionController::TestCase
     assert_template :account
     assert_select "div#errorExplanation", false
     assert_select "div#notice", /^User information updated successfully/
     assert_template :account
     assert_select "div#errorExplanation", false
     assert_select "div#notice", /^User information updated successfully/
-    assert_select "table#accountForm > tr > td > input#user_new_email[value=?]", user.new_email
+    assert_select "form#accountForm > fieldset > div.form-row > input#user_new_email[value=?]", user.new_email
   end
   
   # Check that the user account page will display and contains some relevant
   end
   
   # Check that the user account page will display and contains some relevant