More trace tests

This commit is contained in:
Shaun McDonald 2009-05-06 14:58:48 +00:00
parent 30bbca0f3b
commit d10931effa
2 changed files with 84 additions and 4 deletions

View file

@ -1,4 +1,4 @@
first_trace_file: public_trace_file:
id: 1 id: 1
user_id: 1 user_id: 1
visible: true visible: true
@ -10,3 +10,16 @@ first_trace_file:
public: true public: true
description: This is a trace description: This is a trace
inserted: true inserted: true
anon_trace_file:
id: 2
user_id: 2
visible: false
name: Private Trace.gpx
size: 123
latitude: 51.3
longitude: -0.56
timestamp: "2009-05-06 13:34:34"
public: false
description: This is an anonymous trace
inserted: true

View file

@ -1,8 +1,75 @@
require File.dirname(__FILE__) + '/../test_helper' require File.dirname(__FILE__) + '/../test_helper'
class TraceControllerTest < ActionController::TestCase class TraceControllerTest < ActionController::TestCase
# Replace this with your real tests. fixtures :users, :gpx_files
def test_truth set_fixture_class :gpx_files => 'Trace'
assert true
# Check that the list of changesets is displayed
def test_list
get :list
assert_response :success
assert_template 'list'
end
# Check that the rss loads
def test_rss
get :georss
assert_rss_success
get :georss, :display_name => users(:normal_user).display_name
assert_rss_success
end
def assert_rss_success
assert_response :success
assert_template nil
assert_equal "application/rss+xml", @response.content_type
end
# Check getting a specific trace through the api
def test_api_details
# First with no auth
get :api_details, :id => gpx_files(:public_trace_file).id
assert_response :unauthorized
# Now with some other user, which should work since the trace is public
basic_authorization(users(:public_user).display_name, "test")
get :api_details, :id => gpx_files(:public_trace_file).id
assert_response :success
# And finally we should be able to do it with the owner of the trace
basic_authorization(users(:normal_user).display_name, "test")
get :api_details, :id => gpx_files(:public_trace_file).id
assert_response :success
end
# Check an anoymous trace can't be specifically fetched by another user
def test_api_details_anon
# Furst with no auth
get :api_details, :id => gpx_files(:anon_trace_file).id
assert_response :unauthorized
# Now try with another user, which shouldn't work since the trace is anon
basic_authorization(users(:normal_user).display_name, "test")
get :api_details, :id => gpx_files(:anon_trace_file).id
assert_response :forbidden
# And finally we should be able to get the trace details with the trace owner
basic_authorization(users(:public_user).display_name, "test")
get :api_details, :id => gpx_files(:anon_trace_file).id
assert_response :success
end
# Check the api details for a trace that doesn't exist
def test_api_details_not_found
# Try first with no auth, as it should requure it
get :api_details, :id => 0
assert_response :unauthorized
# Login, and try again
basic_authorization(users(:public_user).display_name, "test")
get :api_details, :id => 0
assert_response :not_found
end end
end end