Remove duplication that is in the test helper. Adding tests for the passing of no...
authorShaun McDonald <shaun@shaunmcdonald.me.uk>
Mon, 13 Apr 2009 00:04:24 +0000 (00:04 +0000)
committerShaun McDonald <shaun@shaunmcdonald.me.uk>
Mon, 13 Apr 2009 00:04:24 +0000 (00:04 +0000)
app/models/acl.rb
config/database.yml
config/initializers/sql_session_store.rb
db/migrate/025_add_end_time_to_changesets.rb
test/functional/changeset_controller_test.rb

index 5fb99b9e5bfd7bbfeb0f93a3c64da86ee19846f9..dbcb38993b6b905f0e5be691147387488c6f5023 100644 (file)
@@ -1,12 +1,12 @@
 class Acl < ActiveRecord::Base
   def self.find_by_address(address, options)
-    self.with_scope(:find => {:conditions => ["inet_aton(?) & netmask = address", address]}) do
+    self.with_scope(:find => {:conditions => ["? & netmask = address", address]}) do
       return self.find(:first, options)
     end
   end
 
   def self.find_all_by_address(address, options)
-    self.with_scope(:find => {:conditions => ["inet_aton(?) & netmask = address", address]}) do
+    self.with_scope(:find => {:conditions => ["? & netmask = address", address]}) do
       return self.find(:all, options)
     end
   end
index cc3f9a1a5fb26e4fd5b2186728c3e4d5c6b45127..2c61345b1ec7bf3a18aa50c3a372d5bf5ceaa456 100644 (file)
 # And be sure to use new-style password hashing:
 #   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
 development:
-  adapter: mysql
+  adapter: postgresql
   database: openstreetmap
-  username: openstreetmap
-  password: openstreetmap
-  host: localhost
+  username: shaunmcdonald
+  password: postgres
+  #host: localhost
   encoding: utf8
 
 # Warning: The database defined as 'test' will be erased and
 # re-generated from your development database when you run 'rake'.
 # Do not set this db to the same as development or production.
 test:
-  adapter: mysql
+  adapter: postgresql
   database: osm_test
-  username: osm_test
-  password: osm_test
-  host: localhost
+  username: shaunmcdonald
+  password: postgres
+  #host: localhost
   encoding: utf8
 
 production:
-  adapter: mysql
+  adapter: postgresql
   database: osm
   username: osm
   password: osm
index fd6c11d4447b2f66bfae1fcf8e861369201e9b2c..4325c6d4c717ab1f090760687c78294b3fcd6404 100644 (file)
@@ -1,2 +1,2 @@
 # Use the MySQL interface for SqlSessionStore
-SqlSessionStore.session_class = MysqlSession
+SqlSessionStore.session_class = PostgresqlSession
index b87ce3fdebabcf12abd2d1a192eb36547b9f155b..553fd9e2ac9a48ae0a7d69b8d6af5766e1368332 100644 (file)
@@ -7,8 +7,8 @@ class AddEndTimeToChangesets < ActiveRecord::Migration
     # it appears that execute will only accept string arguments, so
     # this is an ugly, ugly hack to get some sort of mysql/postgres
     # independence. now i have to go wash my brain with bleach.
-    execute("update changesets set closed_at=(now()-'1 hour') where open=(1=0)")
-    execute("update changesets set closed_at=(now()+'1 hour') where open=(1=1)")
+    #execute("update changesets set closed_at=(now()-'1 hour') where open=(1=0)")
+    #execute("update changesets set closed_at=(now()+'1 hour') where open=(1=1)")
 
     # remove the open column as it is unnecessary now and denormalises 
     # the table.
index 6465c894de77d95a09008feb53daffb3460d3133..932d685bb49fa67041af4f3001cc80a194ea0408 100644 (file)
@@ -4,14 +4,6 @@ require 'changeset_controller'
 class ChangesetControllerTest < ActionController::TestCase
   api_fixtures
 
-  def basic_authorization(user, pass)
-    @request.env["HTTP_AUTHORIZATION"] = "Basic %s" % Base64.encode64("#{user}:#{pass}")
-  end
-
-  def content(c)
-    @request.env["RAW_POST_DATA"] = c.to_s
-  end
-  
   # -----------------------
   # Test simple changeset creation
   # -----------------------
@@ -48,6 +40,18 @@ class ChangesetControllerTest < ActionController::TestCase
     assert_response :bad_request, "creating a invalid changeset should fail"
   end
 
+  def test_create_invalid_no_content
+    basic_authorization "test@openstreetmap.org", "test"
+    put :create
+    assert_response :bad_request, "creating a changeset with no content should fail"
+  end
+  
+  def test_create_wrong_method
+    basic_authorization "test@openstreetmap.org", "test"
+    get :create
+    assert_response :method_not_allowed
+  end
+    
   ##
   # check that the changeset can be read and returns the correct
   # document structure.
@@ -248,7 +252,9 @@ EOF
       content "<osm><changeset>" +
         "<tag k='created_by' v='osm test suite checking changesets'/>" + 
         "</changeset></osm>"
-      put :create
+      assert_difference('Changeset.count', 1) do
+        put :create
+      end
       assert_response :success
       changeset_id = @response.body.to_i
     end