Merge branch 'master' into messages

This commit is contained in:
Andy Allan 2018-10-03 14:04:12 +02:00 committed by GitHub
commit 5e407dfb34
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
193 changed files with 3218 additions and 1547 deletions

View file

@ -73,7 +73,7 @@ class AmfControllerTest < ActionController::TestCase
assert_response :success
amf_parse_response
result = amf_result("/1")
assert_equal -4, result[0]
assert_equal(-4, result[0])
assert_equal "way", result[1]
assert_equal id, result[2]
assert(result[3].nil? && result[4].nil? && result[5].nil? && result[6].nil?)
@ -154,7 +154,7 @@ class AmfControllerTest < ActionController::TestCase
assert_response :success
amf_parse_response
way = amf_result("/1")
assert_equal -4, way[0]
assert_equal(-4, way[0])
assert_equal "way", way[1]
assert_equal 0, way[2]
assert(way[3].nil?) && way[4].nil? && way[5].nil? && way[6].nil?
@ -370,7 +370,7 @@ class AmfControllerTest < ActionController::TestCase
assert_response :success
amf_parse_response
returned_way = amf_result("/1")
assert_equal -1, returned_way[0]
assert_equal(-1, returned_way[0])
assert returned_way[3].nil?
assert returned_way[4].nil?
assert returned_way[5].nil?
@ -391,7 +391,7 @@ class AmfControllerTest < ActionController::TestCase
assert_response :success
amf_parse_response
returned_way = amf_result("/1")
assert_equal -1, returned_way[0]
assert_equal(-1, returned_way[0])
assert returned_way[3].nil?
assert returned_way[4].nil?
assert returned_way[5].nil?
@ -408,7 +408,7 @@ class AmfControllerTest < ActionController::TestCase
assert_response :success
amf_parse_response
returned_way = amf_result("/1")
assert_equal -1, returned_way[0]
assert_equal(-1, returned_way[0])
assert returned_way[3].nil?
assert returned_way[4].nil?
assert returned_way[5].nil?
@ -498,8 +498,8 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 2, result.length
assert_equal -1, result[0]
assert_match /must be logged in/, result[1]
assert_equal(-1, result[0])
assert_match(/must be logged in/, result[1])
blocked_user = create(:user)
create(:user_block, :user => blocked_user)
@ -510,8 +510,8 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 2, result.length
assert_equal -1, result[0]
assert_match /access to the API has been blocked/, result[1]
assert_equal(-1, result[0])
assert_match(/access to the API has been blocked/, result[1])
end
def test_findgpx_by_id
@ -546,7 +546,7 @@ class AmfControllerTest < ActionController::TestCase
# find by name fails as it uses mysql text search syntax...
assert_equal 2, result.length
assert_equal -2, result[0]
assert_equal(-2, result[0])
end
def test_findrelations_by_id
@ -636,7 +636,7 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 3, result.length
assert_equal -4, result[0]
assert_equal(-4, result[0])
assert_equal "node", result[1]
assert_equal 999999, result[2]
end
@ -671,7 +671,7 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 3, result.length
assert_equal -4, result[0]
assert_equal(-4, result[0])
assert_equal "node", result[1]
assert_equal node.node_id, result[2]
@ -682,7 +682,7 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 3, result.length
assert_equal -4, result[0]
assert_equal(-4, result[0])
assert_equal "node", result[1]
assert_equal 999999, result[2]
end
@ -747,7 +747,7 @@ class AmfControllerTest < ActionController::TestCase
assert_equal 5, result.size
assert_equal 0, result[0], "expected to get the status ok from the amf"
assert_equal 0, result[2], "The old id should be 0"
assert result[3] > 0, "The new id should be greater than 0"
assert result[3].positive?, "The new id should be greater than 0"
assert_equal 1, result[4], "The new version should be 1"
# Finally check that the node that was saved has saved the data correctly
@ -784,7 +784,7 @@ class AmfControllerTest < ActionController::TestCase
assert_equal 5, result.size
assert_equal 0, result[0], "Expected to get the status ok in the amf"
assert_equal 0, result[2], "The old id should be 0"
assert result[3] > 0, "The new id should be greater than 0"
assert result[3].positive?, "The new id should be greater than 0"
assert_equal 1, result[4], "The new version should be 1"
# Finally check that the node that was saved has saved the data correctly
@ -831,7 +831,7 @@ class AmfControllerTest < ActionController::TestCase
assert_equal 5, result.size
assert_equal 0, result[0], "Expected to get the status ok in the amf"
assert_equal 0, result[2], "The old id should be 0"
assert result[3] > 0, "The new id should be greater than 0"
assert result[3].positive?, "The new id should be greater than 0"
assert_equal 1, result[4], "The new version should be 1"
# Finally check that the node that was saved has saved the data correctly
@ -864,7 +864,7 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 2, result.size
assert_equal -1, result[0], "Expected to get the status FAIL in the amf"
assert_equal(-1, result[0], "Expected to get the status FAIL in the amf")
assert_equal "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1.", result[1]
end
@ -904,7 +904,7 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 3, result.size
assert_equal -4, result[0]
assert_equal(-4, result[0])
assert_equal "node", result[1]
assert_equal nd.id, result[2]
end
@ -922,7 +922,7 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 3, result.size
assert_equal -4, result[0]
assert_equal(-4, result[0])
assert_equal "node", result[1]
assert_equal 999999, result[2]
end
@ -940,8 +940,8 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 2, result.size
assert_equal -2, result[0]
assert_match /Node is not in the world/, result[1]
assert_equal(-2, result[0])
assert_match(/Node is not in the world/, result[1])
end
# check that we can create a way
@ -966,8 +966,8 @@ class AmfControllerTest < ActionController::TestCase
assert_equal 8, result.size
assert_equal 0, result[0]
assert_equal "", result[1]
assert_equal -1, result[2]
assert_not_equal -1, result[3]
assert_equal(-1, result[2])
assert_not_equal(-1, result[3])
assert_equal({}, result[4])
assert_equal 1, result[5]
assert_equal({}, result[6])
@ -988,8 +988,8 @@ class AmfControllerTest < ActionController::TestCase
assert_equal 8, result.size
assert_equal 0, result[0]
assert_equal "", result[1]
assert_equal -1, result[2]
assert_not_equal -1, result[3]
assert_equal(-1, result[2])
assert_not_equal(-1, result[3])
assert_equal({}, result[4])
assert_equal 1, result[5]
assert_equal({}, result[6])
@ -1011,8 +1011,8 @@ class AmfControllerTest < ActionController::TestCase
assert_equal 8, result.size
assert_equal 0, result[0]
assert_equal "", result[1]
assert_equal -1, result[2]
assert_not_equal -1, result[3]
assert_equal(-1, result[2])
assert_not_equal(-1, result[3])
assert_equal({ "-1" => new_node_id }, result[4])
assert_equal 1, result[5]
assert_equal({ new_node_id.to_s => 1, d.to_s => 2 }, result[6])
@ -1193,8 +1193,8 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 2, result.size
assert_equal -1, result[0]
assert_match /Way #{way.id} is still used/, result[1]
assert_equal(-1, result[0])
assert_match(/Way #{way.id} is still used/, result[1])
new_way = Way.find(way.id)
assert_equal way.version, new_way.version
@ -1225,8 +1225,8 @@ class AmfControllerTest < ActionController::TestCase
assert_equal 5, result.size
assert_equal 0, result[0]
assert_equal "", result[1]
assert_equal -1, result[2]
assert_not_equal -1, result[3]
assert_equal(-1, result[2])
assert_not_equal(-1, result[3])
assert_equal 1, result[4]
new_relation = Relation.find(new_relation_id)
@ -1307,8 +1307,8 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 2, result.size
assert_equal -1, result[0]
assert_match /relation #{relation.id} is used in/, result[1]
assert_equal(-1, result[0])
assert_match(/relation #{relation.id} is used in/, result[1])
new_relation = Relation.find(relation.id)
assert_equal relation.version, new_relation.version
@ -1404,7 +1404,7 @@ class AmfControllerTest < ActionController::TestCase
result = amf_result("/1")
assert_equal 2, result.size
assert_equal -2, result[0]
assert_equal(-2, result[0])
assert_equal "The user doesn't own that changeset", result[1]
cs = Changeset.find(cs_id)

View file

@ -68,8 +68,10 @@ class BrowseControllerTest < ActionController::TestCase
end
def test_read_changeset
user = create(:user)
private_changeset = create(:changeset, :user => create(:user, :data_public => false))
changeset = create(:changeset)
changeset = create(:changeset, :user => user)
create(:changeset, :user => user)
browse_check "changeset", private_changeset.id, "browse/changeset"
browse_check "changeset", changeset.id, "browse/changeset"
end

View file

@ -63,7 +63,7 @@ class ChangesetControllerTest < ActionController::TestCase
)
assert_routing(
{ :path => "/user/name/history", :method => :get },
{ :controller => "changeset", :action => "list", :display_name => "name" }
{ :controller => "changeset", :action => "index", :display_name => "name" }
)
assert_routing(
{ :path => "/user/name/history/feed", :method => :get },
@ -71,15 +71,15 @@ class ChangesetControllerTest < ActionController::TestCase
)
assert_routing(
{ :path => "/history/friends", :method => :get },
{ :controller => "changeset", :action => "list", :friends => true, :format => :html }
{ :controller => "changeset", :action => "index", :friends => true, :format => :html }
)
assert_routing(
{ :path => "/history/nearby", :method => :get },
{ :controller => "changeset", :action => "list", :nearby => true, :format => :html }
{ :controller => "changeset", :action => "index", :nearby => true, :format => :html }
)
assert_routing(
{ :path => "/history", :method => :get },
{ :controller => "changeset", :action => "list" }
{ :controller => "changeset", :action => "index" }
)
assert_routing(
{ :path => "/history/feed", :method => :get },
@ -213,7 +213,7 @@ class ChangesetControllerTest < ActionController::TestCase
get :read, :params => { :id => id }
assert_response :not_found, "should get a not found"
rescue ActionController::UrlGenerationError => ex
assert_match /No route matches/, ex.to_s
assert_match(/No route matches/, ex.to_s)
end
end
end
@ -287,7 +287,7 @@ class ChangesetControllerTest < ActionController::TestCase
put :close, :params => { :id => id }
assert_response :unauthorized, "Shouldn't be able close the non-existant changeset #{id}, when not authorized"
rescue ActionController::UrlGenerationError => ex
assert_match /No route matches/, ex.to_s
assert_match(/No route matches/, ex.to_s)
end
end
@ -298,7 +298,7 @@ class ChangesetControllerTest < ActionController::TestCase
put :close, :params => { :id => id }
assert_response :not_found, "The changeset #{id} doesn't exist, so can't be closed"
rescue ActionController::UrlGenerationError => ex
assert_match /No route matches/, ex.to_s
assert_match(/No route matches/, ex.to_s)
end
end
end
@ -469,9 +469,9 @@ CHANGESET
new_rel_id = doc.find("//diffResult/relation").first["new_id"].to_i
# check the old IDs are all present and negative one
assert_equal -1, doc.find("//diffResult/node").first["old_id"].to_i
assert_equal -1, doc.find("//diffResult/way").first["old_id"].to_i
assert_equal -1, doc.find("//diffResult/relation").first["old_id"].to_i
assert_equal(-1, doc.find("//diffResult/node").first["old_id"].to_i)
assert_equal(-1, doc.find("//diffResult/way").first["old_id"].to_i)
assert_equal(-1, doc.find("//diffResult/relation").first["old_id"].to_i)
# check the versions are present and equal one
assert_equal 1, doc.find("//diffResult/node").first["new_version"].to_i
@ -1882,173 +1882,173 @@ CHANGESET
##
# This should display the last 20 changesets closed
def test_list
get :list, :params => { :format => "html" }
def test_index
get :index, :params => { :format => "html" }
assert_response :success
assert_template "history"
assert_template :layout => "map"
assert_select "h2", :text => "Changesets", :count => 1
get :list, :params => { :format => "html", :list => "1" }, :xhr => true
get :index, :params => { :format => "html", :list => "1" }, :xhr => true
assert_response :success
assert_template "list"
assert_template "index"
check_list_result(Changeset.all)
check_index_result(Changeset.all)
end
##
# This should display the last 20 changesets closed
def test_list_xhr
get :list, :params => { :format => "html" }, :xhr => true
def test_index_xhr
get :index, :params => { :format => "html" }, :xhr => true
assert_response :success
assert_template "history"
assert_template :layout => "xhr"
assert_select "h2", :text => "Changesets", :count => 1
get :list, :params => { :format => "html", :list => "1" }, :xhr => true
get :index, :params => { :format => "html", :list => "1" }, :xhr => true
assert_response :success
assert_template "list"
assert_template "index"
check_list_result(Changeset.all)
check_index_result(Changeset.all)
end
##
# This should display the last 20 changesets closed in a specific area
def test_list_bbox
get :list, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5" }
def test_index_bbox
get :index, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5" }
assert_response :success
assert_template "history"
assert_template :layout => "map"
assert_select "h2", :text => "Changesets", :count => 1
get :list, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5", :list => "1" }, :xhr => true
get :index, :params => { :format => "html", :bbox => "4.5,4.5,5.5,5.5", :list => "1" }, :xhr => true
assert_response :success
assert_template "list"
assert_template "index"
check_list_result(Changeset.where("min_lon < 55000000 and max_lon > 45000000 and min_lat < 55000000 and max_lat > 45000000"))
check_index_result(Changeset.where("min_lon < 55000000 and max_lon > 45000000 and min_lat < 55000000 and max_lat > 45000000"))
end
##
# Checks the display of the user changesets listing
def test_list_user
def test_index_user
user = create(:user)
create(:changeset, :user => user)
create(:changeset, :closed, :user => user)
get :list, :params => { :format => "html", :display_name => user.display_name }
get :index, :params => { :format => "html", :display_name => user.display_name }
assert_response :success
assert_template "history"
get :list, :params => { :format => "html", :display_name => user.display_name, :list => "1" }, :xhr => true
get :index, :params => { :format => "html", :display_name => user.display_name, :list => "1" }, :xhr => true
assert_response :success
assert_template "list"
assert_template "index"
check_list_result(user.changesets)
check_index_result(user.changesets)
end
##
# Checks the display of the user changesets listing for a private user
def test_list_private_user
def test_index_private_user
private_user = create(:user, :data_public => false)
create(:changeset, :user => private_user)
create(:changeset, :closed, :user => private_user)
get :list, :params => { :format => "html", :display_name => private_user.display_name }
get :index, :params => { :format => "html", :display_name => private_user.display_name }
assert_response :success
assert_template "history"
get :list, :params => { :format => "html", :display_name => private_user.display_name, :list => "1" }, :xhr => true
get :index, :params => { :format => "html", :display_name => private_user.display_name, :list => "1" }, :xhr => true
assert_response :success
assert_template "list"
assert_template "index"
check_list_result(Changeset.none)
check_index_result(Changeset.none)
end
##
# Check the not found of the list user changesets
def test_list_user_not_found
get :list, :params => { :format => "html", :display_name => "Some random user" }
# Check the not found of the index user changesets
def test_index_user_not_found
get :index, :params => { :format => "html", :display_name => "Some random user" }
assert_response :not_found
assert_template "user/no_such_user"
get :list, :params => { :format => "html", :display_name => "Some random user", :list => "1" }, :xhr => true
get :index, :params => { :format => "html", :display_name => "Some random user", :list => "1" }, :xhr => true
assert_response :not_found
assert_template "user/no_such_user"
end
##
# Checks the display of the friends changesets listing
def test_list_friends
def test_index_friends
private_user = create(:user, :data_public => true)
friend = create(:friend, :befriender => private_user)
create(:changeset, :user => friend.befriendee)
get :list, :params => { :friends => true }
get :index, :params => { :friends => true }
assert_response :redirect
assert_redirected_to :controller => :user, :action => :login, :referer => friend_changesets_path
session[:user] = private_user.id
get :list, :params => { :friends => true }
get :index, :params => { :friends => true }
assert_response :success
assert_template "history"
get :list, :params => { :friends => true, :list => "1" }, :xhr => true
get :index, :params => { :friends => true, :list => "1" }, :xhr => true
assert_response :success
assert_template "list"
assert_template "index"
check_list_result(Changeset.where(:user => private_user.friend_users.identifiable))
check_index_result(Changeset.where(:user => private_user.friend_users.identifiable))
end
##
# Checks the display of the nearby user changesets listing
def test_list_nearby
def test_index_nearby
private_user = create(:user, :data_public => false, :home_lat => 51.1, :home_lon => 1.0)
user = create(:user, :home_lat => 51.0, :home_lon => 1.0)
create(:changeset, :user => user)
get :list, :params => { :nearby => true }
get :index, :params => { :nearby => true }
assert_response :redirect
assert_redirected_to :controller => :user, :action => :login, :referer => nearby_changesets_path
session[:user] = private_user.id
get :list, :params => { :nearby => true }
get :index, :params => { :nearby => true }
assert_response :success
assert_template "history"
get :list, :params => { :nearby => true, :list => "1" }, :xhr => true
get :index, :params => { :nearby => true, :list => "1" }, :xhr => true
assert_response :success
assert_template "list"
assert_template "index"
check_list_result(Changeset.where(:user => user.nearby))
check_index_result(Changeset.where(:user => user.nearby))
end
##
# Check that we can't request later pages of the changesets list
def test_list_max_id
get :list, :params => { :format => "html", :max_id => 4 }, :xhr => true
# Check that we can't request later pages of the changesets index
def test_index_max_id
get :index, :params => { :format => "html", :max_id => 4 }, :xhr => true
assert_response :success
assert_template "history"
assert_template :layout => "xhr"
assert_select "h2", :text => "Changesets", :count => 1
get :list, :params => { :format => "html", :list => "1", :max_id => 4 }, :xhr => true
get :index, :params => { :format => "html", :list => "1", :max_id => 4 }, :xhr => true
assert_response :success
assert_template "list"
assert_template "index"
check_list_result(Changeset.where("id <= 4"))
check_index_result(Changeset.where("id <= 4"))
end
##
# Check that a list with a next page link works
def test_list_more
def test_index_more
create_list(:changeset, 50)
get :list, :params => { :format => "html" }
get :index, :params => { :format => "html" }
assert_response :success
get :list, :params => { :format => "html" }, :xhr => true
get :index, :params => { :format => "html" }, :xhr => true
assert_response :success
end
@ -2063,7 +2063,7 @@ CHANGESET
get :feed, :params => { :format => :atom }
assert_response :success
assert_template "list"
assert_template "index"
assert_equal "application/atom+xml", response.content_type
check_feed_result([changeset, closed_changeset])
@ -2081,7 +2081,7 @@ CHANGESET
get :feed, :params => { :format => :atom, :bbox => "4.5,4.5,5.5,5.5" }
assert_response :success
assert_template "list"
assert_template "index"
assert_equal "application/atom+xml", response.content_type
check_feed_result([changeset, closed_changeset])
@ -2099,7 +2099,7 @@ CHANGESET
get :feed, :params => { :format => :atom, :display_name => user.display_name }
assert_response :success
assert_template "list"
assert_template "index"
assert_equal "application/atom+xml", response.content_type
check_feed_result(changesets)
@ -2499,8 +2499,8 @@ CHANGESET
end
##
# check the result of a list
def check_list_result(changesets)
# check the result of a index
def check_index_result(changesets)
changesets = changesets.where("num_changes > 0")
.order(:created_at => :desc)
.limit(20)

View file

@ -16,23 +16,23 @@ class DiaryEntryControllerTest < ActionController::TestCase
def test_routes
assert_routing(
{ :path => "/diary", :method => :get },
{ :controller => "diary_entry", :action => "list" }
{ :controller => "diary_entry", :action => "index" }
)
assert_routing(
{ :path => "/diary/language", :method => :get },
{ :controller => "diary_entry", :action => "list", :language => "language" }
{ :controller => "diary_entry", :action => "index", :language => "language" }
)
assert_routing(
{ :path => "/user/username/diary", :method => :get },
{ :controller => "diary_entry", :action => "list", :display_name => "username" }
{ :controller => "diary_entry", :action => "index", :display_name => "username" }
)
assert_routing(
{ :path => "/diary/friends", :method => :get },
{ :controller => "diary_entry", :action => "list", :friends => true }
{ :controller => "diary_entry", :action => "index", :friends => true }
)
assert_routing(
{ :path => "/diary/nearby", :method => :get },
{ :controller => "diary_entry", :action => "list", :nearby => true }
{ :controller => "diary_entry", :action => "index", :nearby => true }
)
assert_routing(
@ -67,7 +67,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
)
assert_routing(
{ :path => "/user/username/diary/1", :method => :get },
{ :controller => "diary_entry", :action => "view", :display_name => "username", :id => "1" }
{ :controller => "diary_entry", :action => "show", :display_name => "username", :id => "1" }
)
assert_routing(
{ :path => "/user/username/diary/1/edit", :method => :get },
@ -170,7 +170,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
:session => { :user => user.id }
end
assert_response :redirect
assert_redirected_to :action => :list, :display_name => user.display_name
assert_redirected_to :action => :index, :display_name => user.display_name
entry = DiaryEntry.order(:id).last
assert_equal user.id, entry.user_id
assert_equal "New Title", entry.title
@ -198,7 +198,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
:session => { :user => user.id }
end
assert_response :redirect
assert_redirected_to :action => :list, :display_name => user.display_name
assert_redirected_to :action => :index, :display_name => user.display_name
entry = DiaryEntry.order(:id).last
assert_equal user.id, entry.user_id
assert_equal "New Title", entry.title
@ -227,7 +227,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
:session => { :user => user.id }
end
assert_response :redirect
assert_redirected_to :action => :list, :display_name => user.display_name
assert_redirected_to :action => :index, :display_name => user.display_name
entry = DiaryEntry.order(:id).last
assert_equal user.id, entry.user_id
assert_equal spammy_title, entry.title
@ -236,7 +236,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
assert_equal "suspended", User.find(user.id).status
# Follow the redirect
get :list,
get :index,
:params => { :display_name => user.display_name },
:session => { :user => user }
assert_response :redirect
@ -265,13 +265,13 @@ class DiaryEntryControllerTest < ActionController::TestCase
assert_select "h2", :text => "No entry with the id: 9999", :count => 1
end
# Verify that you get redirected to view if you are not the user
# Verify that you get redirected to show if you are not the user
# that created the entry
get :edit,
:params => { :display_name => entry.user.display_name, :id => entry.id },
:session => { :user => other_user }
assert_response :redirect
assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
# Now pass the id, and check that you can edit it, when using the same
# user as the person who created the entry
@ -309,14 +309,14 @@ class DiaryEntryControllerTest < ActionController::TestCase
:longitude => new_longitude, :language_code => new_language_code } },
:session => { :user => entry.user.id }
assert_response :redirect
assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
# Now check that the new data is rendered, when logged in
get :view,
get :show,
:params => { :display_name => entry.user.display_name, :id => entry.id },
:session => { :user => entry.user }
assert_response :success
assert_template "diary_entry/view"
assert_template "diary_entry/show"
assert_select "title", :text => /Users' diaries | /, :count => 1
assert_select "div.content-heading", :count => 1 do
assert_select "h2", :text => /#{entry.user.display_name}'s diary/, :count => 1
@ -333,11 +333,11 @@ class DiaryEntryControllerTest < ActionController::TestCase
end
# and when not logged in as the user who wrote the entry
get :view,
get :show,
:params => { :display_name => entry.user.display_name, :id => entry.id },
:session => { :user => create(:user) }
assert_response :success
assert_template "diary_entry/view"
assert_template "diary_entry/show"
assert_select "title", :text => /Users' diaries | /, :count => 1
assert_select "div.content-heading", :count => 1 do
assert_select "h2", :text => /#{entry.user.display_name}'s diary/, :count => 1
@ -397,7 +397,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
end
end
assert_response :success
assert_template :view
assert_template :show
# Now try again with the right id
assert_difference "ActionMailer::Base.deliveries.size", entry.subscribers.count do
@ -410,20 +410,20 @@ class DiaryEntryControllerTest < ActionController::TestCase
end
end
assert_response :redirect
assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
email = ActionMailer::Base.deliveries.first
assert_equal [user.email], email.to
assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
assert_match /New comment/, email.text_part.decoded
assert_match /New comment/, email.html_part.decoded
assert_match(/New comment/, email.text_part.decoded)
assert_match(/New comment/, email.html_part.decoded)
ActionMailer::Base.deliveries.clear
comment = DiaryComment.order(:id).last
assert_equal entry.id, comment.diary_entry_id
assert_equal other_user.id, comment.user_id
assert_equal "New comment", comment.body
# Now view the diary entry, and check the new comment is present
get :view,
# Now show the diary entry, and check the new comment is present
get :show,
:params => { :display_name => entry.user.display_name, :id => entry.id }
assert_response :success
assert_select ".diary-comment", :count => 1 do
@ -456,7 +456,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
end
end
assert_response :redirect
assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
email = ActionMailer::Base.deliveries.first
assert_equal [user.email], email.to
assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
@ -470,30 +470,30 @@ class DiaryEntryControllerTest < ActionController::TestCase
assert_equal "suspended", User.find(other_user.id).status
# Follow the redirect
get :list,
get :index,
:params => { :display_name => user.display_name },
:session => { :user => other_user }
assert_response :redirect
assert_redirected_to :controller => :user, :action => :suspended
# Now view the diary entry, and check the new comment is not present
get :view,
# Now show the diary entry, and check the new comment is not present
get :show,
:params => { :display_name => entry.user.display_name, :id => entry.id }
assert_response :success
assert_select ".diary-comment", :count => 0
end
def test_list_all
def test_index_all
diary_entry = create(:diary_entry)
geo_entry = create(:diary_entry, :latitude => 51.50763, :longitude => -0.10781)
public_entry = create(:diary_entry, :user => create(:user))
# Try a list of all diary entries
get :list
check_diary_list diary_entry, geo_entry, public_entry
get :index
check_diary_index diary_entry, geo_entry, public_entry
end
def test_list_user
def test_index_user
user = create(:user)
other_user = create(:user)
@ -502,16 +502,16 @@ class DiaryEntryControllerTest < ActionController::TestCase
_other_entry = create(:diary_entry, :user => other_user)
# Try a list of diary entries for a valid user
get :list, :params => { :display_name => user.display_name }
check_diary_list diary_entry, geo_entry
get :index, :params => { :display_name => user.display_name }
check_diary_index diary_entry, geo_entry
# Try a list of diary entries for an invalid user
get :list, :params => { :display_name => "No Such User" }
get :index, :params => { :display_name => "No Such User" }
assert_response :not_found
assert_template "user/no_such_user"
end
def test_list_friends
def test_index_friends
user = create(:user)
other_user = create(:user)
friend = create(:friend, :befriender => user)
@ -519,36 +519,36 @@ class DiaryEntryControllerTest < ActionController::TestCase
_other_entry = create(:diary_entry, :user => other_user)
# Try a list of diary entries for your friends when not logged in
get :list, :params => { :friends => true }
get :index, :params => { :friends => true }
assert_response :redirect
assert_redirected_to :controller => :user, :action => :login, :referer => "/diary/friends"
# Try a list of diary entries for your friends when logged in
get :list, :params => { :friends => true }, :session => { :user => user }
check_diary_list diary_entry
get :list, :params => { :friends => true }, :session => { :user => other_user }
check_diary_list
get :index, :params => { :friends => true }, :session => { :user => user }
check_diary_index diary_entry
get :index, :params => { :friends => true }, :session => { :user => other_user }
check_diary_index
end
def test_list_nearby
def test_index_nearby
user = create(:user, :home_lat => 12, :home_lon => 12)
nearby_user = create(:user, :home_lat => 11.9, :home_lon => 12.1)
diary_entry = create(:diary_entry, :user => user)
# Try a list of diary entries for nearby users when not logged in
get :list, :params => { :nearby => true }
get :index, :params => { :nearby => true }
assert_response :redirect
assert_redirected_to :controller => :user, :action => :login, :referer => "/diary/nearby"
# Try a list of diary entries for nearby users when logged in
get :list, :params => { :nearby => true }, :session => { :user => nearby_user }
check_diary_list diary_entry
get :list, :params => { :nearby => true }, :session => { :user => user }
check_diary_list
get :index, :params => { :nearby => true }, :session => { :user => nearby_user }
check_diary_index diary_entry
get :index, :params => { :nearby => true }, :session => { :user => user }
check_diary_index
end
def test_list_language
def test_index_language
create(:language, :code => "de")
create(:language, :code => "sl")
diary_entry_en = create(:diary_entry, :language_code => "en")
@ -556,29 +556,29 @@ class DiaryEntryControllerTest < ActionController::TestCase
diary_entry_de = create(:diary_entry, :language_code => "de")
# Try a list of diary entries in english
get :list, :params => { :language => "en" }
check_diary_list diary_entry_en, diary_entry_en2
get :index, :params => { :language => "en" }
check_diary_index diary_entry_en, diary_entry_en2
# Try a list of diary entries in german
get :list, :params => { :language => "de" }
check_diary_list diary_entry_de
get :index, :params => { :language => "de" }
check_diary_index diary_entry_de
# Try a list of diary entries in slovenian
get :list, :params => { :language => "sl" }
check_diary_list
get :index, :params => { :language => "sl" }
check_diary_index
end
def test_list_paged
def test_index_paged
# Create several pages worth of diary entries
create_list(:diary_entry, 50)
# Try and get the list
get :list
# Try and get the index
get :index
assert_response :success
assert_select "div.diary_post", :count => 20
# Try and get the second page
get :list, :params => { :page => 2 }
get :index, :params => { :page => 2 }
assert_response :success
assert_select "div.diary_post", :count => 20
end
@ -658,34 +658,34 @@ class DiaryEntryControllerTest < ActionController::TestCase
assert_match "<title>&lt;script&gt;</title>", response.body
end
def test_view
def test_show
user = create(:user)
suspended_user = create(:user, :suspended)
deleted_user = create(:user, :deleted)
# Try a normal entry that should work
diary_entry = create(:diary_entry, :user => user)
get :view, :params => { :display_name => user.display_name, :id => diary_entry.id }
get :show, :params => { :display_name => user.display_name, :id => diary_entry.id }
assert_response :success
assert_template :view
assert_template :show
# Try a deleted entry
diary_entry_deleted = create(:diary_entry, :user => user, :visible => false)
get :view, :params => { :display_name => user.display_name, :id => diary_entry_deleted.id }
get :show, :params => { :display_name => user.display_name, :id => diary_entry_deleted.id }
assert_response :not_found
# Try an entry by a suspended user
diary_entry_suspended = create(:diary_entry, :user => suspended_user)
get :view, :params => { :display_name => suspended_user.display_name, :id => diary_entry_suspended.id }
get :show, :params => { :display_name => suspended_user.display_name, :id => diary_entry_suspended.id }
assert_response :not_found
# Try an entry by a deleted user
diary_entry_deleted = create(:diary_entry, :user => deleted_user)
get :view, :params => { :display_name => deleted_user.display_name, :id => diary_entry_deleted.id }
get :show, :params => { :display_name => deleted_user.display_name, :id => diary_entry_deleted.id }
assert_response :not_found
end
def test_view_hidden_comments
def test_show_hidden_comments
# Get a diary entry that has hidden comments
user = create(:user)
diary_entry = create(:diary_entry, :user => user)
@ -694,9 +694,9 @@ class DiaryEntryControllerTest < ActionController::TestCase
deleted_user_comment = create(:diary_comment, :diary_entry => diary_entry, :user => create(:user, :deleted))
hidden_comment = create(:diary_comment, :diary_entry => diary_entry, :visible => false)
get :view, :params => { :display_name => user.display_name, :id => diary_entry.id }
get :show, :params => { :display_name => user.display_name, :id => diary_entry.id }
assert_response :success
assert_template :view
assert_template :show
assert_select "div.comments" do
assert_select "p#comment#{visible_comment.id}", :count => 1
assert_select "p#comment#{suspended_user_comment.id}", :count => 0
@ -720,7 +720,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
:params => { :display_name => user.display_name, :id => diary_entry.id },
:session => { :user => user }
assert_response :redirect
assert_redirected_to :action => :view, :display_name => user.display_name, :id => diary_entry.id
assert_redirected_to :action => :show, :display_name => user.display_name, :id => diary_entry.id
assert_equal true, DiaryEntry.find(diary_entry.id).visible
# Finally try as an administrator
@ -728,7 +728,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
:params => { :display_name => user.display_name, :id => diary_entry.id },
:session => { :user => create(:administrator_user) }
assert_response :redirect
assert_redirected_to :action => :list, :display_name => user.display_name
assert_redirected_to :action => :index, :display_name => user.display_name
assert_equal false, DiaryEntry.find(diary_entry.id).visible
end
@ -748,7 +748,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
:params => { :display_name => user.display_name, :id => diary_entry.id, :comment => diary_comment.id },
:session => { :user => user }
assert_response :redirect
assert_redirected_to :action => :view, :display_name => user.display_name, :id => diary_entry.id
assert_redirected_to :action => :show, :display_name => user.display_name, :id => diary_entry.id
assert_equal true, DiaryComment.find(diary_comment.id).visible
# Finally try as an administrator
@ -756,7 +756,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
:params => { :display_name => user.display_name, :id => diary_entry.id, :comment => diary_comment.id },
:session => { :user => administrator_user }
assert_response :redirect
assert_redirected_to :action => :view, :display_name => user.display_name, :id => diary_entry.id
assert_redirected_to :action => :show, :display_name => user.display_name, :id => diary_entry.id
assert_equal false, DiaryComment.find(diary_comment.id).visible
end
@ -881,9 +881,9 @@ class DiaryEntryControllerTest < ActionController::TestCase
private
def check_diary_list(*entries)
def check_diary_index(*entries)
assert_response :success
assert_template "list"
assert_template "index"
assert_no_missing_translations
assert_select "div.diary_post", entries.count

View file

@ -180,8 +180,8 @@ class MessagesControllerTest < ActionController::TestCase
e = ActionMailer::Base.deliveries.first
assert_equal [recipient_user.email], e.to
assert_equal "[OpenStreetMap] Test Message", e.subject
assert_match /Test message body/, e.text_part.decoded
assert_match /Test message body/, e.html_part.decoded
assert_match(/Test message body/, e.text_part.decoded)
assert_match(/Test message body/, e.html_part.decoded)
assert_match %r{#{SERVER_URL}/messages/[0-9]+}, e.text_part.decoded
ActionMailer::Base.deliveries.clear
m = Message.last

View file

@ -161,7 +161,7 @@ class OldNodeControllerTest < ActionController::TestCase
get :version, :params => { :id => id, :version => version }
assert_response :not_found
rescue ActionController::UrlGenerationError => ex
assert_match /No route matches/, ex.to_s
assert_match(/No route matches/, ex.to_s)
end
##

View file

@ -112,7 +112,7 @@ class RedactionsControllerTest < ActionController::TestCase
delete :destroy, :params => { :id => redaction.id }
assert_response :redirect
assert_redirected_to(redaction_path(redaction))
assert_match /^Redaction is not empty/, flash[:error]
assert_match(/^Redaction is not empty/, flash[:error])
end
def test_delete_non_moderator

View file

@ -29,7 +29,7 @@ class ReportsControllerTest < ActionController::TestCase
}
end
assert_response :redirect
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
end
def test_new_report_with_incomplete_details
@ -55,7 +55,7 @@ class ReportsControllerTest < ActionController::TestCase
}
end
assert_response :redirect
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
issue = Issue.last
@ -103,7 +103,7 @@ class ReportsControllerTest < ActionController::TestCase
}
end
assert_response :redirect
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
issue = Issue.last

