# check that the changeset can be shown and returns the correct
# document structure.
def test_show
- changeset_id = create(:changeset).id
+ changeset = create(:changeset)
- get :show, :params => { :id => changeset_id }
+ get :show, :params => { :id => changeset.id }
assert_response :success, "cannot get first changeset"
assert_select "osm[version='#{Settings.api_version}'][generator='OpenStreetMap server']", 1
- assert_select "osm>changeset[id='#{changeset_id}']", 1
+ assert_select "osm>changeset[id='#{changeset.id}']", 1
+ assert_select "osm>changeset>@open", "true"
+ assert_select "osm>changeset>@created_at", changeset.created_at.xmlschema
+ assert_select "osm>changeset>@closed_at", 0
assert_select "osm>changeset>discussion", 0
- get :show, :params => { :id => changeset_id, :include_discussion => true }
+ get :show, :params => { :id => changeset.id, :include_discussion => true }
assert_response :success, "cannot get first changeset with comments"
assert_select "osm[version='#{Settings.api_version}'][generator='OpenStreetMap server']", 1
- assert_select "osm>changeset[id='#{changeset_id}']", 1
+ assert_select "osm>changeset[id='#{changeset.id}']", 1
+ assert_select "osm>changeset>@open", "true"
+ assert_select "osm>changeset>@created_at", changeset.created_at.xmlschema
+ assert_select "osm>changeset>@closed_at", 0
assert_select "osm>changeset>discussion", 1
assert_select "osm>changeset>discussion>comment", 0
- changeset_id = create(:changeset, :closed).id
- create_list(:changeset_comment, 3, :changeset_id => changeset_id)
+ changeset = create(:changeset, :closed)
+ create_list(:changeset_comment, 3, :changeset_id => changeset.id)
- get :show, :params => { :id => changeset_id, :include_discussion => true }
+ get :show, :params => { :id => changeset.id, :include_discussion => true }
assert_response :success, "cannot get closed changeset with comments"
assert_select "osm[version='#{Settings.api_version}'][generator='OpenStreetMap server']", 1
- assert_select "osm>changeset[id='#{changeset_id}']", 1
+ assert_select "osm>changeset[id='#{changeset.id}']", 1
+ assert_select "osm>changeset>@open", "false"
+ assert_select "osm>changeset>@created_at", changeset.created_at.xmlschema
+ assert_select "osm>changeset>@closed_at", changeset.closed_at.xmlschema
assert_select "osm>changeset>discussion", 1
assert_select "osm>changeset>discussion>comment", 3
end
[0, -32, 233455644, "afg", "213"].each do |id|
get :show, :params => { :id => id }
assert_response :not_found, "should get a not found"
- rescue ActionController::UrlGenerationError => ex
- assert_match(/No route matches/, ex.to_s)
+ rescue ActionController::UrlGenerationError => e
+ assert_match(/No route matches/, e.to_s)
end
end
cs_ids.each do |id|
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)
+ rescue ActionController::UrlGenerationError => e
+ assert_match(/No route matches/, e.to_s)
end
# Now try with auth
cs_ids.each do |id|
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)
+ rescue ActionController::UrlGenerationError => e
+ assert_match(/No route matches/, e.to_s)
end
end
diff.root = XML::Node.new "osmChange"
delete = XML::Node.new "delete"
diff.root << delete
- delete << super_relation.to_xml_node
- delete << used_relation.to_xml_node
- delete << used_way.to_xml_node
- delete << used_node.to_xml_node
+ delete << xml_node_for_relation(super_relation)
+ delete << xml_node_for_relation(used_relation)
+ delete << xml_node_for_way(used_way)
+ delete << xml_node_for_node(used_node)
# update the changeset to one that this user owns
%w[node way relation].each do |type|
diff.root = XML::Node.new "osmChange"
delete = XML::Node.new "delete"
diff.root << delete
- delete << other_relation.to_xml_node
- delete << used_way.to_xml_node
- delete << used_node.to_xml_node
+ delete << xml_node_for_relation(other_relation)
+ delete << xml_node_for_way(used_way)
+ delete << xml_node_for_node(used_node)
# update the changeset to one that this user owns
%w[node way relation].each do |type|
delete = XML::Node.new "delete"
diff.root << delete
delete["if-unused"] = ""
- delete << used_relation.to_xml_node
- delete << used_way.to_xml_node
- delete << used_node.to_xml_node
+ delete << xml_node_for_relation(used_relation)
+ delete << xml_node_for_way(used_way)
+ delete << xml_node_for_node(used_node)
# update the changeset to one that this user owns
%w[node way relation].each do |type|
diff = XML::Document.new
diff.root = XML::Node.new "osmChange"
modify = XML::Node.new "modify"
- xml_old_node = old_node.to_xml_node
+ xml_old_node = xml_node_for_node(old_node)
xml_old_node["lat"] = 2.0.to_s
xml_old_node["lon"] = 2.0.to_s
xml_old_node["changeset"] = changeset_id.to_s
diff = XML::Document.new
diff.root = XML::Node.new "osmChange"
modify = XML::Node.new "modify"
- xml_old_way = old_way.to_xml_node
+ xml_old_way = xml_node_for_way(old_way)
nd_ref = XML::Node.new "nd"
nd_ref["ref"] = create(:node, :lat => 3, :lon => 3).id.to_s
xml_old_way << nd_ref
diff.root = XML::Node.new "osmChange"
delete = XML::Node.new "delete"
diff.root << delete
- delete << node.to_xml_node
+ delete << xml_node_for_node(node)
# upload it
error_format "xml"
# add (delete) a way to it, which contains a point at (3,3)
with_controller(WaysController.new) do
- xml = update_changeset(way.to_xml, changeset_id)
+ xml = update_changeset(xml_for_way(way), changeset_id)
put :delete, :params => { :id => way.id }, :body => xml.to_s
assert_response :success, "Couldn't delete a way."
end
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))
- changeset2 = create(:changeset, :min_lat => 5 * GeoRecord::SCALE, :min_lon => 5 * GeoRecord::SCALE, :max_lat => 15 * GeoRecord::SCALE, :max_lon => 15 * GeoRecord::SCALE)
- changeset3 = create(:changeset, :min_lat => 4.5 * GeoRecord::SCALE, :min_lon => 4.5 * GeoRecord::SCALE, :max_lat => 5 * GeoRecord::SCALE, :max_lon => 5 * GeoRecord::SCALE)
+ changeset2 = create(:changeset, :min_lat => (5 * GeoRecord::SCALE).round, :min_lon => (5 * GeoRecord::SCALE).round, :max_lat => (15 * GeoRecord::SCALE).round, :max_lon => (15 * GeoRecord::SCALE).round)
+ changeset3 = create(:changeset, :min_lat => (4.5 * GeoRecord::SCALE).round, :min_lon => (4.5 * GeoRecord::SCALE).round, :max_lat => (5 * GeoRecord::SCALE).round, :max_lon => (5 * GeoRecord::SCALE).round)
get :query, :params => { :bbox => "-10,-10, 10, 10" }
assert_response :success, "can't get changesets in bbox"