# -----------------------
def test_create
- auth_header = basic_authorization_header create(:user, :data_public => false).email, "test"
+ auth_header = bearer_authorization_header create(:user, :data_public => false)
# Create the first user's changeset
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
put changeset_create_path, :params => xml, :headers => auth_header
assert_require_public_data
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
# Create the first user's changeset
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
end
def test_create_invalid
- auth_header = basic_authorization_header create(:user, :data_public => false).email, "test"
+ auth_header = bearer_authorization_header create(:user, :data_public => false)
xml = "<osm><changeset></osm>"
put changeset_create_path, :params => xml, :headers => auth_header
assert_require_public_data
## Try the public user
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
xml = "<osm><changeset></osm>"
put changeset_create_path, :params => xml, :headers => auth_header
assert_response :bad_request, "creating a invalid changeset should fail"
assert_response :unauthorized, "shouldn't be able to create a changeset with no auth"
## Now try to with a non-public user
- auth_header = basic_authorization_header create(:user, :data_public => false).email, "test"
+ auth_header = bearer_authorization_header create(:user, :data_public => false)
put changeset_create_path, :headers => auth_header
assert_require_public_data
## Try an inactive user
- auth_header = basic_authorization_header create(:user, :pending).email, "test"
+ auth_header = bearer_authorization_header create(:user, :pending)
put changeset_create_path, :headers => auth_header
assert_inactive_user
## Now try to use a normal user
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
put changeset_create_path, :headers => auth_header
assert_response :bad_request, "creating a changeset with no content should fail"
end
def test_create_wrong_method
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
get changeset_create_path, :headers => auth_header
assert_response :not_found
# one hidden comment shown to moderators
moderator_user = create(:moderator_user)
- auth_header = basic_authorization_header moderator_user.email, "test"
+ auth_header = bearer_authorization_header moderator_user
get changeset_show_path(changeset), :params => { :include_discussion => true, :show_hidden_comments => true },
:headers => auth_header
assert_response :success, "cannot get closed changeset with comments"
# one hidden comment shown to moderators
moderator_user = create(:moderator_user)
- auth_header = basic_authorization_header moderator_user.email, "test"
+ auth_header = bearer_authorization_header moderator_user
get changeset_show_path(changeset), :params => { :format => "json", :include_discussion => true, :show_hidden_comments => true },
:headers => auth_header
assert_response :success, "cannot get closed changeset with comments"
# check that a changeset that doesn't exist returns an appropriate message
def test_show_not_found
[0, -32, 233455644, "afg", "213"].each do |id|
- get changeset_show_path(:id => id)
+ get changeset_show_path(id)
assert_response :not_found, "should get a not found"
rescue ActionController::UrlGenerationError => e
assert_match(/No route matches/, e.to_s)
assert_response :unauthorized
## Try using the non-public user
- auth_header = basic_authorization_header private_user.email, "test"
+ auth_header = bearer_authorization_header private_user
put changeset_close_path(private_changeset), :headers => auth_header
assert_require_public_data
## The try with the public user
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
cs_id = changeset.id
- put changeset_close_path(:id => cs_id), :headers => auth_header
+ put changeset_close_path(cs_id), :headers => auth_header
assert_response :success
# test that it really is closed now
user = create(:user)
changeset = create(:changeset)
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
put changeset_close_path(changeset), :headers => auth_header
assert_response :conflict
user = create(:user)
changeset = create(:changeset, :user => user)
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
get changeset_close_path(changeset), :headers => auth_header
assert_response :not_found
# First try to do it with no auth
cs_ids.each do |id|
- put changeset_close_path(:id => id)
+ put changeset_close_path(id)
assert_response :unauthorized, "Shouldn't be able close the non-existant changeset #{id}, when not authorized"
rescue ActionController::UrlGenerationError => e
assert_match(/No route matches/, e.to_s)
end
# Now try with auth
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
cs_ids.each do |id|
- put changeset_close_path(:id => id), :headers => auth_header
+ put changeset_close_path(id), :headers => auth_header
assert_response :not_found, "The changeset #{id} doesn't exist, so can't be closed"
rescue ActionController::UrlGenerationError => e
assert_match(/No route matches/, e.to_s)
"shouldn't be able to upload a simple valid diff to changeset: #{@response.body}"
## Now try with a private user
- auth_header = basic_authorization_header private_user.email, "test"
+ auth_header = bearer_authorization_header private_user
changeset_id = private_changeset.id
# simple diff to change a node, way and relation by removing
"can't upload a simple valid diff to changeset: #{@response.body}"
## Now try with the public user
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
changeset_id = changeset.id
# simple diff to change a node, way and relation by removing
way = create(:way_with_nodes, :nodes_count => 2)
relation = create(:relation)
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
# simple diff to create a node way and relation using placeholders
diff = <<~CHANGESET
"can't upload a simple valid creation to changeset: #{@response.body}"
# check the returned payload
- assert_select "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1
- assert_select "diffResult>node", 1
- assert_select "diffResult>way", 1
- assert_select "diffResult>relation", 1
-
- # inspect the response to find out what the new element IDs are
- doc = XML::Parser.string(@response.body).parse
- new_node_id = doc.find("//diffResult/node").first["new_id"].to_i
- new_way_id = doc.find("//diffResult/way").first["new_id"].to_i
- 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)
-
- # check the versions are present and equal one
- assert_equal 1, doc.find("//diffResult/node").first["new_version"].to_i
- assert_equal 1, doc.find("//diffResult/way").first["new_version"].to_i
- assert_equal 1, doc.find("//diffResult/relation").first["new_version"].to_i
+ new_node_id, new_way_id, new_rel_id = nil
+ assert_dom "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1 do
+ # inspect the response to find out what the new element IDs are
+ # check the old IDs are all present and negative one
+ # check the versions are present and equal one
+ assert_dom "> node", 1 do |(node_el)|
+ new_node_id = node_el["new_id"].to_i
+ assert_dom "> @old_id", "-1"
+ assert_dom "> @new_version", "1"
+ end
+ assert_dom "> way", 1 do |(way_el)|
+ new_way_id = way_el["new_id"].to_i
+ assert_dom "> @old_id", "-1"
+ assert_dom "> @new_version", "1"
+ end
+ assert_dom "> relation", 1 do |(rel_el)|
+ new_rel_id = rel_el["new_id"].to_i
+ assert_dom "> @old_id", "-1"
+ assert_dom "> @new_version", "1"
+ end
+ end
# check that the changes made it into the database
assert_equal 2, Node.find(new_node_id).tags.size, "new node should have two tags"
create(:relation_member, :relation => super_relation, :member => used_way)
create(:relation_member, :relation => super_relation, :member => used_node)
- auth_header = basic_authorization_header changeset.user.display_name, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = XML::Document.new
diff.root = XML::Node.new "osmChange"
node = create(:node)
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.display_name, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = "<osmChange><delete><node id='#{node.id}' version='#{node.version}' changeset='#{changeset.id}'/></delete></osmChange>"
# upload it
def test_repeated_changeset_create
3.times do
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
# create a temporary changeset
xml = "<osm><changeset>" \
def test_upload_large_changeset
user = create(:user)
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
# create an old changeset to ensure we have the maximum rate limit
create(:changeset, :user => user, :created_at => Time.now.utc - 28.days)
# upload it, which used to cause an error like "PGError: ERROR:
# integer out of range" (bug #2152). but shouldn't any more.
- post changeset_upload_path(:id => changeset_id), :params => diff, :headers => auth_header
+ post changeset_upload_path(changeset_id), :params => diff, :headers => auth_header
assert_response :success,
"can't upload a spatially-large diff to changeset: #{@response.body}"
create(:relation_member, :relation => relation, :member => used_way)
create(:relation_member, :relation => relation, :member => used_node)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = XML::Document.new
diff.root = XML::Node.new "osmChange"
create(:relation_member, :relation => super_relation, :member => used_way)
create(:relation_member, :relation => super_relation, :member => used_node)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = XML::Document.new
diff.root = XML::Node.new "osmChange"
"can't do a conditional delete of in use objects: #{@response.body}"
# check the returned payload
- assert_select "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1
- assert_select "diffResult>node", 1
- assert_select "diffResult>way", 1
- assert_select "diffResult>relation", 1
-
- # parse the response
- doc = XML::Parser.string(@response.body).parse
-
- # check the old IDs are all present and what we expect
- assert_equal used_node.id, doc.find("//diffResult/node").first["old_id"].to_i
- assert_equal used_way.id, doc.find("//diffResult/way").first["old_id"].to_i
- assert_equal used_relation.id, doc.find("//diffResult/relation").first["old_id"].to_i
-
- # check the new IDs are all present and unchanged
- assert_equal used_node.id, doc.find("//diffResult/node").first["new_id"].to_i
- assert_equal used_way.id, doc.find("//diffResult/way").first["new_id"].to_i
- assert_equal used_relation.id, doc.find("//diffResult/relation").first["new_id"].to_i
-
- # check the new versions are all present and unchanged
- assert_equal used_node.version, doc.find("//diffResult/node").first["new_version"].to_i
- assert_equal used_way.version, doc.find("//diffResult/way").first["new_version"].to_i
- assert_equal used_relation.version, doc.find("//diffResult/relation").first["new_version"].to_i
+ assert_dom "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1 do
+ # check the old IDs are all present and what we expect
+ # check the new IDs are all present and unchanged
+ # check the new versions are all present and unchanged
+ assert_dom "> node", 1 do
+ assert_dom "> @old_id", used_node.id.to_s
+ assert_dom "> @new_id", used_node.id.to_s
+ assert_dom "> @new_version", used_node.version.to_s
+ end
+ assert_dom "> way", 1 do
+ assert_dom "> @old_id", used_way.id.to_s
+ assert_dom "> @new_id", used_way.id.to_s
+ assert_dom "> @new_version", used_way.version.to_s
+ end
+ assert_dom "> relation", 1 do
+ assert_dom "> @old_id", used_relation.id.to_s
+ assert_dom "> @new_id", used_relation.id.to_s
+ assert_dom "> @new_version", used_relation.version.to_s
+ end
+ end
# check that nothing was, in fact, deleted
assert Node.find(used_node.id).visible
def test_upload_invalid_too_long_tag
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
# simple diff to create a node way and relation using placeholders
diff = <<~CHANGESET
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
# simple diff to create a node way and relation using placeholders
diff = <<~CHANGESET
"can't upload a complex diff to changeset: #{@response.body}"
# check the returned payload
- assert_select "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1
- assert_select "diffResult>node", 1
- assert_select "diffResult>way", 1
- assert_select "diffResult>relation", 1
-
- # inspect the response to find out what the new element IDs are
- doc = XML::Parser.string(@response.body).parse
- new_node_id = doc.find("//diffResult/node").first["new_id"].to_i
+ new_node_id = nil
+ assert_dom "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1 do
+ assert_dom "> node", 1 do |(node_el)|
+ new_node_id = node_el["new_id"].to_i
+ end
+ assert_dom "> way", 1
+ assert_dom "> relation", 1
+ end
# check that the changes made it into the database
assert_equal 2, Node.find(new_node_id).tags.size, "new node should have two tags"
relation = create(:relation)
other_relation = create(:relation)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
# simple diff to create a node way and relation using placeholders
diff = <<~CHANGESET
def test_upload_multiple_valid
node = create(:node)
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
# change the location of a node multiple times, each time referencing
# the last version. doesn't this depend on version numbers being
node = create(:node)
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
def test_upload_missing_version
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
def test_action_upload_invalid
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
other_relation = create(:relation)
create(:relation_tag, :relation => relation)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
def test_upload_reuse_placeholder_valid
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
def test_upload_placeholder_invalid
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
def test_upload_process_order
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
def test_upload_duplicate_delete
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
changeset = create(:changeset)
way = create(:way)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
changeset = create(:changeset)
relation = create(:relation)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
diff = <<~CHANGESET
<osmChange>
# test what happens if a diff is uploaded containing only a node
# move.
def test_upload_node_move
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
diff.root << modify
# upload it
- post changeset_upload_path(:id => changeset_id), :params => diff.to_s, :headers => auth_header
+ post changeset_upload_path(changeset_id), :params => diff.to_s, :headers => auth_header
assert_response :success,
"diff should have uploaded OK"
##
# test what happens if a diff is uploaded adding a node to a way.
def test_upload_way_extend
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
diff.root << modify
# upload it
- post changeset_upload_path(:id => changeset_id), :params => diff.to_s, :headers => auth_header
+ post changeset_upload_path(changeset_id), :params => diff.to_s, :headers => auth_header
assert_response :success,
"diff should have uploaded OK"
def test_upload_empty_invalid
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
["<osmChange/>",
"<osmChange></osmChange>",
node = create(:node)
create(:relation_member, :member => node)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
# try and delete a node that is in use
diff = XML::Document.new
def test_upload_not_found
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
# modify node
diff = <<~CHANGESET
def test_upload_relation_placeholder_not_fix
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
# modify node
diff = <<~CHANGESET
def test_upload_multiple_delete_block
changeset = create(:changeset)
- auth_header = basic_authorization_header changeset.user.email, "test"
+ auth_header = bearer_authorization_header changeset.user
node = create(:node)
way = create(:way)
:num_changes => Settings.initial_changes_per_hour - 2)
# create authentication header
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
# simple diff to create a node way and relation using placeholders
diff = <<~CHANGESET
end
# create authentication header
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
# simple diff to create a node way and relation using placeholders
diff = <<~CHANGESET
:max_lat => (0.5 * GeoRecord::SCALE).round, :max_lon => (2.5 * GeoRecord::SCALE).round)
# create authentication header
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
# simple diff to create a node
diff = <<~CHANGESET
:max_lat => (0.5 * GeoRecord::SCALE).round, :max_lon => (2.5 * GeoRecord::SCALE).round)
# create authentication header
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
# simple diff to create a node way and relation using placeholders
diff = <<~CHANGESET
node = create(:node)
## First try with a non-public user, which should get a forbidden
- auth_header = basic_authorization_header create(:user, :data_public => false).email, "test"
+ auth_header = bearer_authorization_header create(:user, :data_public => false)
# create a temporary changeset
xml = "<osm><changeset>" \
assert_response :forbidden
## Now try with a normal user
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
# create a temporary changeset
xml = "<osm><changeset>" \
CHANGESET
# upload it
- post changeset_upload_path(:id => changeset_id), :params => diff, :headers => auth_header
+ post changeset_upload_path(changeset_id), :params => diff, :headers => auth_header
assert_response :success,
"can't upload multiple versions of an element in a diff: #{@response.body}"
- get changeset_download_path(:id => changeset_id)
+ get changeset_download_path(changeset_id)
assert_response :success
assert_select "osmChange", 1
#
# NOTE: the error turned out to be something else completely!
def test_josm_upload
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
# create a temporary changeset
xml = "<osm><changeset>" \
OSMFILE
# upload it
- post changeset_upload_path(:id => changeset_id), :params => diff, :headers => auth_header
+ post changeset_upload_path(changeset_id), :params => diff, :headers => auth_header
assert_response :success,
"can't upload a diff from JOSM: #{@response.body}"
- get changeset_download_path(:id => changeset_id)
+ get changeset_download_path(changeset_id)
assert_response :success
assert_select "osmChange", 1
node = create(:node)
node2 = create(:node)
way = create(:way)
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
# create a temporary changeset
xml = "<osm><changeset>" \
CHANGESET
# upload it
- post changeset_upload_path(:id => changeset_id), :params => diff, :headers => auth_header
+ post changeset_upload_path(changeset_id), :params => diff, :headers => auth_header
assert_response :success,
"can't upload multiple versions of an element in a diff: #{@response.body}"
- get changeset_download_path(:id => changeset_id)
+ get changeset_download_path(changeset_id)
assert_response :success
assert_select "osmChange", 1
way = create(:way)
create(:way_node, :way => way, :node => create(:node, :lat => 0.3, :lon => 0.3))
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
# create a new changeset
xml = "<osm><changeset/></osm>"
end
# get the bounding box back from the changeset
- get changeset_show_path(:id => changeset_id)
+ get changeset_show_path(changeset_id)
assert_response :success, "Couldn't read back changeset."
assert_select "osm>changeset[min_lon='0.1000000']", 1
assert_select "osm>changeset[max_lon='0.1000000']", 1
end
# get the bounding box back from the changeset
- get changeset_show_path(:id => changeset_id)
+ get changeset_show_path(changeset_id)
assert_response :success, "Couldn't read back changeset for the second time."
assert_select "osm>changeset[min_lon='0.1000000']", 1
assert_select "osm>changeset[max_lon='0.2000000']", 1
end
# get the bounding box back from the changeset
- get changeset_show_path(:id => changeset_id)
+ get changeset_show_path(changeset_id)
assert_response :success, "Couldn't read back changeset for the third time."
assert_select "osm>changeset[min_lon='0.1000000']", 1
assert_select "osm>changeset[max_lon='0.3000000']", 1
get changesets_path(:bbox => "-10,-10, 10, 10")
assert_response :success, "can't get changesets in bbox"
- assert_changesets [changeset2, changeset3]
+ assert_changesets_in_order [changeset3, changeset2]
get changesets_path(:bbox => "4.5,4.5,4.6,4.6")
assert_response :success, "can't get changesets in bbox"
- assert_changesets [changeset3]
+ assert_changesets_in_order [changeset3]
# not found when looking for changesets of non-existing users
get changesets_path(:user => User.maximum(:id) + 1)
assert_response :not_found, "shouldn't be able to get changesets by non-public user (name)"
# but this should work
- auth_header = basic_authorization_header private_user.email, "test"
+ auth_header = bearer_authorization_header private_user
get changesets_path(:user => private_user.id), :headers => auth_header
assert_response :success, "can't get changesets by user ID"
- assert_changesets [private_user_changeset, private_user_closed_changeset]
+ assert_changesets_in_order [private_user_changeset, private_user_closed_changeset]
get changesets_path(:display_name => private_user.display_name), :headers => auth_header
assert_response :success, "can't get changesets by user name"
- assert_changesets [private_user_changeset, private_user_closed_changeset]
+ assert_changesets_in_order [private_user_changeset, private_user_closed_changeset]
# test json endpoint
get changesets_path(:display_name => private_user.display_name), :headers => auth_header, :params => { :format => "json" }
get changesets_path(:user => private_user.id, :open => true), :headers => auth_header
assert_response :success, "can't get changesets by user and open"
- assert_changesets [private_user_changeset]
+ assert_changesets_in_order [private_user_changeset]
get changesets_path(:time => "2007-12-31"), :headers => auth_header
assert_response :success, "can't get changesets by time-since"
- assert_changesets [private_user_changeset, private_user_closed_changeset, changeset, closed_changeset, changeset2, changeset3]
+ assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset, private_user_closed_changeset, closed_changeset]
get changesets_path(:time => "2008-01-01T12:34Z"), :headers => auth_header
assert_response :success, "can't get changesets by time-since with hour"
- assert_changesets [private_user_changeset, private_user_closed_changeset, changeset, closed_changeset, changeset2, changeset3]
+ assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset, private_user_closed_changeset, closed_changeset]
get changesets_path(:time => "2007-12-31T23:59Z,2008-01-02T00:01Z"), :headers => auth_header
assert_response :success, "can't get changesets by time-range"
- assert_changesets [closed_changeset]
+ assert_changesets_in_order [closed_changeset]
get changesets_path(:open => "true"), :headers => auth_header
assert_response :success, "can't get changesets by open-ness"
- assert_changesets [private_user_changeset, changeset, changeset2, changeset3]
+ assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset]
get changesets_path(:closed => "true"), :headers => auth_header
assert_response :success, "can't get changesets by closed-ness"
- assert_changesets [private_user_closed_changeset, closed_changeset]
+ assert_changesets_in_order [private_user_closed_changeset, closed_changeset]
get changesets_path(:closed => "true", :user => private_user.id), :headers => auth_header
assert_response :success, "can't get changesets by closed-ness and user"
- assert_changesets [private_user_closed_changeset]
+ assert_changesets_in_order [private_user_closed_changeset]
get changesets_path(:closed => "true", :user => user.id), :headers => auth_header
assert_response :success, "can't get changesets by closed-ness and user"
- assert_changesets [closed_changeset]
+ assert_changesets_in_order [closed_changeset]
get changesets_path(:changesets => "#{private_user_changeset.id},#{changeset.id},#{closed_changeset.id}"), :headers => auth_header
assert_response :success, "can't get changesets by id (as comma-separated string)"
- assert_changesets [private_user_changeset, changeset, closed_changeset]
+ assert_changesets_in_order [changeset, private_user_changeset, closed_changeset]
get changesets_path(:changesets => ""), :headers => auth_header
assert_response :bad_request, "should be a bad request since changesets is empty"
assert_response :unauthorized
# try with the wrong authorization
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
put changeset_show_path(private_changeset), :params => new_changeset.to_s, :headers => auth_header
assert_response :conflict
# now this should get an unauthorized
- auth_header = basic_authorization_header private_user.email, "test"
+ auth_header = bearer_authorization_header private_user
put changeset_show_path(private_changeset), :params => new_changeset.to_s, :headers => auth_header
assert_require_public_data "user with their data non-public, shouldn't be able to edit their changeset"
assert_response :unauthorized
# try with the wrong authorization
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
put changeset_show_path(changeset), :params => new_changeset.to_s, :headers => auth_header
assert_response :conflict
# now this should work...
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
put changeset_show_path(changeset), :params => new_changeset.to_s, :headers => auth_header
assert_response :success
# check that a user different from the one who opened the changeset
# can't modify it.
def test_changeset_update_invalid
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
changeset = create(:changeset)
new_changeset = create_changeset_xml(:user => changeset.user, :id => changeset.id)
## FIXME should be changed to an integration test due to the with_controller
def test_changeset_limits
user = create(:user)
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
# create an old changeset to ensure we have the maximum rate limit
create(:changeset, :user => user, :created_at => Time.now.utc - 28.days)
##
# test subscribe success
def test_subscribe_success
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
changeset = create(:changeset, :closed)
assert_difference "changeset.subscribers.count", 1 do
end
assert_response :unauthorized
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
# bad changeset id
assert_no_difference "changeset.subscribers.count" do
- post api_changeset_subscribe_path(:id => 999111), :headers => auth_header
+ post api_changeset_subscribe_path(999111), :headers => auth_header
end
assert_response :not_found
# test unsubscribe success
def test_unsubscribe_success
user = create(:user)
- auth_header = basic_authorization_header user.email, "test"
+ auth_header = bearer_authorization_header user
changeset = create(:changeset, :closed)
changeset.subscribers.push(user)
end
assert_response :unauthorized
- auth_header = basic_authorization_header create(:user).email, "test"
+ auth_header = bearer_authorization_header
# bad changeset id
assert_no_difference "changeset.subscribers.count" do
- post api_changeset_unsubscribe_path(:id => 999111), :headers => auth_header
+ post api_changeset_unsubscribe_path(999111), :headers => auth_header
end
assert_response :not_found
end
end
- ##
- # check that certain changesets exist in the output
- def assert_changesets(changesets)
- assert_select "osm>changeset", changesets.size
- changesets.each do |changeset|
- assert_select "osm>changeset[id='#{changeset.id}']", 1
- end
- end
-
##
# check that certain changesets exist in the output in the specified order
def assert_changesets_in_order(changesets)