Test XHR rendering of pages which can load in the sidebar

This commit is contained in:
Tom Hughes 2013-12-07 17:40:19 +00:00
parent 04ad0f6251
commit 3a6dc176f8
3 changed files with 211 additions and 207 deletions

View file

@ -131,11 +131,19 @@ private
assert_raise ActionController::UrlGenerationError do assert_raise ActionController::UrlGenerationError do
get type get type
end end
assert_raise ActionController::UrlGenerationError do assert_raise ActionController::UrlGenerationError do
get type, {:id => -10} # we won't have an id that's negative get type, {:id => -10} # we won't have an id that's negative
end end
get type, {:id => id} get type, {:id => id}
assert_response :success assert_response :success
assert_template template assert_template template
assert_template :layout => "map"
xhr :get, type, {:id => id}
assert_response :success
assert_template template
assert_template :layout => "xhr"
end end
end end

View file

@ -1725,7 +1725,34 @@ EOF
def test_list def test_list
get :list, {:format => "html"} get :list, {:format => "html"}
assert_response :success assert_response :success
assert_template "changeset/history" assert_template "history"
assert_template :layout => "map"
assert_select "h2", :text => "Changesets", :count => 1
get :list, {:format => "html", :list => '1', :bbox => '-180,-90,90,180'}
assert_response :success
assert_template "list"
changesets = Changeset.
where("num_changes > 0 and min_lon is not null").
order(:created_at => :desc).
limit(20)
assert changesets.size <= 20
# Now check that all 20 (or however many were returned) changesets are in the html
assert_select "li", :count => changesets.size
changesets.each do |changeset|
# FIXME this test needs rewriting - test for table contents
end
end
##
# This should display the last 20 changesets closed.
def test_list_xhr
xhr :get, :list, {:format => "html"}
assert_response :success
assert_template "history"
assert_template :layout => "xhr"
assert_select "h2", :text => "Changesets", :count => 1 assert_select "h2", :text => "Changesets", :count => 1
get :list, {:format => "html", :list => '1', :bbox => '-180,-90,90,180'} get :list, {:format => "html", :list => '1', :bbox => '-180,-90,90,180'}
@ -1751,7 +1778,7 @@ EOF
user = users(:public_user) user = users(:public_user)
get :list, {:format => "html", :display_name => user.display_name} get :list, {:format => "html", :display_name => user.display_name}
assert_response :success assert_response :success
assert_template "changeset/history" assert_template "history"
## FIXME need to add more checks to see which if edits are actually shown if your data is public ## FIXME need to add more checks to see which if edits are actually shown if your data is public
end end
@ -1785,7 +1812,7 @@ EOF
user = users(:public_user) user = users(:public_user)
get :feed, {:format => "atom", :display_name => user.display_name} get :feed, {:format => "atom", :display_name => user.display_name}
assert_response :success assert_response :success
assert_template "changeset/list" assert_template "list"
assert_equal "application/atom+xml", response.content_type assert_equal "application/atom+xml", response.content_type
## FIXME need to add more checks to see which if edits are actually shown if your data is public ## FIXME need to add more checks to see which if edits are actually shown if your data is public
end end

View file

