From: Matt Amos Date: Wed, 15 Oct 2008 11:12:26 +0000 (+0000) Subject: Added more fixtures and tests for node versioning calls. X-Git-Tag: live~8182^2~264 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/6a276202e559903cd0e21fb25b8f72a01cbd9314 Added more fixtures and tests for node versioning calls. --- diff --git a/test/fixtures/changesets.yml b/test/fixtures/changesets.yml index de6f4f786..7d97f2abf 100644 --- a/test/fixtures/changesets.yml +++ b/test/fixtures/changesets.yml @@ -16,3 +16,9 @@ normal_user_closed_change: user_id: 1 created_at: "2007-01-01 00:00:00" open: 0 + +normal_user_version_change: + id: 4 + user_id: 1 + created_at: "2008-01-01 00:00:00" + open: 1 diff --git a/test/fixtures/current_node_tags.yml b/test/fixtures/current_node_tags.yml index ce68a5439..8a699e9d4 100644 --- a/test/fixtures/current_node_tags.yml +++ b/test/fixtures/current_node_tags.yml @@ -13,3 +13,17 @@ t3: k: test v: yes +t4: + id: 4 + k: test + v: yes + +nv_t1: + id: 15 + k: testing + v: added in node version 3 + +nv_t2: + id: 15 + k: testing two + v: modified in node version 4 diff --git a/test/fixtures/current_nodes.yml b/test/fixtures/current_nodes.yml index 7407b2983..7e4f33a07 100644 --- a/test/fixtures/current_nodes.yml +++ b/test/fixtures/current_nodes.yml @@ -141,3 +141,12 @@ node_totally_wrong: tile: <%= QuadTile.tile_for_point(200,200) %> timestamp: 2007-01-01 00:00:00 +node_with_versions: + id: 15 + latitude: <%= 1*SCALE %> + longitude: <%= 1*SCALE %> + changeset_id: 4 + visible: 1 + version: 4 + tile: <%= QuadTile.tile_for_point(1,1) %> + timestamp: 2008-01-01 00:04:00 diff --git a/test/fixtures/node_tags.yml b/test/fixtures/node_tags.yml index 8c80128b0..c6a31186b 100644 --- a/test/fixtures/node_tags.yml +++ b/test/fixtures/node_tags.yml @@ -6,7 +6,7 @@ t1: t2: id: 3 - k: testused + k: test v: yes version: 1 @@ -15,3 +15,33 @@ t3: k: test v: yes version: 1 + +nv3_t1: + id: 15 + k: testing + v: added in node version 3 + version: 3 + +nv3_t2: + id: 15 + k: testing two + v: added in node version 3 + version: 3 + +nv3_t3: + id: 15 + k: testing three + v: added in node version 3 + version: 3 + +nv4_t1: + id: 15 + k: testing + v: added in node version 3 + version: 4 + +nv4_t2: + id: 15 + k: testing two + v: modified in node version 4 + version: 4 diff --git a/test/fixtures/nodes.yml b/test/fixtures/nodes.yml index ddcf1d8f1..c58cda962 100644 --- a/test/fixtures/nodes.yml +++ b/test/fixtures/nodes.yml @@ -141,3 +141,42 @@ node_totally_wrong: tile: <%= QuadTile.tile_for_point(200,200) %> timestamp: 2007-01-01 00:00:00 +node_with_versions_v1: + id: 15 + latitude: <%= 1*SCALE %> + longitude: <%= 1*SCALE %> + changeset_id: 4 + visible: 1 + version: 1 + tile: <%= QuadTile.tile_for_point(1,1) %> + timestamp: 2008-01-01 00:01:00 + +node_with_versions_v2: + id: 15 + latitude: <%= 2*SCALE %> + longitude: <%= 2*SCALE %> + changeset_id: 4 + visible: 1 + version: 2 + tile: <%= QuadTile.tile_for_point(1,1) %> + timestamp: 2008-01-01 00:02:00 + +node_with_versions_v3: + id: 15 + latitude: <%= 1*SCALE %> + longitude: <%= 1*SCALE %> + changeset_id: 4 + visible: 1 + version: 3 + tile: <%= QuadTile.tile_for_point(1,1) %> + timestamp: 2008-01-01 00:03:00 + +node_with_versions_v4: + id: 15 + latitude: <%= 1*SCALE %> + longitude: <%= 1*SCALE %> + changeset_id: 4 + visible: 1 + version: 4 + tile: <%= QuadTile.tile_for_point(1,1) %> + timestamp: 2008-01-01 00:04:00 diff --git a/test/functional/old_node_controller_test.rb b/test/functional/old_node_controller_test.rb index 50d69e9a4..4b0cf0363 100644 --- a/test/functional/old_node_controller_test.rb +++ b/test/functional/old_node_controller_test.rb @@ -83,18 +83,47 @@ class OldNodeControllerTest < Test::Unit::TestCase end end + ## + # Test that getting the current version is identical to picking + # that version with the version URI call. + def test_current_version + check_current_version(current_nodes(:visible_node)) + check_current_version(current_nodes(:used_node_1)) + check_current_version(current_nodes(:used_node_2)) + check_current_version(current_nodes(:node_used_by_relationship)) + check_current_version(current_nodes(:node_with_versions)) + end + + def check_current_version(node_id) + # get the current version of the node + current_node = with_controller(NodeController.new) do + get :read, :id => node_id + assert_response :success, "cant get current node #{node_id}" + Node.from_xml(@response.body) + end + assert_not_nil current_node, "getting node #{node_id} returned nil" + + # get the "old" version of the node from the old_node interface + get :version, :id => node_id, :version => current_node.version + assert_response :success, "cant get old node #{node_id}, v#{current_node.version}" + old_node = Node.from_xml(@response.body) + + # check the nodes are the same + assert_nodes_are_equal current_node, old_node + end + ## # for some reason a==b is false, but there doesn't seem to be any # difference between the nodes, so i'm checking all the attributes # manually and blaming it on ActiveRecord def assert_nodes_are_equal(a, b) assert_equal a.id, b.id, "node IDs" - assert_equal a.latitude, b.latitude, "latitude" - assert_equal a.longitude, b.longitude, "longitude" - assert_equal a.changeset_id, b.changeset_id, "changeset ID" - assert_equal a.visible, b.visible, "visible" - assert_equal a.version, b.version, "version" - assert_equal a.tags, b.tags, "tags" + assert_equal a.latitude, b.latitude, "latitude on node #{a.id}" + assert_equal a.longitude, b.longitude, "longitude on node #{a.id}" + assert_equal a.changeset_id, b.changeset_id, "changeset ID on node #{a.id}" + assert_equal a.visible, b.visible, "visible on node #{a.id}" + assert_equal a.version, b.version, "version on node #{a.id}" + assert_equal a.tags, b.tags, "tags on node #{a.id}" end ## diff --git a/test/unit/current_node_tag_test.rb b/test/unit/current_node_tag_test.rb index 7fb1deff5..98bceb4e5 100644 --- a/test/unit/current_node_tag_test.rb +++ b/test/unit/current_node_tag_test.rb @@ -6,10 +6,12 @@ class CurrentNodeTagTest < Test::Unit::TestCase set_fixture_class :current_node_tags => :NodeTag def test_tag_count - assert_equal 3, NodeTag.count + assert_equal 6, NodeTag.count node_tag_count(:visible_node, 1) node_tag_count(:invisible_node, 1) node_tag_count(:used_node_1, 1) + node_tag_count(:used_node_2, 1) + node_tag_count(:node_with_versions, 2) end def node_tag_count (node, count)