Fix more parameter sanitisation issues and add tests

This commit is contained in:
Tom Hughes 2017-06-29 20:52:57 +01:00
parent 3763cbc7d4
commit fe1e28b4f4
10 changed files with 128 additions and 5 deletions

View file

@ -2044,6 +2044,18 @@ EOF
check_list_result(Changeset.where("id <= 4"))
end
##
# Check that a list with a next page link works
def test_list_more
create_list(:changeset, 50)
get :list, :params => { :format => "html" }
assert_response :success
get :list, :params => { :format => "html" }, :xhr => true
assert_response :success
end
##
# This should display the last 20 non-empty changesets
def test_feed

View file

@ -570,6 +570,21 @@ class DiaryEntryControllerTest < ActionController::TestCase
check_diary_list
end
def test_list_paged
# Create several pages worth of diary entries
create_list(:diary_entry, 50)
# Try and get the list
get :list
assert_response :success
assert_select "div.diary_post", :count => 20
# Try and get the second page
get :list, :params => { :page => 2 }
assert_response :success
assert_select "div.diary_post", :count => 20
end
def test_rss
create(:language, :code => "de")
create(:diary_entry, :language_code => "en")

View file

@ -999,4 +999,20 @@ class NotesControllerTest < ActionController::TestCase
get :mine, :params => { :display_name => "non-existent" }
assert_response :not_found
end
def test_mine_paged
user = create(:user)
create_list(:note, 50) do |note|
create(:note_comment, :note => note, :author => user)
end
get :mine, :params => { :display_name => user.display_name }
assert_response :success
assert_select "table.note_list tr", :count => 11
get :mine, :params => { :display_name => user.display_name, :page => 2 }
assert_response :success
assert_select "table.note_list tr", :count => 11
end
end

View file

@ -257,6 +257,26 @@ class TraceControllerTest < ActionController::TestCase
assert_template "user/no_such_user"
end
# Check a multi-page list
def test_list_paged
# Create several pages worth of traces
create_list(:trace, 50)
# Try and get the list
get :list
assert_response :success
assert_select "table#trace_list tbody", :count => 1 do
assert_select "tr", :count => 20
end
# Try and get the second page
get :list, :params => { :page => 2 }
assert_response :success
assert_select "table#trace_list tbody", :count => 1 do
assert_select "tr", :count => 20
end
end
# Check that the rss loads
def test_rss
user = create(:user)

View file

@ -73,6 +73,24 @@ class UserBlocksControllerTest < ActionController::TestCase
end
end
##
# test the index action with multiple pages
def test_index_paged
create_list(:user_block, 50)
get :index
assert_response :success
assert_select "table#block_list", :count => 1 do
assert_select "tr", :count => 21
end
get :index, :params => { :page => 2 }
assert_response :success
assert_select "table#block_list", :count => 1 do
assert_select "tr", :count => 21
end
end
##
# test the show action
def test_show
@ -421,6 +439,25 @@ class UserBlocksControllerTest < ActionController::TestCase
end
end
##
# test the blocks_on action with multiple pages
def test_blocks_on_paged
user = create(:user)
create_list(:user_block, 50, :user => user)
get :blocks_on, :params => { :display_name => user.display_name }
assert_response :success
assert_select "table#block_list", :count => 1 do
assert_select "tr", :count => 21
end
get :blocks_on, :params => { :display_name => user.display_name, :page => 2 }
assert_response :success
assert_select "table#block_list", :count => 1 do
assert_select "tr", :count => 21
end
end
##
# test the blocks_by action
def test_blocks_by
@ -465,4 +502,23 @@ class UserBlocksControllerTest < ActionController::TestCase
assert_select "table#block_list", false
assert_select "p", "#{normal_user.display_name} has not made any blocks yet."
end
##
# test the blocks_by action with multiple pages
def test_blocks_by_paged
user = create(:moderator_user)
create_list(:user_block, 50, :creator => user)
get :blocks_by, :params => { :display_name => user.display_name }
assert_response :success
assert_select "table#block_list", :count => 1 do
assert_select "tr", :count => 21
end
get :blocks_by, :params => { :display_name => user.display_name, :page => 2 }
assert_response :success
assert_select "table#block_list", :count => 1 do
assert_select "tr", :count => 21
end
end
end