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