View file

@ -26,19 +26,19 @@ class SwfControllerTest < ActionController::TestCase
get :trackpoints, :params => { :xmin => -1, :xmax => 1, :ymin => 51, :ymax => 52, :baselong => 0, :basey => 0, :masterscale => 1 }
assert_response :success
assert_equal "application/x-shockwave-flash", response.content_type
assert_match /^FWS/, response.body
assert_match(/^FWS/, response.body)
assert_equal 80, response.body.length
get :trackpoints, :params => { :xmin => -1, :xmax => 1, :ymin => 51, :ymax => 52, :baselong => 0, :basey => 0, :masterscale => 1, :token => other_user.tokens.create.token }
assert_response :success
assert_equal "application/x-shockwave-flash", response.content_type
assert_match /^FWS/, response.body
assert_match(/^FWS/, response.body)
assert_equal 67, response.body.length
get :trackpoints, :params => { :xmin => -1, :xmax => 1, :ymin => 51, :ymax => 52, :baselong => 0, :basey => 0, :masterscale => 1, :token => user.tokens.create.token }
assert_response :success
assert_equal "application/x-shockwave-flash", response.content_type
assert_match /^FWS/, response.body
assert_match(/^FWS/, response.body)
assert_equal 74, response.body.length
end
end

View file

