]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/changeset_controller_test.rb
Add extra visibility options for GPS traces, and enhance the API call
[rails.git] / test / functional / changeset_controller_test.rb
index 458a5adf17c15182f5031d6981197c9e275c0f24..46f8a1a6a6990ed0a34658018399a06db8f312b8 100644 (file)
@@ -128,7 +128,7 @@ class ChangesetControllerTest < ActionController::TestCase
     # 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}.")
+           "changeset should be closed now (#{cs.closed_at} > #{Time.now.getutc}.")
   end
 
   ##
@@ -670,7 +670,7 @@ EOF
   content diff
   post :upload, :id => cs_id
   assert_response :bad_request, "Shouldn't be able to upload a diff with the action ping"
-  assert_equal @response.body, "Unknown action ping, choices are create, modify, delete."
+  assert_equal @response.body, "Unknown action ping, choices are create, modify, delete"
   end
 
   ##
@@ -1147,6 +1147,21 @@ EOF
     assert_select "osmChange>modify>way", 1
   end
 
+  def test_changeset_download
+    get :download, :id => changesets(:normal_user_first_change).id
+    assert_response :success
+    assert_template nil
+    #print @response.body
+    # FIXME needs more assert_select tests
+    assert_select "osmChange[version='#{API_VERSION}'][generator='#{GENERATOR}']" do
+      assert_select "create", :count => 5
+      assert_select "create>node[id=#{nodes(:used_node_2).id}][visible=#{nodes(:used_node_2).visible?}][version=#{nodes(:used_node_2).version}]" do
+        assert_select "tag[k=#{node_tags(:t3).k}][v=#{node_tags(:t3).v}]"
+      end
+      assert_select "create>node[id=#{nodes(:visible_node).id}]"
+    end
+  end
+  
   ##
   # check that the bounding box of a changeset gets updated correctly
   ## FIXME: This should really be moded to a integration test due to the with_controller
@@ -1295,7 +1310,7 @@ EOF
 
     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,6]
+    assert_changesets [1,5,6]
 
     get :query, :open => 'true'
     assert_response :success, "can't get changesets by open-ness"
@@ -1475,11 +1490,11 @@ EOF
   def test_list
     changesets = Changeset.find(:all, :order => "created_at DESC", :conditions => ['min_lat IS NOT NULL'], :limit=> 20)
     assert changesets.size <= 20
-    get :list
+    get :list, {:format => "html"}
     assert_response :success
     assert_template "list"
     # Now check that all 20 (or however many were returned) changesets are in the html
-    assert_select "h1", :text => "Recent Changes", :count => 1
+    assert_select "h1", :text => "Changesets", :count => 1
     assert_select "table[id='changeset_list'] tr", :count => changesets.size + 1
     changesets.each do |changeset|
       # FIXME this test needs rewriting - test for table contents
@@ -1490,16 +1505,16 @@ EOF
   # Checks the display of the user changesets listing
   def test_list_user
     user = users(:public_user)
-    get :list_user, {:display_name => user.display_name}
+    get :list, {:format => "html", :display_name => user.display_name}
     assert_response :success
-    assert_template 'list_user'
+    assert_template "changeset/_user"
     ## FIXME need to add more checks to see which if edits are actually shown if your data is public
   end
   
   ##
   # Check the not found of the list user changesets
   def test_list_user_not_found
-    get :list_user, {:display_name => "Some random user"}
+    get :list, {:format => "html", :display_name => "Some random user"}
     assert_response :not_found
     assert_template 'user/no_such_user'
   end