def test_close
basic_authorization "test@openstreetmap.org", "test"
- put :close, :id => changesets(:normal_user_first_change).id
+ cs_id = changesets(:normal_user_first_change).id
+ put :close, :id => cs_id
assert_response :success
+
+ # test that it really is closed now
+ cs = Changeset.find(cs_id)
+ assert(!cs.is_open?,
+ "changeset should be closed now (#{cs.closed_at} > #{Time.now}.")
end
##
</relation>
</modify>
<create>
- <node id='-1' changeset='4'>
+ <node id='-1' lon='0' lat='0' changeset='4'>
<tag k='foo' v='bar'/>
<tag k='baz' v='bat'/>
</node>
def test_query
get :query, :bbox => "-10,-10, 10, 10"
assert_response :success, "can't get changesets in bbox"
- assert_changesets [1,4]
+ assert_changesets [1,4,6]
get :query, :bbox => "4.5,4.5,4.6,4.6"
assert_response :success, "can't get changesets in bbox"
basic_authorization "test@openstreetmap.org", "test"
get :query, :user => users(:normal_user).id
assert_response :success, "can't get changesets by user"
- assert_changesets [1,3,4]
+ assert_changesets [1,3,4,6]
get :query, :user => users(:normal_user).id, :open => true
assert_response :success, "can't get changesets by user and open"
get :query, :time => '2007-12-31'
assert_response :success, "can't get changesets by time-since"
- assert_changesets [1,2,4,5]
+ assert_changesets [1,2,4,5,6]
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]
+ assert_changesets [1,2,4,5,6]
get :query, :time => '2007-12-31T23:59Z,2008-01-01T00:01Z'
assert_response :success, "can't get changesets by time-range"
- assert_changesets [1,4,5]
+ assert_changesets [1,4,5,6]
get :query, :open => 'true'
assert_response :success, "can't get changesets by open-ness"
##
# check updating tags on a changeset
def test_changeset_update
- basic_authorization "test@openstreetmap.org", "test"
-
changeset = changesets(:normal_user_first_change)
new_changeset = changeset.to_xml
new_tag = XML::Node.new "tag"
new_tag['k'] = "tagtesting"
new_tag['v'] = "valuetesting"
new_changeset.find("//osm/changeset").first << new_tag
-
content new_changeset
+
+ # try without any authorization
+ put :update, :id => changeset.id
+ assert_response :unauthorized
+
+ # try with the wrong authorization
+ basic_authorization "test@example.com", "test"
+ put :update, :id => changeset.id
+ assert_response :conflict
+
+ # now this should work...
+ basic_authorization "test@openstreetmap.org", "test"
put :update, :id => changeset.id
assert_response :success
changeset = Changeset.find(cs_id)
assert_equal Changeset::MAX_ELEMENTS + 1, changeset.num_changes
+
+ # check that the changeset is now closed as well
+ assert(!changeset.is_open?,
+ "changeset should have been auto-closed by exceeding " +
+ "element limit.")
end
#------------------------------------------------------------