@ -278,25 +278,59 @@ class TracesControllerTest < ActionController::TestCase
end
end
# Check that the rss loads
# Check the RSS feed
def test_rss
user = create(:user)
# The fourth test below is surpisingly sensitive to timestamp ordering when the timestamps are equal.
trace_a = create(:trace, :visibility => "public", :timestamp => 4.seconds.ago) do |trace|
create(:tracetag, :trace => trace, :tag => "London")
end
trace_b = create(:trace, :visibility => "public", :timestamp => 3.seconds.ago) do |trace|
create(:tracetag, :trace => trace, :tag => "Birmingham")
end
create(:trace, :visibility => "private", :user => user, :timestamp => 2.seconds.ago) do |trace|
create(:tracetag, :trace => trace, :tag => "London")
end
create(:trace, :visibility => "private", :user => user, :timestamp => 1.second.ago) do |trace|
create(:tracetag, :trace => trace, :tag => "Birmingham")
end
# First with the public feed
get :georss, :params => { :format => :rss }
check_trace_feed Trace.visible_to_all
check_trace_feed [trace_b, trace_a]
# Restrict traces to those with a given tag
get :georss, :params => { :tag => "London", :format => :rss }
check_trace_feed Trace.tagged("London").visible_to_all
check_trace_feed [trace_a]
end
# Restrict traces to those for a given user
# Check the RSS feed for a specific user
def test_rss_user
user = create(:user)
second_user = create(:user)
create(:user)
create(:trace)
trace_b = create(:trace, :visibility => "public", :timestamp => 4.seconds.ago, :user => user)
trace_c = create(:trace, :visibility => "public", :timestamp => 3.seconds.ago, :user => user) do |trace|
create(:tracetag, :trace => trace, :tag => "London")
end
create(:trace, :visibility => "private")
# Test a user with no traces
get :georss, :params => { :display_name => second_user.display_name, :format => :rss }
check_trace_feed []
# Test the user with the traces - should see only public ones
get :georss, :params => { :display_name => user.display_name, :format => :rss }
check_trace_feed user.traces.visible_to_all
check_trace_feed [trace_c, trace_b]
# Restrict traces to those for a given user with a tiven tag
get :georss, :params => { :display_name => user.display_name, :tag => "Birmingham", :format => :rss }
check_trace_feed user.traces.tagged("Birmingham").visible_to_all
# Should only see traces with the correct tag when a tag is specified
get :georss, :params => { :display_name => user.display_name, :tag => "London", :format => :rss }
check_trace_feed [trace_c]
# Should no traces if the user does not exist
get :georss, :params => { :display_name => "UnknownUser", :format => :rss }
check_trace_feed []
end
# Test showing a trace
@ -559,7 +593,7 @@ class TracesControllerTest < ActionController::TestCase
post :create, :params => { :trace => { :gpx_file => file, :description => "New Trace", :tagstring => "new,trace", :visibility => "trackable" } }, :session => { :user => user }
assert_response :redirect
assert_redirected_to :action => :index, :display_name => user.display_name
assert_match /file has been uploaded/, flash[:notice]
assert_match(/file has been uploaded/, flash[:notice])
trace = Trace.order(:id => :desc).first
assert_equal "a.gpx", trace.name
assert_equal "New Trace", trace.description
@ -995,11 +1029,11 @@ class TracesControllerTest < ActionController::TestCase
assert_select "description"
assert_select "link"
assert_select "image"
assert_select "item", :count => traces.visible.count do |items|
traces.visible.order("timestamp DESC").zip(items).each do |trace, item|
assert_select "item", :count => traces.length do |items|
traces.zip(items).each do |trace, item|
assert_select item, "title", trace.name
assert_select item, "link", "http://test.host/user/#{trace.user.display_name}/traces/#{trace.id}"
assert_select item, "guid", "http://test.host/user/#{trace.user.display_name}/traces/#{trace.id}"
assert_select item, "link", "http://test.host/user/#{ERB::Util.u(trace.user.display_name)}/traces/#{trace.id}"
assert_select item, "guid", "http://test.host/user/#{ERB::Util.u(trace.user.display_name)}/traces/#{trace.id}"
assert_select item, "description"
# assert_select item, "dc:creator", trace.user.display_name
assert_select item, "pubDate", trace.timestamp.rfc822

