]> git.openstreetmap.org Git - rails.git/blobdiff - test/test_helper.rb
Use utility method for error reporting.
[rails.git] / test / test_helper.rb
index ea6e91abe5ce25f79efb55892c8acea85cb9b468..5dd319e02a05e1d1a40391b40f18f8b62b8febfc 100644 (file)
@@ -25,43 +25,52 @@ class Test::Unit::TestCase
   # then set this back to true.
   self.use_instantiated_fixtures  = false
 
+
   # Load standard fixtures needed to test API methods
   def self.api_fixtures
     #print "setting up the api_fixtures"
     fixtures :users, :changesets, :changeset_tags
 
     fixtures :current_nodes, :nodes
-    set_fixture_class :current_nodes => Node
-    set_fixture_class :nodes => OldNode
+    set_fixture_class :current_nodes => 'Node'
+    set_fixture_class :nodes => 'OldNode'
 
     fixtures  :current_node_tags,:node_tags
-    set_fixture_class :current_node_tags => NodeTag
-    set_fixture_class :node_tags => OldNodeTag
-
-    fixtures :current_ways, :current_way_nodes, :current_way_tags
-    set_fixture_class :current_ways => Way
-    set_fixture_class :current_way_nodes => WayNode
-    set_fixture_class :current_way_tags => WayTag
-
-    fixtures :ways, :way_nodes, :way_tags
-    set_fixture_class :ways => OldWay
-    set_fixture_class :way_nodes => OldWayNode
-    set_fixture_class :way_tags => OldWayTag
-
-    fixtures :current_relations, :current_relation_members, :current_relation_tags
-    set_fixture_class :current_relations => Relation
-    set_fixture_class :current_relation_members => RelationMember
-    set_fixture_class :current_relation_tags => RelationTag
-
-    fixtures :relations, :relation_members, :relation_tags
-    set_fixture_class :relations => OldRelation
-    set_fixture_class :relation_members => OldRelationMember
-    set_fixture_class :relation_tags => OldRelationTag
+    set_fixture_class :current_node_tags => 'NodeTag'
+    set_fixture_class :node_tags => 'OldNodeTag'
+
+    fixtures :current_ways
+    set_fixture_class :current_ways => 'Way'
+
+    fixtures :current_way_nodes, :current_way_tags
+    set_fixture_class :current_way_nodes => 'WayNode'
+    set_fixture_class :current_way_tags => 'WayTag'
+
+    fixtures :ways
+    set_fixture_class :ways => 'OldWay'
+
+    fixtures :way_nodes, :way_tags
+    set_fixture_class :way_nodes => 'OldWayNode'
+    set_fixture_class :way_tags => 'OldWayTag'
+
+    fixtures :current_relations
+    set_fixture_class :current_relations => 'Relation'
+
+    fixtures :current_relation_members, :current_relation_tags
+    set_fixture_class :current_relation_members => 'RelationMember'
+    set_fixture_class :current_relation_tags => 'RelationTag'
+
+    fixtures :relations
+    set_fixture_class :relations => 'OldRelation'
+
+    fixtures :relation_members, :relation_tags
+    set_fixture_class :relation_members => 'OldRelationMember'
+    set_fixture_class :relation_tags => 'OldRelationTag'
     
     fixtures :gpx_files, :gps_points, :gpx_file_tags
-    set_fixture_class :gpx_files => Trace
-    set_fixture_class :gps_points => Tracepoint
-    set_fixture_class :gpx_file_tags => Tracetag
+    set_fixture_class :gpx_files => 'Trace'
+    set_fixture_class :gps_points => 'Tracepoint'
+    set_fixture_class :gpx_file_tags => 'Tracetag'
   end
 
   ##
@@ -106,5 +115,26 @@ class Test::Unit::TestCase
     assert_equal a.tags, b.tags, "tags on node #{a.id}"
   end
 
+  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
+  
+  # Used to check that the error header and the forbidden responses are given
+  # when the owner of the changset has their data not marked as public
+  def assert_require_public_data(msg = "Shouldn't be able to use API when the user's data is not public")
+    assert_response :forbidden, msg
+    assert_equal @response.headers['Error'], "You must make your edits public to upload new data", "Wrong error message"
+  end
+  
+  # Not sure this is the best response we could give
+  def assert_inactive_user(msg = "an inactive user shouldn't be able to access the API")
+    assert_response :unauthorized, msg
+    #assert_equal @response.headers['Error'], ""
+  end
+  
   # Add more helper methods to be used by all tests here...
 end