- def test_full
- # check the "full" mode
- get relation_full_path(:id => 999999)
- assert_response :not_found
-
- get relation_full_path(:id => create(:relation, :deleted).id)
- assert_response :gone
-
- get relation_full_path(:id => create(:relation).id)
- assert_response :success
- # FIXME: check whether this contains the stuff we want!
- end
-
- ##
- # test fetching multiple relations
- def test_index
- relation1 = create(:relation)
- relation2 = create(:relation, :deleted)
- relation3 = create(:relation, :with_history, :version => 2)
- relation4 = create(:relation, :with_history, :version => 2)
- relation4.old_relations.find_by(:version => 1).redact!(create(:redaction))
-
- # check error when no parameter provided
- get relations_path
- assert_response :bad_request
-
- # check error when no parameter value provided
- get relations_path(:relations => "")
- assert_response :bad_request
-
- # test a working call
- get relations_path(:relations => "#{relation1.id},#{relation2.id},#{relation3.id},#{relation4.id}")
- assert_response :success
- assert_select "osm" do
- assert_select "relation", :count => 4
- assert_select "relation[id='#{relation1.id}'][visible='true']", :count => 1
- assert_select "relation[id='#{relation2.id}'][visible='false']", :count => 1
- assert_select "relation[id='#{relation3.id}'][visible='true']", :count => 1
- assert_select "relation[id='#{relation4.id}'][visible='true']", :count => 1
- end
-
- # test a working call with json format
- get relations_path(:relations => "#{relation1.id},#{relation2.id},#{relation3.id},#{relation4.id}", :format => "json")
-
- js = ActiveSupport::JSON.decode(@response.body)
- assert_not_nil js
- assert_equal 4, js["elements"].count
- assert_equal 4, (js["elements"].count { |a| a["type"] == "relation" })
- assert_equal 1, (js["elements"].count { |a| a["id"] == relation1.id && a["visible"].nil? })
- assert_equal 1, (js["elements"].count { |a| a["id"] == relation2.id && a["visible"] == false })
- assert_equal 1, (js["elements"].count { |a| a["id"] == relation3.id && a["visible"].nil? })
- assert_equal 1, (js["elements"].count { |a| a["id"] == relation4.id && a["visible"].nil? })
-
- # check error when a non-existent relation is included
- get relations_path(:relations => "#{relation1.id},#{relation2.id},#{relation3.id},#{relation4.id},0")
- assert_response :not_found
- end
-