View file

@ -182,7 +182,7 @@ class UserBlocksControllerTest < ActionController::TestCase
# Check that the block edit page requires us to login
get :edit, :params => { :id => active_block.id }
assert_redirected_to login_path(:referer => edit_user_block_path(:id => active_block.id))
assert_redirected_to login_path(:referer => edit_user_block_path(active_block))
# Login as a normal user
session[:user] = create(:user).id
@ -306,7 +306,7 @@ class UserBlocksControllerTest < ActionController::TestCase
:user_block_period => "12",
:user_block => { :needs_view => true, :reason => "Vandalism" } }
end
assert_redirected_to edit_user_block_path(:id => active_block.id)
assert_redirected_to edit_user_block_path(active_block)
assert_equal "Only the moderator who created this block can edit it.", flash[:error]
# Login as the correct moderator
@ -318,7 +318,7 @@ class UserBlocksControllerTest < ActionController::TestCase
:params => { :id => active_block.id,
:user_block_period => "99" }
end
assert_redirected_to edit_user_block_path(:id => active_block.id)
assert_redirected_to edit_user_block_path(active_block)
assert_equal "The blocking period must be one of the values selectable in the drop-down list.", flash[:error]
# Check that updating a block works
@ -328,7 +328,7 @@ class UserBlocksControllerTest < ActionController::TestCase
:user_block_period => "12",
:user_block => { :needs_view => true, :reason => "Vandalism" } }
end
assert_redirected_to user_block_path(:id => active_block.id)
assert_redirected_to user_block_path(active_block)
assert_equal "Block updated.", flash[:notice]
b = UserBlock.find(active_block.id)
assert_in_delta Time.now, b.updated_at, 1
@ -378,7 +378,7 @@ class UserBlocksControllerTest < ActionController::TestCase
# Check that revoking a block works
post :revoke, :params => { :id => active_block.id, :confirm => true }
assert_redirected_to user_block_path(:id => active_block.id)
assert_redirected_to user_block_path(active_block)
b = UserBlock.find(active_block.id)
assert_in_delta Time.now, b.ends_at, 1