@ -54,12 +54,7 @@ class GeocoderControllerTest < ActionController::TestCase
'+50.06773 +14.37742', '+50.06773 +14.37742',
'+50.06773, +14.37742' '+50.06773, +14.37742'
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, 50.06773, 14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta 50.06773, @controller.params[:lat]
assert_in_delta 14.37742, @controller.params[:lon]
end end
end end
@ -72,12 +67,7 @@ class GeocoderControllerTest < ActionController::TestCase
'50.06773N 14.37742E', '50.06773N 14.37742E',
'50.06773N, 14.37742E' '50.06773N, 14.37742E'
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, 50.06773, 14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta 50.06773, @controller.params[:lat]
assert_in_delta 14.37742, @controller.params[:lon]
end end
end end
@ -90,12 +80,7 @@ class GeocoderControllerTest < ActionController::TestCase
'50.06773N 14.37742W', '50.06773N 14.37742W',
'50.06773N, 14.37742W' '50.06773N, 14.37742W'
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, 50.06773, -14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta 50.06773, @controller.params[:lat]
assert_in_delta -14.37742, @controller.params[:lon]
end end
end end
@ -108,12 +93,7 @@ class GeocoderControllerTest < ActionController::TestCase
'50.06773S 14.37742E', '50.06773S 14.37742E',
'50.06773S, 14.37742E' '50.06773S, 14.37742E'
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, -50.06773, 14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta -50.06773, @controller.params[:lat]
assert_in_delta 14.37742, @controller.params[:lon]
end end
end end
@ -126,12 +106,7 @@ class GeocoderControllerTest < ActionController::TestCase
'50.06773S 14.37742W', '50.06773S 14.37742W',
'50.06773S, 14.37742W' '50.06773S, 14.37742W'
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, -50.06773, -14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta -50.06773, @controller.params[:lat]
assert_in_delta -14.37742, @controller.params[:lon]
end end
end end
@ -147,12 +122,7 @@ class GeocoderControllerTest < ActionController::TestCase
'N50 4.064 E14 22.645', 'N50 4.064 E14 22.645',
"50° 04.064' N, 014° 22.645' E" "50° 04.064' N, 014° 22.645' E"
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, 50.06773, 14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta 50.06773, @controller.params[:lat]
assert_in_delta 14.37742, @controller.params[:lon]
end end
end end
@ -168,12 +138,7 @@ class GeocoderControllerTest < ActionController::TestCase
'N50 4.064 W14 22.645', 'N50 4.064 W14 22.645',
"50° 04.064' N, 014° 22.645' W" "50° 04.064' N, 014° 22.645' W"
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, 50.06773, -14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta 50.06773, @controller.params[:lat]
assert_in_delta -14.37742, @controller.params[:lon]
end end
end end
@ -189,12 +154,7 @@ class GeocoderControllerTest < ActionController::TestCase
'S50 4.064 E14 22.645', 'S50 4.064 E14 22.645',
"50° 04.064' S, 014° 22.645' E" "50° 04.064' S, 014° 22.645' E"
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, -50.06773, 14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta -50.06773, @controller.params[:lat]
assert_in_delta 14.37742, @controller.params[:lon]
end end
end end
@ -230,12 +190,7 @@ class GeocoderControllerTest < ActionController::TestCase
'N50 4 03.828, E14 22 38.712', 'N50 4 03.828, E14 22 38.712',
"50°4'3.828\"N 14°22'38.712\"E" "50°4'3.828\"N 14°22'38.712\"E"
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, 50.06773, 14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta 50.06773, @controller.params[:lat]
assert_in_delta 14.37742, @controller.params[:lon]
end end
end end
@ -250,12 +205,7 @@ class GeocoderControllerTest < ActionController::TestCase
'N50 4 03.828, W14 22 38.712', 'N50 4 03.828, W14 22 38.712',
"50°4'3.828\"N 14°22'38.712\"W" "50°4'3.828\"N 14°22'38.712\"W"
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, 50.06773, -14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta 50.06773, @controller.params[:lat]
assert_in_delta -14.37742, @controller.params[:lon]
end end
end end
@ -270,12 +220,7 @@ class GeocoderControllerTest < ActionController::TestCase
'S50 4 03.828, E14 22 38.712', 'S50 4 03.828, E14 22 38.712',
"50°4'3.828\"S 14°22'38.712\"E" "50°4'3.828\"S 14°22'38.712\"E"
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, -50.06773, 14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta -50.06773, @controller.params[:lat]
assert_in_delta 14.37742, @controller.params[:lon]
end end
end end
@ -290,12 +235,7 @@ class GeocoderControllerTest < ActionController::TestCase
'S50 4 03.828, W14 22 38.712', 'S50 4 03.828, W14 22 38.712',
"50°4'3.828\"S 14°22'38.712\"W" "50°4'3.828\"S 14°22'38.712\"W"
].each do |code| ].each do |code|
post :search, :query => code latlon_check code, -50.06773, -14.37742
assert_response :success
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta -50.06773, @controller.params[:lat]
assert_in_delta -14.37742, @controller.params[:lon]
end end
end end
@ -324,25 +264,54 @@ class GeocoderControllerTest < ActionController::TestCase
'CR2 6XH', 'CR2 6XH',
'DN55 1PT' 'DN55 1PT'
].each do |code| ].each do |code|
post :search, query: code search_check code, ['uk_postcode', 'osm_nominatim']
assert_response :success
assert_equal ['uk_postcode', 'osm_nominatim'], assigns(:sources)
end end
end end
## ##
# Test identification of Canadian postcodes # Test identification of Canadian postcodes
def test_identify_ca_postcode def test_identify_ca_postcode
post :search, query: 'A1B 2C3' search_check 'A1B 2C3', ['ca_postcode', 'osm_nominatim']
assert_response :success
assert_equal ['ca_postcode', 'osm_nominatim'], assigns(:sources)
end end
## ##
# Test identification fall through to the default case # Test identification fall through to the default case
def test_identify_default def test_identify_default
post :search, query: 'foo bar baz' search_check 'foo bar baz', ['osm_nominatim']
end
private
def latlon_check(query, lat, lon)
post :search, :query => query
assert_response :success assert_response :success
assert_equal ['osm_nominatim'], assigns(:sources) assert_template "search"
assert_template :layout => "map"
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta lat, @controller.params[:lat]
assert_in_delta lon, @controller.params[:lon]
xhr :post, :search, :query => query
assert_response :success
assert_template "search"
assert_template :layout => "xhr"
assert_equal ['latlon' ,'osm_nominatim_reverse', 'geonames_reverse'], assigns(:sources)
assert_nil @controller.params[:query]
assert_in_delta lat, @controller.params[:lat]
assert_in_delta lon, @controller.params[:lon]
end
def search_check(query, sources)
post :search, :query => query
assert_response :success
assert_template "search"
assert_template :layout => "map"
assert_equal sources, assigns(:sources)
xhr :post, :search, :query => query
assert_response :success
assert_template "search"
assert_template :layout => "xhr"
assert_equal sources, assigns(:sources)
end end
end end