]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/users_controller_test.rb
Merge remote-tracking branch 'upstream/pull/4697'
[rails.git] / test / controllers / users_controller_test.rb
index 2db0f43b334531a4028e8035d3425cafb9bcb67c..62bb34279eafa50c69a465ff65d5a2442768e693 100644 (file)
@@ -416,7 +416,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
   # information for the user
   def test_show
     # Test a non-existent user
   # information for the user
   def test_show
     # Test a non-existent user
-    get user_path(:display_name => "unknown")
+    get user_path("unknown")
     assert_response :not_found
 
     # Test a normal user
     assert_response :not_found
 
     # Test a normal user
@@ -618,19 +618,19 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
     get users_path
     assert_response :success
     assert_template :index
     get users_path
     assert_response :success
     assert_template :index
-    assert_select "table#user_list tr", :count => 7 + 1
+    assert_select "table#user_list tbody tr", :count => 7
 
     # Should be able to limit by status
     get users_path, :params => { :status => "suspended" }
     assert_response :success
     assert_template :index
 
     # Should be able to limit by status
     get users_path, :params => { :status => "suspended" }
     assert_response :success
     assert_template :index
-    assert_select "table#user_list tr", :count => 1 + 1
+    assert_select "table#user_list tbody tr", :count => 1
 
     # Should be able to limit by IP address
     get users_path, :params => { :ip => "1.2.3.4" }
     assert_response :success
     assert_template :index
 
     # Should be able to limit by IP address
     get users_path, :params => { :ip => "1.2.3.4" }
     assert_response :success
     assert_template :index
-    assert_select "table#user_list tr", :count => 1 + 1
+    assert_select "table#user_list tbody tr", :count => 1
   end
 
   def test_index_get_paginated
   end
 
   def test_index_get_paginated
@@ -644,23 +644,44 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
 
     # 100 examples, an administrator, and a granter for the admin.
     assert_equal 102, User.count
 
     # 100 examples, an administrator, and a granter for the admin.
     assert_equal 102, User.count
+    next_path = users_path
 
 
-    get users_path
+    get next_path
     assert_response :success
     assert_template :index
     assert_response :success
     assert_template :index
-    assert_select "table#user_list tr", :count => 51
+    assert_select "table#user_list tbody tr", :count => 50
+    check_no_page_link "Newer Users"
+    next_path = check_page_link "Older Users"
 
 
-    get users_path, :params => { :page => 2 }
+    get next_path
     assert_response :success
     assert_template :index
     assert_response :success
     assert_template :index
-    assert_select "table#user_list tr", :count => 51
+    assert_select "table#user_list tbody tr", :count => 50
+    check_page_link "Newer Users"
+    next_path = check_page_link "Older Users"
 
 
-    get users_path, :params => { :page => 3 }
+    get next_path
     assert_response :success
     assert_template :index
     assert_response :success
     assert_template :index
-    assert_select "table#user_list tr", :count => 3
+    assert_select "table#user_list tbody tr", :count => 2
+    check_page_link "Newer Users"
+    check_no_page_link "Older Users"
+  end
+
+  private
+
+  def check_no_page_link(name)
+    assert_select "a.page-link", { :text => /#{Regexp.quote(name)}/, :count => 0 }, "unexpected #{name} page link"
   end
 
   end
 
+  def check_page_link(name)
+    assert_select "a.page-link", { :text => /#{Regexp.quote(name)}/ }, "missing #{name} page link" do |buttons|
+      return buttons.first.attributes["href"].value
+    end
+  end
+
+  public
+
   def test_index_post_confirm
     inactive_user = create(:user, :pending)
     suspended_user = create(:user, :suspended)
   def test_index_post_confirm
     inactive_user = create(:user, :pending)
     suspended_user = create(:user, :suspended)