From: Shaun McDonald Date: Sat, 3 Apr 2010 21:02:20 +0000 (+0000) Subject: Adding timecop as a gem dependency when in development env. This allows for time... X-Git-Tag: live~6926^2~34 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/9dabe690326c7e952ae0cfb38ee3fcd423d2de44 Adding timecop as a gem dependency when in development env. This allows for time based tests to be accurate/consistent. It will stop the random error on the api_controller_test#test_changes_simple, when you are on a slow machine/have bad timing. --- diff --git a/config/environment.rb b/config/environment.rb index 539af83b2..724ceebbb 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -54,6 +54,9 @@ Rails::Initializer.run do |config| config.gem 'httpclient' config.gem 'SystemTimer', :version => '>= 1.1.3', :lib => 'system_timer' config.gem 'sanitize' + if Rails.env == "development" + config.gem 'timecop' + end # Only load the plugins named here, in the order given. By default, all plugins # in vendor/plugins are loaded in alphabetical order. diff --git a/test/functional/api_controller_test.rb b/test/functional/api_controller_test.rb index ce4020ca7..e1543726f 100644 --- a/test/functional/api_controller_test.rb +++ b/test/functional/api_controller_test.rb @@ -199,17 +199,18 @@ class ApiControllerTest < ActionController::TestCase # http://wiki.openstreetmap.org/wiki/Rails#Installing_the_quadtile_functions # or by looking at the readme in db/README def test_changes_simple + Timecop.freeze(Time.parse('2010-04-03 10:55:00')) get :changes assert_response :success #print @response.body # As we have loaded the fixtures, we can assume that there are no - # changes recently + # changes at the time we have frozen at now = Time.now.getutc hourago = now - 1.hour - # Note that this may fail on a very slow machine, so isn't a great test assert_select "osm[version='#{API_VERSION}'][generator='#{GENERATOR}']:root", :count => 1 do assert_select "changes[starttime='#{hourago.xmlschema}'][endtime='#{now.xmlschema}']", :count => 1 end + Timecop.return end def test_changes_zoom_invalid