From: Tom Hughes Date: Wed, 15 Aug 2012 21:09:36 +0000 (+0100) Subject: Test the links in the menu of the user view page X-Git-Tag: live~5432 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/05515d644a3c85d8569f459ed2007d94aadbc817 Test the links in the menu of the user view page --- diff --git a/test/functional/user_controller_test.rb b/test/functional/user_controller_test.rb index 03b8eda1e..f756b0514 100644 --- a/test/functional/user_controller_test.rb +++ b/test/functional/user_controller_test.rb @@ -437,12 +437,88 @@ class UserControllerTest < ActionController::TestCase # Check that the user account page will display and contains some relevant # information for the user - def test_view_user_account + def test_user_view_account + # Test a non-existent user get :view, {:display_name => "unknown"} assert_response :not_found + # Test a normal user get :view, {:display_name => "test"} assert_response :success + assert_select "div#userinformation" do + assert_select "a[href=/user/test/edits]", 1 + assert_select "a[href=/user/test/traces]", 1 + assert_select "a[href=/user/test/diary]", 1 + assert_select "a[href=/user/test/diary/comments]", 1 + assert_select "a[href=/user/test/account]", 0 + assert_select "a[href=/user/test/blocks]", 0 + assert_select "a[href=/user/test/blocks_by]", 0 + assert_select "a[href=/blocks/new/test]", 0 + end + + # Test a user who has been blocked + get :view, {:display_name => "blocked"} + assert_response :success + assert_select "div#userinformation" do + assert_select "a[href=/user/blocked/edits]", 1 + assert_select "a[href=/user/blocked/traces]", 1 + assert_select "a[href=/user/blocked/diary]", 1 + assert_select "a[href=/user/blocked/diary/comments]", 1 + assert_select "a[href=/user/blocked/account]", 0 + assert_select "a[href=/user/blocked/blocks]", 1 + assert_select "a[href=/user/blocked/blocks_by]", 0 + assert_select "a[href=/blocks/new/blocked]", 0 + end + + # Test a moderator who has applied blocks + get :view, {:display_name => "moderator"} + assert_response :success + assert_select "div#userinformation" do + assert_select "a[href=/user/moderator/edits]", 1 + assert_select "a[href=/user/moderator/traces]", 1 + assert_select "a[href=/user/moderator/diary]", 1 + assert_select "a[href=/user/moderator/diary/comments]", 1 + assert_select "a[href=/user/moderator/account]", 0 + assert_select "a[href=/user/moderator/blocks]", 0 + assert_select "a[href=/user/moderator/blocks_by]", 1 + assert_select "a[href=/blocks/new/moderator]", 0 + end + + # Login as a normal user + session[:user] = users(:normal_user).id + cookies["_osm_username"] = users(:normal_user).display_name + + # Test the normal user + get :view, {:display_name => "test"} + assert_response :success + assert_select "div#userinformation" do + assert_select "a[href=/user/test/edits]", 1 + assert_select "a[href=/traces/mine]", 1 + assert_select "a[href=/user/test/diary]", 1 + assert_select "a[href=/user/test/diary/comments]", 1 + assert_select "a[href=/user/test/account]", 1 + assert_select "a[href=/user/test/blocks]", 0 + assert_select "a[href=/user/test/blocks_by]", 0 + assert_select "a[href=/blocks/new/test]", 0 + end + + # Login as a moderator + session[:user] = users(:moderator_user).id + cookies["_osm_username"] = users(:moderator_user).display_name + + # Test the normal user + get :view, {:display_name => "test"} + assert_response :success + assert_select "div#userinformation" do + assert_select "a[href=/user/test/edits]", 1 + assert_select "a[href=/user/test/traces]", 1 + assert_select "a[href=/user/test/diary]", 1 + assert_select "a[href=/user/test/diary/comments]", 1 + assert_select "a[href=/user/test/account]", 0 + assert_select "a[href=/user/test/blocks]", 0 + assert_select "a[href=/user/test/blocks_by]", 0 + assert_select "a[href=/blocks/new/test]", 1 + end end def test_user_api_details