View file

@ -130,7 +130,7 @@ class UserControllerTest < ActionController::TestCase
assert_routing(
{ :path => "/user/username", :method => :get },
{ :controller => "user", :action => "view", :display_name => "username" }
{ :controller => "user", :action => "show", :display_name => "username" }
)
assert_routing(
@ -170,19 +170,19 @@ class UserControllerTest < ActionController::TestCase
assert_routing(
{ :path => "/users", :method => :get },
{ :controller => "user", :action => "list" }
{ :controller => "user", :action => "index" }
)
assert_routing(
{ :path => "/users", :method => :post },
{ :controller => "user", :action => "list" }
{ :controller => "user", :action => "index" }
)
assert_routing(
{ :path => "/users/status", :method => :get },
{ :controller => "user", :action => "list", :status => "status" }
{ :controller => "user", :action => "index", :status => "status" }
)
assert_routing(
{ :path => "/users/status", :method => :post },
{ :controller => "user", :action => "list", :status => "status" }
{ :controller => "user", :action => "index", :status => "status" }
)
end
@ -245,7 +245,7 @@ class UserControllerTest < ActionController::TestCase
register_email = ActionMailer::Base.deliveries.first
assert_equal register_email.to[0], user.email
assert_match /#{@url}/, register_email.body.to_s
assert_match(/#{@url}/, register_email.body.to_s)
# Check the page
assert_redirected_to :action => "confirm", :display_name => user.display_name
@ -404,7 +404,7 @@ class UserControllerTest < ActionController::TestCase
@request.cookies["_osm_session"] = user.display_name
post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to login_path
assert_match /Confirmed your account/, flash[:notice]
assert_match(/Confirmed your account/, flash[:notice])
end
def test_confirm_success_good_token_no_referer
@ -427,7 +427,7 @@ class UserControllerTest < ActionController::TestCase
@request.cookies["_osm_session"] = user.display_name
post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }, :session => { :token => token }
assert_redirected_to login_path
assert_match /Confirmed your account/, flash[:notice]
assert_match(/Confirmed your account/, flash[:notice])
end
def test_confirm_success_no_token_with_referer
@ -438,7 +438,7 @@ class UserControllerTest < ActionController::TestCase
@request.cookies["_osm_session"] = user.display_name
post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to login_path(:referer => diary_new_path)
assert_match /Confirmed your account/, flash[:notice]
assert_match(/Confirmed your account/, flash[:notice])
end
def test_confirm_success_good_token_with_referer
@ -461,7 +461,7 @@ class UserControllerTest < ActionController::TestCase
@request.cookies["_osm_session"] = user.display_name
post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }, :session => { :token => token }
assert_redirected_to login_path(:referer => diary_new_path)
assert_match /Confirmed your account/, flash[:notice]
assert_match(/Confirmed your account/, flash[:notice])
end
def test_confirm_expired_token
@ -471,7 +471,7 @@ class UserControllerTest < ActionController::TestCase
@request.cookies["_osm_session"] = user.display_name
post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to :action => "confirm"
assert_match /confirmation code has expired/, flash[:error]
assert_match(/confirmation code has expired/, flash[:error])
end
def test_confirm_already_confirmed
@ -481,7 +481,7 @@ class UserControllerTest < ActionController::TestCase
@request.cookies["_osm_session"] = user.display_name
post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to :action => "login"
assert_match /already been confirmed/, flash[:error]
assert_match(/already been confirmed/, flash[:error])
end
def test_confirm_resend_success
@ -494,7 +494,7 @@ class UserControllerTest < ActionController::TestCase
assert_response :redirect
assert_redirected_to login_path
assert_match /sent a new confirmation/, flash[:notice]
assert_match(/sent a new confirmation/, flash[:notice])
email = ActionMailer::Base.deliveries.last
@ -541,7 +541,7 @@ class UserControllerTest < ActionController::TestCase
post :confirm_email, :params => { :confirm_string => confirm_string }
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert_match /Confirmed your change of email address/, flash[:notice]
assert_match(/Confirmed your change of email address/, flash[:notice])
end
def test_confirm_email_already_confirmed
@ -551,14 +551,14 @@ class UserControllerTest < ActionController::TestCase
post :confirm_email, :params => { :confirm_string => confirm_string }
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert_match /already been confirmed/, flash[:error]
assert_match(/already been confirmed/, flash[:error])
end
def test_confirm_email_bad_token
post :confirm_email, :params => { :confirm_string => "XXXXX" }
assert_response :success
assert_template :confirm_email
assert_match /confirmation code has expired or does not exist/, flash[:error]
assert_match(/confirmation code has expired or does not exist/, flash[:error])
end
##
@ -575,7 +575,7 @@ class UserControllerTest < ActionController::TestCase
post :confirm_email, :params => { :confirm_string => confirm_string }
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert_match /Confirmed your change of email address/, flash[:notice]
assert_match(/Confirmed your change of email address/, flash[:notice])
# gravatar use should now be enabled
assert User.find(user.id).image_use_gravatar
end
@ -590,7 +590,7 @@ class UserControllerTest < ActionController::TestCase
post :confirm_email, :params => { :confirm_string => confirm_string }
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert_match /Confirmed your change of email address/, flash[:notice]
assert_match(/Confirmed your change of email address/, flash[:notice])
# gravatar use should now be disabled
assert_not User.find(user.id).image_use_gravatar
end
@ -678,7 +678,7 @@ class UserControllerTest < ActionController::TestCase
end
assert_response :redirect
assert_redirected_to :action => :login
assert_match /^Sorry you lost it/, flash[:notice]
assert_match(/^Sorry you lost it/, flash[:notice])
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
assert_equal user.email, email.to.first
@ -691,7 +691,7 @@ class UserControllerTest < ActionController::TestCase
end
assert_response :redirect
assert_redirected_to :action => :login
assert_match /^Sorry you lost it/, flash[:notice]
assert_match(/^Sorry you lost it/, flash[:notice])
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
assert_equal uppercase_user.email, email.to.first
@ -714,7 +714,7 @@ class UserControllerTest < ActionController::TestCase
end
assert_response :redirect
assert_redirected_to :action => :login
assert_match /^Sorry you lost it/, flash[:notice]
assert_match(/^Sorry you lost it/, flash[:notice])
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
assert_equal third_user.email, email.to.first
@ -727,7 +727,7 @@ class UserControllerTest < ActionController::TestCase
end
assert_response :redirect
assert_redirected_to :action => :login
assert_match /^Sorry you lost it/, flash[:notice]
assert_match(/^Sorry you lost it/, flash[:notice])
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
assert_equal third_user.email, email.to.first
@ -935,14 +935,15 @@ class UserControllerTest < ActionController::TestCase
# Check that the user account page will display and contains some relevant
# information for the user
def test_view
def test_show
# Test a non-existent user
get :view, :params => { :display_name => "unknown" }
get :show, :params => { :display_name => "unknown" }
assert_response :not_found
# Test a normal user
user = create(:user)
get :view, :params => { :display_name => user.display_name }
create(:friend, :befriender => user)
get :show, :params => { :display_name => user.display_name }
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
@ -955,10 +956,13 @@ class UserControllerTest < ActionController::TestCase
assert_select "a[href='/blocks/new/#{ERB::Util.u(user.display_name)}']", 0
end
# Friends shouldn't be visible as we're not logged in
assert_select "div#friends-container", :count => 0
# Test a user who has been blocked
blocked_user = create(:user)
create(:user_block, :user => blocked_user)
get :view, :params => { :display_name => blocked_user.display_name }
get :show, :params => { :display_name => blocked_user.display_name }
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(blocked_user.display_name)}/history']", 1
@ -974,7 +978,7 @@ class UserControllerTest < ActionController::TestCase
# Test a moderator who has applied blocks
moderator_user = create(:moderator_user)
create(:user_block, :creator => moderator_user)
get :view, :params => { :display_name => moderator_user.display_name }
get :show, :params => { :display_name => moderator_user.display_name }
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(moderator_user.display_name)}/history']", 1
@ -991,7 +995,7 @@ class UserControllerTest < ActionController::TestCase
session[:user] = user.id
# Test the normal user
get :view, :params => { :display_name => user.display_name }
get :show, :params => { :display_name => user.display_name }
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
@ -1004,11 +1008,16 @@ class UserControllerTest < ActionController::TestCase
assert_select "a[href='/blocks/new/#{ERB::Util.u(user.display_name)}']", 0
end
# Friends should be visible as we're now logged in
assert_select "div#friends-container" do
assert_select "div.contact-activity", :count => 1
end
# Login as a moderator
session[:user] = create(:moderator_user).id
# Test the normal user
get :view, :params => { :display_name => user.display_name }
get :show, :params => { :display_name => user.display_name }
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
@ -1028,13 +1037,13 @@ class UserControllerTest < ActionController::TestCase
seen_user = create(:user, :terms_seen => true)
not_seen_user = create(:user, :terms_seen => false)
get :view, :params => { :display_name => agreed_user.display_name }
get :show, :params => { :display_name => agreed_user.display_name }
assert_response :success
assert_select "div#userinformation" do
assert_select "p", :count => 0, :text => /Contributor terms/
end
get :view, :params => { :display_name => seen_user.display_name }
get :show, :params => { :display_name => seen_user.display_name }
assert_response :success
# put @response.body
assert_select "div#userinformation" do
@ -1042,7 +1051,7 @@ class UserControllerTest < ActionController::TestCase
assert_select "p", /Declined/
end
get :view, :params => { :display_name => not_seen_user.display_name }
get :show, :params => { :display_name => not_seen_user.display_name }
assert_response :success
assert_select "div#userinformation" do
assert_select "p", :count => 1, :text => /Contributor terms/
@ -1250,8 +1259,8 @@ class UserControllerTest < ActionController::TestCase
assert_difference "ActionMailer::Base.deliveries.size", 1 do
post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
end
assert_redirected_to user_path(:display_name => friend.display_name)
assert_match /is now your friend/, flash[:notice]
assert_redirected_to user_path(friend)
assert_match(/is now your friend/, flash[:notice])
assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
@ -1262,8 +1271,8 @@ class UserControllerTest < ActionController::TestCase
assert_no_difference "ActionMailer::Base.deliveries.size" do
post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
end
assert_redirected_to user_path(:display_name => friend.display_name)
assert_match /You are already friends with/, flash[:warning]
assert_redirected_to user_path(friend)
assert_match(/You are already friends with/, flash[:warning])
assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
end
@ -1290,7 +1299,7 @@ class UserControllerTest < ActionController::TestCase
post :make_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user }
end
assert_redirected_to "/test"
assert_match /is now your friend/, flash[:notice]
assert_match(/is now your friend/, flash[:notice])
assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
@ -1335,14 +1344,14 @@ class UserControllerTest < ActionController::TestCase
# When logged in a POST should remove the friendship
post :remove_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
assert_redirected_to user_path(:display_name => friend.display_name)
assert_match /was removed from your friends/, flash[:notice]
assert_redirected_to user_path(friend)
assert_match(/was removed from your friends/, flash[:notice])
assert_nil Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
# A second POST should report that the friendship does not exist
post :remove_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
assert_redirected_to user_path(:display_name => friend.display_name)
assert_match /is not one of your friends/, flash[:error]
assert_redirected_to user_path(friend)
assert_match(/is not one of your friends/, flash[:error])
assert_nil Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
end
@ -1368,7 +1377,7 @@ class UserControllerTest < ActionController::TestCase
# When logged in a POST should remove the friendship and refer
post :remove_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user }
assert_redirected_to "/test"
assert_match /was removed from your friends/, flash[:notice]
assert_match(/was removed from your friends/, flash[:notice])
assert_nil Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
end
@ -1390,12 +1399,12 @@ class UserControllerTest < ActionController::TestCase
# Now try as a normal user
get :set_status, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => user }
assert_response :redirect
assert_redirected_to :action => :view, :display_name => user.display_name
assert_redirected_to :action => :show, :display_name => user.display_name
# Finally try as an administrator
get :set_status, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => create(:administrator_user) }
assert_response :redirect
assert_redirected_to :action => :view, :display_name => user.display_name
assert_redirected_to :action => :show, :display_name => user.display_name
assert_equal "suspended", User.find(user.id).status
end
@ -1410,12 +1419,12 @@ class UserControllerTest < ActionController::TestCase
# Now try as a normal user
get :delete, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => user }
assert_response :redirect
assert_redirected_to :action => :view, :display_name => user.display_name
assert_redirected_to :action => :show, :display_name => user.display_name
# Finally try as an administrator
get :delete, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => create(:administrator_user) }
assert_response :redirect
assert_redirected_to :action => :view, :display_name => user.display_name
assert_redirected_to :action => :show, :display_name => user.display_name
# Check that the user was deleted properly
user.reload
@ -1431,7 +1440,7 @@ class UserControllerTest < ActionController::TestCase
assert_equal "deleted", user.status
end
def test_list_get
def test_index_get
user = create(:user)
moderator_user = create(:moderator_user)
administrator_user = create(:administrator_user)
@ -1443,21 +1452,21 @@ class UserControllerTest < ActionController::TestCase
assert_equal 7, User.count
# Shouldn't work when not logged in
get :list
get :index
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
session[:user] = user.id
# Shouldn't work when logged in as a normal user
get :list
get :index
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
session[:user] = moderator_user.id
# Shouldn't work when logged in as a moderator
get :list
get :index
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
@ -1465,25 +1474,25 @@ class UserControllerTest < ActionController::TestCase
# Note there is a header row, so all row counts are users + 1
# Should work when logged in as an administrator
get :list
get :index
assert_response :success
assert_template :list
assert_template :index
assert_select "table#user_list tr", :count => 7 + 1
# Should be able to limit by status
get :list, :params => { :status => "suspended" }
get :index, :params => { :status => "suspended" }
assert_response :success
assert_template :list
assert_template :index
assert_select "table#user_list tr", :count => 1 + 1
# Should be able to limit by IP address
get :list, :params => { :ip => "1.2.3.4" }
get :index, :params => { :ip => "1.2.3.4" }
assert_response :success
assert_template :list
assert_template :index
assert_select "table#user_list tr", :count => 1 + 1
end
def test_list_get_paginated
def test_index_get_paginated
1.upto(100).each do |n|
User.create(:display_name => "extra_#{n}",
:email => "extra#{n}@example.com",
@ -1495,29 +1504,29 @@ class UserControllerTest < ActionController::TestCase
# 100 examples, an administrator, and a granter for the admin.
assert_equal 102, User.count
get :list
get :index
assert_response :success
assert_template :list
assert_template :index
assert_select "table#user_list tr", :count => 51
get :list, :params => { :page => 2 }
get :index, :params => { :page => 2 }
assert_response :success
assert_template :list
assert_template :index
assert_select "table#user_list tr", :count => 51
get :list, :params => { :page => 3 }
get :index, :params => { :page => 3 }
assert_response :success
assert_template :list
assert_template :index
assert_select "table#user_list tr", :count => 3
end
def test_list_post_confirm
def test_index_post_confirm
inactive_user = create(:user, :pending)
suspended_user = create(:user, :suspended)
# Shouldn't work when not logged in
assert_no_difference "User.active.count" do
post :list, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
@ -1528,7 +1537,7 @@ class UserControllerTest < ActionController::TestCase
# Shouldn't work when logged in as a normal user
assert_no_difference "User.active.count" do
post :list, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
@ -1539,7 +1548,7 @@ class UserControllerTest < ActionController::TestCase
# Shouldn't work when logged in as a moderator
assert_no_difference "User.active.count" do
post :list, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
@ -1550,21 +1559,21 @@ class UserControllerTest < ActionController::TestCase
# Should work when logged in as an administrator
assert_difference "User.active.count", 2 do
post :list, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :list
assert_redirected_to :action => :index
assert_equal "confirmed", inactive_user.reload.status
assert_equal "confirmed", suspended_user.reload.status
end
def test_list_post_hide
def test_index_post_hide
normal_user = create(:user)
confirmed_user = create(:user, :confirmed)
# Shouldn't work when not logged in
assert_no_difference "User.active.count" do
post :list, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
@ -1575,7 +1584,7 @@ class UserControllerTest < ActionController::TestCase
# Shouldn't work when logged in as a normal user
assert_no_difference "User.active.count" do
post :list, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
@ -1586,7 +1595,7 @@ class UserControllerTest < ActionController::TestCase
# Shouldn't work when logged in as a moderator
assert_no_difference "User.active.count" do
post :list, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
@ -1597,10 +1606,10 @@ class UserControllerTest < ActionController::TestCase
# Should work when logged in as an administrator
assert_difference "User.active.count", -2 do
post :list, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :list
assert_redirected_to :action => :index
assert_equal "deleted", normal_user.reload.status
assert_equal "deleted", confirmed_user.reload.status
end

View file

@ -31,7 +31,7 @@ class UserRolesControllerTest < ActionController::TestCase
# Granting should still fail
post :grant, :params => { :display_name => target_user.display_name, :role => "moderator" }
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
assert_equal "Only administrators can perform user role management, and you are not an administrator.", flash[:error]
# Login as an administrator
@ -50,20 +50,20 @@ class UserRolesControllerTest < ActionController::TestCase
assert_no_difference "UserRole.count" do
post :grant, :params => { :display_name => super_user.display_name, :role => role }
end
assert_redirected_to user_path(super_user.display_name)
assert_redirected_to user_path(super_user)
assert_equal "The user already has role #{role}.", flash[:error]
# Granting a role to a user that doesn't have it should work...
assert_difference "UserRole.count", 1 do
post :grant, :params => { :display_name => target_user.display_name, :role => role }
end
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
# ...but trying a second time should fail
assert_no_difference "UserRole.count" do
post :grant, :params => { :display_name => target_user.display_name, :role => role }
end
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
assert_equal "The user already has role #{role}.", flash[:error]
end
@ -71,7 +71,7 @@ class UserRolesControllerTest < ActionController::TestCase
assert_difference "UserRole.count", 0 do
post :grant, :params => { :display_name => target_user.display_name, :role => "no_such_role" }
end
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
assert_equal "The string `no_such_role' is not a valid role.", flash[:error]
end
@ -92,7 +92,7 @@ class UserRolesControllerTest < ActionController::TestCase
# Revoking should still fail
post :revoke, :params => { :display_name => target_user.display_name, :role => "moderator" }
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
assert_equal "Only administrators can perform user role management, and you are not an administrator.", flash[:error]
# Login as an administrator
@ -111,20 +111,20 @@ class UserRolesControllerTest < ActionController::TestCase
assert_no_difference "UserRole.count" do
post :revoke, :params => { :display_name => target_user.display_name, :role => role }
end
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
assert_equal "The user does not have role #{role}.", flash[:error]
# Removing a role from a user that has it should work...
assert_difference "UserRole.count", -1 do
post :revoke, :params => { :display_name => super_user.display_name, :role => role }
end
assert_redirected_to user_path(super_user.display_name)
assert_redirected_to user_path(super_user)
# ...but trying a second time should fail
assert_no_difference "UserRole.count" do
post :revoke, :params => { :display_name => super_user.display_name, :role => role }
end
assert_redirected_to user_path(super_user.display_name)
assert_redirected_to user_path(super_user)
assert_equal "The user does not have role #{role}.", flash[:error]
end
@ -132,12 +132,12 @@ class UserRolesControllerTest < ActionController::TestCase
assert_difference "UserRole.count", 0 do
post :revoke, :params => { :display_name => target_user.display_name, :role => "no_such_role" }
end
assert_redirected_to user_path(target_user.display_name)
assert_redirected_to user_path(target_user)
assert_equal "The string `no_such_role' is not a valid role.", flash[:error]
# Revoking administrator role from current user should fail
post :revoke, :params => { :display_name => administrator_user.display_name, :role => "administrator" }
assert_redirected_to user_path(administrator_user.display_name)
assert_redirected_to user_path(administrator_user)
assert_equal "Cannot revoke administrator role from current user.", flash[:error]
end
end