Index: webkit/plugins/ppapi/time_conversion_unittest.cc |
=================================================================== |
--- webkit/plugins/ppapi/time_conversion_unittest.cc (revision 0) |
+++ webkit/plugins/ppapi/time_conversion_unittest.cc (revision 0) |
@@ -0,0 +1,52 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include <math.h> |
+#include <stdlib.h> |
+ |
+#include "testing/gtest/include/gtest/gtest.h" |
+#include "webkit/plugins/ppapi/time_conversion.h" |
+ |
+namespace webkit { |
+namespace ppapi { |
+ |
+// Slop we'll allow in two Time "internal values" to consider them equal. |
+// Double conversion can introduce rounding errors. The internal values are in |
+// microseconds, so an error here is very small. |
+static const int kTimeInternalValueSlop = 2; |
+ |
+// Same as above in double-precision seconds units. |
+static const double kTimeSecondsSlop = |
+ static_cast<double>(kTimeInternalValueSlop) / |
+ base::Time::kMicrosecondsPerSecond; |
+ |
+TEST(TimeConversion, Time) { |
+ // Should be able to round-trip. |
+ base::Time now = base::Time::Now(); |
+ base::Time converted = PPTimeToTime(TimeToPPTime(now)); |
+ EXPECT_GE(kTimeInternalValueSlop, |
+ abs(static_cast<int>((converted - now).ToInternalValue()))); |
+ |
+ // Units should be in seconds. |
+ base::Time one_second_from_now = now + base::TimeDelta::FromSeconds(1); |
+ EXPECT_EQ(1.0, TimeToPPTime(one_second_from_now) - TimeToPPTime(now)); |
+} |
+ |
+TEST(TimeConversion, EventTime) { |
+ // Should be able to round-trip. |
+ base::Time now = base::Time::Now(); |
+ double event_now = now.ToDoubleT(); |
+ double converted = EventTimeToPPTimeTicks(PPTimeTicksToEventTime(event_now)); |
+ EXPECT_GE(kTimeSecondsSlop, fabs(converted - event_now)); |
+ |
+ // Units should be in seconds. |
+ base::Time one_second_from_now = now + base::TimeDelta::FromSeconds(1); |
+ double event_one_second_from_now = one_second_from_now.ToDoubleT(); |
+ EXPECT_GE(kTimeSecondsSlop, |
+ 1.0 - EventTimeToPPTimeTicks(event_one_second_from_now) - |
+ EventTimeToPPTimeTicks(event_now)); |
+} |
+ |
+} // namespace ppapi |
+} // namespace webkit |
Property changes on: webkit/plugins/ppapi/time_conversion_unittest.cc |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |