]> git.openstreetmap.org Git - rails.git/blob - test/controllers/users/diary_comments_controller_test.rb
Create changeset_comments resources for users
[rails.git] / test / controllers / users / diary_comments_controller_test.rb
1 require "test_helper"
2
3 module Users
4   class DiaryCommentsControllerTest < ActionDispatch::IntegrationTest
5     def setup
6       super
7       # Create the default language for diary entries
8       create(:language, :code => "en")
9     end
10
11     ##
12     # test all routes which lead to this controller
13     def test_routes
14       assert_routing(
15         { :path => "/user/username/diary_comments", :method => :get },
16         { :controller => "users/diary_comments", :action => "index", :user_display_name => "username" }
17       )
18
19       get "/user/username/diary/comments/1"
20       assert_redirected_to "/user/username/diary_comments"
21
22       get "/user/username/diary/comments"
23       assert_redirected_to "/user/username/diary_comments"
24     end
25
26     def test_index
27       user = create(:user)
28       other_user = create(:user)
29       suspended_user = create(:user, :suspended)
30       deleted_user = create(:user, :deleted)
31
32       # Test a user with no comments
33       get user_diary_comments_path(user)
34       assert_response :success
35       assert_template :index
36       assert_select "h4", :html => "No comments"
37
38       # Test a user with a comment
39       create(:diary_comment, :user => other_user)
40
41       get user_diary_comments_path(other_user)
42       assert_response :success
43       assert_template :index
44       assert_dom "a[href='#{user_path(other_user)}']", :text => other_user.display_name
45       assert_select "table.table-striped tbody" do
46         assert_select "tr", :count => 1
47       end
48
49       # Test a suspended user
50       get user_diary_comments_path(suspended_user)
51       assert_response :not_found
52
53       # Test a deleted user
54       get user_diary_comments_path(deleted_user)
55       assert_response :not_found
56     end
57
58     def test_index_invalid_paged
59       user = create(:user)
60
61       %w[-1 0 fred].each do |id|
62         get user_diary_comments_path(user, :before => id)
63         assert_redirected_to :controller => "/errors", :action => :bad_request
64
65         get user_diary_comments_path(user, :after => id)
66         assert_redirected_to :controller => "/errors", :action => :bad_request
67       end
68     end
69   end
70 end