Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

104 lines (85 sloc) 3.445 kB
# encoding: utf-8
require 'test_helper'
class ConfigurationTest < Test::Unit::TestCase
def setup
Geocoder::Configuration.set_defaults
end
def test_exception_raised_on_bad_lookup_config
Geocoder::Configuration.lookup = :stoopid
assert_raises Geocoder::ConfigurationError do
Geocoder.search "something dumb"
end
end
# --- class method configuration ---
def test_configurated_by_class_method
Geocoder::Configuration.units = :mi
distance = Geocoder::Calculations.distance_between([0,0], [0,1]).round
assert_not_equal 111, distance
assert_equal 69, distance
Geocoder::Configuration.units = :km
distance = Geocoder::Calculations.distance_between([0,0], [0,1]).round
assert_equal 111, distance
assert_not_equal 69, distance
Geocoder::Configuration.distances = :spherical
angle = Geocoder::Calculations.bearing_between([50,-85], [40.750354, -73.993371]).round
assert_equal 136, angle
assert_not_equal 130, angle
Geocoder::Configuration.distances = :linear
angle = Geocoder::Calculations.bearing_between([50,-85], [40.750354, -73.993371]).round
assert_not_equal 136, angle
assert_equal 130, angle
end
# --- Geocoder#configure distances configuration ---
def test_geocoder_configuration
# DSL
Geocoder.configure do |config|
config.units = :mi
config.distances = :linear
end
assert_equal Geocoder::Configuration.units, :mi
distance = Geocoder::Calculations.distance_between([0,0], [0,1]).round
assert_not_equal 111, distance
assert_equal 69, distance
assert_equal Geocoder::Configuration.distances, :linear
angle = Geocoder::Calculations.bearing_between([50,-85], [40.750354, -73.993371]).round
assert_not_equal 136, angle
assert_equal 130, angle
# Direct
Geocoder.configure.units = :km
Geocoder.configure.distances = :spherical
assert_equal Geocoder::Configuration.units, :km
distance = Geocoder::Calculations.distance_between([0,0], [0,1]).round
assert_equal 111, distance
assert_not_equal 69, distance
assert_equal Geocoder::Configuration.distances, :spherical
angle = Geocoder::Calculations.bearing_between([50,-85], [40.750354, -73.993371]).round
assert_equal 136, angle
assert_not_equal 130, angle
end
# Geocoder per-model configuration
def test_model_configuration
Landmark.reverse_geocoded_by :latitude, :longitude, :method => :spherical, :units => :km
assert_equal :km, Landmark.geocoder_options[:units]
assert_equal :spherical, Landmark.geocoder_options[:method]
v = Landmark.new(*landmark_params(:msg))
v.latitude = 0
v.longitude = 0
assert_equal 111, v.distance_to([0,1]).round
v.latitude = 40.750354
v.longitude = -73.993371
assert_equal 136, v.bearing_from([50,-85]).round
end
def test_configuration_chain
v = Landmark.new(*landmark_params(:msg))
v.latitude = 0
v.longitude = 0
# method option > global configuration
Geocoder.configure.units = :km
assert_equal 69, v.distance_to([0,1], :mi).round
# per-model configuration > global configuration
Landmark.reverse_geocoded_by :latitude, :longitude, :method => :spherical, :units => :mi
assert_equal 69, v.distance_to([0,1]).round
# method option > per-model configuration
assert_equal 111, v.distance_to([0,1], :km).round
end
end
Jump to Line
Something went wrong with that request. Please try again.