+
+ def test_user_api_read
+ # check that a visible user is returned properly
+ get :api_read, :id => users(:normal_user).id
+ assert_response :success
+
+ # check the data that is returned
+ assert_select "description", :count => 1, :text => "test"
+ assert_select "contributor-terms", :count => 1 do
+ assert_select "[agreed=true]"
+ end
+ assert_select "img", :count => 1
+ assert_select "roles", :count => 1 do
+ assert_select "role", :count => 0
+ end
+ assert_select "changesets", :count => 1 do
+ assert_select "[count=0]"
+ end
+ assert_select "traces", :count => 1 do
+ assert_select "[count=0]"
+ end
+ assert_select "blocks", :count => 1 do
+ assert_select "received", :count => 1 do
+ assert_select "[count=0][active=0]"
+ end
+ assert_select "issued", :count => 0
+ end
+
+ # check that we aren't revealing private information
+ assert_select "contributor-terms[pd]", false
+ assert_select "home", false
+ assert_select "languages", false
+ assert_select "messages", false
+
+ # check that a suspended user is not returned
+ get :api_read, :id => users(:suspended_user).id
+ assert_response :gone
+
+ # check that a deleted user is not returned
+ get :api_read, :id => users(:deleted_user).id
+ assert_response :gone
+
+ # check that a non-existent user is not returned
+ get :api_read, :id => 0
+ assert_response :not_found
+ end
+