##
# test the query functionality of changesets
def test_query
+ private_user = create(:user, :data_public => false)
+ private_user_changeset = create(:changeset, :user => private_user)
+ private_user_closed_changeset = create(:changeset, :closed, :user => private_user)
+ user = create(:user)
+ changeset = create(:changeset, :user => user)
+ closed_changeset = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 1, 1, 0, 0, 0), :closed_at => Time.utc(2008, 1, 2, 0, 0, 0))
+
get :query, :bbox => "-10,-10, 10, 10"
assert_response :success, "can't get changesets in bbox"
assert_changesets [1, 4, 6]
assert_response :not_found
# can't get changesets of user 1 without authenticating
- get :query, :user => users(:normal_user).id
+ get :query, :user => private_user.id
assert_response :not_found, "shouldn't be able to get changesets by non-public user (ID)"
- get :query, :display_name => users(:normal_user).display_name
+ get :query, :display_name => private_user.display_name
assert_response :not_found, "shouldn't be able to get changesets by non-public user (name)"
# but this should work
- basic_authorization "test@openstreetmap.org", "test"
- get :query, :user => users(:normal_user).id
+ basic_authorization private_user.email, "test"
+ get :query, :user => private_user.id
assert_response :success, "can't get changesets by user ID"
- assert_changesets [1, 3, 6, 8]
+ assert_changesets [private_user_changeset.id, private_user_closed_changeset.id]
- get :query, :display_name => users(:normal_user).display_name
+ get :query, :display_name => private_user.display_name
assert_response :success, "can't get changesets by user name"
- assert_changesets [1, 3, 6, 8]
+ assert_changesets [private_user_changeset.id, private_user_closed_changeset.id]
# check that the correct error is given when we provide both UID and name
- get :query, :user => users(:normal_user).id, :display_name => users(:normal_user).display_name
+ get :query, :user => private_user.id, :display_name => private_user.display_name
assert_response :bad_request, "should be a bad request to have both ID and name specified"
- get :query, :user => users(:normal_user).id, :open => true
+ get :query, :user => private_user.id, :open => true
assert_response :success, "can't get changesets by user and open"
- assert_changesets [1]
+ assert_changesets [private_user_changeset.id]
get :query, :time => "2007-12-31"
assert_response :success, "can't get changesets by time-since"
- assert_changesets [1, 2, 4, 5, 6]
+ assert_changesets [1, 2, 4, 5, 6, private_user_changeset.id, private_user_closed_changeset.id, changeset.id, closed_changeset.id]
get :query, :time => "2008-01-01T12:34Z"
assert_response :success, "can't get changesets by time-since with hour"
- assert_changesets [1, 2, 4, 5, 6]
+ assert_changesets [1, 2, 4, 5, 6, private_user_changeset.id, private_user_closed_changeset.id, changeset.id, closed_changeset.id]
- get :query, :time => "2007-12-31T23:59Z,2008-01-01T00:01Z"
+ get :query, :time => "2007-12-31T23:59Z,2008-01-02T00:01Z"
assert_response :success, "can't get changesets by time-range"
- assert_changesets [1, 5, 6]
+ assert_changesets [1, 5, 6, closed_changeset.id]
get :query, :open => "true"
assert_response :success, "can't get changesets by open-ness"
- assert_changesets [1, 2, 4]
+ assert_changesets [1, 2, 4, private_user_changeset.id, changeset.id]
get :query, :closed => "true"
assert_response :success, "can't get changesets by closed-ness"
- assert_changesets [3, 5, 6, 7, 8, 9]
+ assert_changesets [3, 5, 6, 7, 8, 9, private_user_closed_changeset.id, closed_changeset.id]
- get :query, :closed => "true", :user => users(:normal_user).id
+ get :query, :closed => "true", :user => private_user.id
assert_response :success, "can't get changesets by closed-ness and user"
- assert_changesets [3, 6, 8]
+ assert_changesets [private_user_closed_changeset.id]
- get :query, :closed => "true", :user => users(:public_user).id
+ get :query, :closed => "true", :user => user.id
assert_response :success, "can't get changesets by closed-ness and user"
- assert_changesets [7]
+ assert_changesets [closed_changeset.id]
- get :query, :changesets => "1,2,3"
+ get :query, :changesets => "#{private_user_changeset.id},#{changeset.id},#{closed_changeset.id}"
assert_response :success, "can't get changesets by id (as comma-separated string)"
- assert_changesets [1, 2, 3]
+ assert_changesets [private_user_changeset.id, changeset.id, closed_changeset.id]
get :query, :changesets => ""
assert_response :bad_request, "should be a bad request since changesets is empty"
##
# Checks the display of the user changesets listing
def test_list_user
- user = users(:public_user)
+ user = create(:user)
+ create(:changeset, :user => user)
+ create(:changeset, :closed, :user => user)
get :list, :format => "html", :display_name => user.display_name
assert_response :success
##
# Checks the display of the user changesets listing for a private user
def test_list_private_user
- user = users(:normal_user)
+ private_user = create(:user, :data_public => false)
+ create(:changeset, :user => private_user)
+ create(:changeset, :closed, :user => private_user)
- get :list, :format => "html", :display_name => user.display_name
+ get :list, :format => "html", :display_name => private_user.display_name
assert_response :success
assert_template "history"
- xhr :get, :list, :format => "html", :display_name => user.display_name, :list => "1"
+ xhr :get, :list, :format => "html", :display_name => private_user.display_name, :list => "1"
assert_response :success
assert_template "list"
##
# Checks the display of the friends changesets listing
def test_list_friends
- user = users(:normal_user)
+ private_user = create(:user, :data_public => true)
+ friend = create(:friend, :befriender => private_user)
+ create(:changeset, :user => friend.befriendee)
get :list, :friends => true
assert_response :redirect
assert_redirected_to :controller => :user, :action => :login, :referer => friend_changesets_path
- session[:user] = user.id
+ session[:user] = private_user.id
get :list, :friends => true
assert_response :success
assert_response :success
assert_template "list"
- check_list_result(Changeset.where(:user => user.friend_users.identifiable))
+ check_list_result(Changeset.where(:user => private_user.friend_users.identifiable))
end
##
# Checks the display of the nearby user changesets listing
def test_list_nearby
- user = users(:normal_user)
+ 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, :nearby => true
assert_response :redirect
assert_redirected_to :controller => :user, :action => :login, :referer => nearby_changesets_path
- session[:user] = user.id
+ session[:user] = private_user.id
get :list, :nearby => true
assert_response :success
##
# Checks the display of the user changesets feed
def test_feed_user
- user = users(:public_user)
+ user = create(:user)
+ create_list(:changeset, 3, :user => user, :num_changes => 4)
get :feed, :format => :atom, :display_name => user.display_name
assert_response :success
##
# create comment success
def test_create_comment_success
- basic_authorization(users(:public_user).email, "test")
+ user = create(:user)
+ user2 = create(:user)
+ private_user = create(:user, :data_public => false)
+ suspended_user = create(:user, :suspended)
+ deleted_user = create(:user, :deleted)
+ private_user_closed_changeset = create(:changeset, :closed, :user => private_user)
+
+ basic_authorization(user.email, "test")
assert_difference "ChangesetComment.count", 1 do
assert_no_difference "ActionMailer::Base.deliveries.size" do
- post :comment, :id => changesets(:normal_user_closed_change).id, :text => "This is a comment"
+ post :comment, :id => private_user_closed_changeset.id, :text => "This is a comment"
end
end
assert_response :success
- changeset = changesets(:normal_user_subscribed_change)
- changeset.subscribers.push(users(:normal_user))
- changeset.subscribers.push(users(:public_user))
- changeset.subscribers.push(users(:suspended_user))
- changeset.subscribers.push(users(:deleted_user))
+ changeset = create(:changeset, :closed, :user => private_user)
+ changeset.subscribers.push(private_user)
+ changeset.subscribers.push(user)
+ changeset.subscribers.push(suspended_user)
+ changeset.subscribers.push(deleted_user)
assert_difference "ChangesetComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 1 do
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.length
- assert_equal "[OpenStreetMap] test2 has commented on one of your changesets", email.subject
- assert_equal "test@openstreetmap.org", email.to.first
+ assert_equal "[OpenStreetMap] #{user.display_name} has commented on one of your changesets", email.subject
+ assert_equal private_user.email, email.to.first
ActionMailer::Base.deliveries.clear
- basic_authorization(users(:second_public_user).email, "test")
+ basic_authorization(user2.email, "test")
assert_difference "ChangesetComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 2 do
end
assert_response :success
- email = ActionMailer::Base.deliveries.find { |e| e.to.first == "test@openstreetmap.org" }
+ email = ActionMailer::Base.deliveries.find { |e| e.to.first == private_user.email }
assert_not_nil email
assert_equal 1, email.to.length
- assert_equal "[OpenStreetMap] pulibc_test2 has commented on one of your changesets", email.subject
+ assert_equal "[OpenStreetMap] #{user2.display_name} has commented on one of your changesets", email.subject
- email = ActionMailer::Base.deliveries.find { |e| e.to.first == "test@example.com" }
+ email = ActionMailer::Base.deliveries.find { |e| e.to.first == user.email }
assert_not_nil email
assert_equal 1, email.to.length
- assert_equal "[OpenStreetMap] pulibc_test2 has commented on a changeset you are interested in", email.subject
+ assert_equal "[OpenStreetMap] #{user2.display_name} has commented on a changeset you are interested in", email.subject
ActionMailer::Base.deliveries.clear
end