]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/user_controller_test.rb
Merge remote-tracking branch 'openstreetmap/pull/1337'
[rails.git] / test / controllers / user_controller_test.rb
index 6a2769f17b2bbb329e08bf31170456fd8892fbd2..14bea63740707babb7a4246179af0ff897d7ebf4 100644 (file)
@@ -2,7 +2,7 @@ require "test_helper"
 
 class UserControllerTest < ActionController::TestCase
   api_fixtures
-  fixtures :messages, :friends
+  fixtures :messages
 
   ##
   # test all routes which lead to this controller
@@ -547,6 +547,42 @@ class UserControllerTest < ActionController::TestCase
     assert_match /confirmation code has expired or does not exist/, flash[:error]
   end
 
+  ##
+  # test if testing for a gravatar works
+  # this happens when the email is actually changed
+  # which is triggered by the confirmation mail
+  def test_gravatar_auto_enable
+    with_http_stubs "gravatar" do
+      # switch to email that has a gravatar
+      user = users(:first_gravatar_user)
+      confirm_string = user.tokens.create.token
+      # precondition gravatar should be turned off
+      assert !user.image_use_gravatar
+      post :confirm_email, :confirm_string => confirm_string
+      assert_response :redirect
+      assert_redirected_to :action => :account, :display_name => user.display_name
+      assert_match /Confirmed your change of email address/, flash[:notice]
+      # gravatar use should now be enabled
+      assert User.find(users(:first_gravatar_user).id).image_use_gravatar
+    end
+  end
+
+  def test_gravatar_auto_disable
+    with_http_stubs "gravatar" do
+      # switch to email without a gravatar
+      user = users(:second_gravatar_user)
+      confirm_string = user.tokens.create.token
+      # precondition gravatar should be turned on
+      assert user.image_use_gravatar
+      post :confirm_email, :confirm_string => confirm_string
+      assert_response :redirect
+      assert_redirected_to :action => :account, :display_name => user.display_name
+      assert_match /Confirmed your change of email address/, flash[:notice]
+      # gravatar use should now be disabled
+      assert !User.find(users(:second_gravatar_user).id).image_use_gravatar
+    end
+  end
+
   def test_terms_new_user
     get :terms, {}, { :new_user => User.new }
     assert_response :success
@@ -888,6 +924,7 @@ class UserControllerTest < ActionController::TestCase
     end
 
     # Test a user who has been blocked
+    create(:user_block, :user => users(:blocked_user))
     get :view, :display_name => "blocked"
     assert_response :success
     assert_select "div#userinformation" do
@@ -902,6 +939,7 @@ class UserControllerTest < ActionController::TestCase
     end
 
     # Test a moderator who has applied blocks
+    create(:user_block, :creator => users(:moderator_user))
     get :view, :display_name => "moderator"
     assert_response :success
     assert_select "div#userinformation" do
@@ -961,7 +999,7 @@ class UserControllerTest < ActionController::TestCase
     assert_select "contributor-terms", :count => 1 do
       assert_select "[agreed='true']"
     end
-    assert_select "img", :count => 1
+    assert_select "img", :count => 0
     assert_select "roles", :count => 1 do
       assert_select "role", :count => 0
     end
@@ -1013,7 +1051,7 @@ class UserControllerTest < ActionController::TestCase
     assert_select "contributor-terms", :count => 1 do
       assert_select "[agreed='true'][pd='false']"
     end
-    assert_select "img", :count => 1
+    assert_select "img", :count => 0
     assert_select "roles", :count => 1 do
       assert_select "role", :count => 0
     end
@@ -1155,6 +1193,7 @@ class UserControllerTest < ActionController::TestCase
     # Get users to work with
     user = users(:normal_user)
     friend = users(:public_user)
+    create(:friend, :befriender => user, :befriendee => friend)
 
     # Check that the users are friends
     assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
@@ -1195,6 +1234,7 @@ class UserControllerTest < ActionController::TestCase
     # Get users to work with
     user = users(:normal_user)
     friend = users(:public_user)
+    create(:friend, :user_id => user.id, :friend_user_id => friend.id)
 
     # Check that the users are friends
     assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
@@ -1334,7 +1374,7 @@ class UserControllerTest < ActionController::TestCase
     get :list, :page => 3
     assert_response :success
     assert_template :list
-    assert_select "table#user_list tr", :count => 22
+    assert_select "table#user_list tr", :count => 25
   end
 
   def test_list_post_confirm