spec/timezone_spec.rb in trackoid-0.3.3 vs spec/timezone_spec.rb in trackoid-0.3.4

- old
+ new

@@ -243,7 +243,48 @@ # Data from 2011-01-02 00:00:00 UTC up to 2011-01-02 23:59:59 UTC visits.last.hourly.should == [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] end + it "A value set at 10am on Madrid should appear as 01am on San Francisco" do + ENV["TZ"] = "Europe/Madrid" + + time = Time.parse("2011-04-19 10:00:00") + @mock.visits.inc(time) + visits = @mock.visits.on(time) + visits.hourly.should == [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + + ENV["TZ"] = "America/Los_Angeles" + time = Time.parse("2011-04-19 01:00:00") + visits = @mock.visits.on(time) + visits.hourly.should == [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + end + + it "A value set at 10am on Madrid should appear as 01am on San Francisco (Using offsets)" do + ENV["TZ"] = "Europe/Madrid" + + time = Time.parse("2011-04-19 10:00:00").getlocal(2.hours) + @mock.visits.inc(time) + visits = @mock.visits.on(time) + visits.hourly.should == [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + + time = Time.parse("2011-04-19 10:00:00").getlocal(-7.hours) + visits = @mock.visits.on(time) + visits.hourly.should == [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + end + + it "A value set now on Madrid should appear shifted 9 hours on San Francisco (Using offsets)" do + ENV["TZ"] = "Europe/Madrid" + + now = Time.now + time = now.getlocal(2.hours) + @mock.visits.inc(time) + visits = @mock.visits.on(time) + visits.hourly.should == Array.new(24, 0).tap {|a| a[time.hour] = 1} + + time = now.getlocal(-7.hours) + visits = @mock.visits.on(time) + visits.hourly.should == Array.new(24, 0).tap {|a| a[time.hour] = 1} + end + end end