]> git.openstreetmap.org Git - rails.git/commitdiff
Fixed bug in changeset queries
authorMatt Amos <zerebubuth@gmail.com>
Tue, 15 Mar 2011 02:00:50 +0000 (02:00 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 15 Mar 2011 13:56:55 +0000 (13:56 +0000)
The 'or' condition needed to be bracketed within larger 'and' expression.

app/controllers/changeset_controller.rb
test/functional/changeset_controller_test.rb

index 29b9c787bc447706ef04a26fe4501b58ac947bee..5a4dc36fb62a137d95a2dc1db2a858e61c22c990 100644 (file)
@@ -436,7 +436,7 @@ private
   # query changesets which are closed
   # ('closed at' time has passed or changes limit is hit)
   def conditions_closed(closed)
-    return closed.nil? ? nil : ['closed_at < ? or num_changes > ?', 
+    return closed.nil? ? nil : ['(closed_at < ? or num_changes > ?)', 
                                 Time.now.getutc, Changeset::MAX_ELEMENTS]
   end
 
index 3d963b4714a57d663fe8dcce8416b14a0ee75702..01600c2d99d47466368c5fc99fcc60f7eb2981ff 100644 (file)
@@ -1462,6 +1462,14 @@ EOF
     get :query, :closed => 'true'
     assert_response :success, "can't get changesets by closed-ness"
     assert_changesets [3,5,6,7]
+
+    get :query, :closed => 'true', :user => users(:normal_user).id
+    assert_response :success, "can't get changesets by closed-ness and user"
+    assert_changesets [3,6]
+
+    get :query, :closed => 'true', :user => users(:public_user).id
+    assert_response :success, "can't get changesets by closed-ness and user"
+    assert_changesets [7]
   end
 
   ##