]> git.openstreetmap.org Git - rails.git/blobdiff - test/functional/browse_controller_test.rb
Fixed bug in changeset closing and querying where the number of elements exceeded...
[rails.git] / test / functional / browse_controller_test.rb
index 81dbede570928477d3bab41f73d944d927855165..c4d7a5ae4d0ff4f6a9dc59fb9b75164ce8ee3751 100644 (file)
@@ -1,19 +1,8 @@
 require File.dirname(__FILE__) + '/../test_helper'
 require 'browse_controller'
 
-# Re-raise errors caught by the controller.
-class BrowseController; def rescue_action(e) raise e end; end
-
-  class BrowseControllerTest < Test::Unit::TestCase
+class BrowseControllerTest < ActionController::TestCase
   api_fixtures
-  
-
-
-  def setup
-    @controller = BrowseController.new
-    @request    = ActionController::TestRequest.new
-    @response   = ActionController::TestResponse.new
-  end
 
   def basic_authorization(user, pass)
     @request.env["HTTP_AUTHORIZATION"] = "Basic %s" % Base64.encode64("#{user}:#{pass}")
@@ -29,20 +18,27 @@ class BrowseController; def rescue_action(e) raise e end; end
   
   end
   
-  # This should display the last 20 nodes that were edited.
+  # This should display the last 20 changesets closed.
   def test_index
-    @nodes = Node.find(:all, :order => "timestamp DESC", :limit => 20)
-    assert @nodes.size <= 20
+    @changesets = Changeset.find(:all, :order => "closed_at DESC", :conditions => ['closed_at < ?', DateTime.now], :limit=> 20)
+    assert @changesets.size <= 20
     get :index
     assert_response :success
     assert_template "index"
-    # Now check that all 20 (or however many were returned) nodes are in the html
-    assert_select "h2", :text => "#{@nodes.size} Recently Changed Nodes", :count => 1
-    assert_select "ul[id='recently_changed'] li a", :count => @nodes.size
-    @nodes.each do |node|
-      name = node.tags_as_hash['name'].to_s
-      name = "(No name)" if name.length == 0
-      assert_select "ul[id='recently_changed'] li a[href=/browse/node/#{node.id}]", :text => "#{name} - #{node.id} (#{node.version})"
+    # Now check that all 20 (or however many were returned) changesets are in the html
+    assert_select "h2", :text => "#{@changesets.size} Recently Closed Changesets", :count => 1
+    assert_select "ul[id='recently_changed'] li a", :count => @changesets.size
+    @changesets.each do |changeset|
+      if changeset.user.data_public?
+        user = changeset.user.display_name
+      else
+        user = "(anonymous)"
+      end
+    
+      cmt = changeset.tags_as_hash['comment'].to_s
+      cmt = "(no comment)" if cmt.length == 0
+      text = "#{changeset.id} by #{user} - #{cmt}"
+      assert_select "ul[id='recently_changed'] li a[href=/browse/changeset/#{changeset.id}]", :text => text
     end
   end