Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3519)

Unified Diff: chrome/browser/network_time/network_time_tracker_unittest.cc

Issue 296453005: Componentize chrome/browser/network_time (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix iOS Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/network_time/network_time_tracker.cc ('k') | chrome/browser/prefs/browser_prefs.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/network_time/network_time_tracker_unittest.cc
diff --git a/chrome/browser/network_time/network_time_tracker_unittest.cc b/chrome/browser/network_time/network_time_tracker_unittest.cc
deleted file mode 100644
index 6cd99724e1910ac641fd059b08fbe4bc8fc7d969..0000000000000000000000000000000000000000
--- a/chrome/browser/network_time/network_time_tracker_unittest.cc
+++ /dev/null
@@ -1,159 +0,0 @@
-// Copyright 2013 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 "chrome/browser/network_time/network_time_tracker.h"
-
-#include <math.h>
-
-#include "base/compiler_specific.h"
-#include "base/prefs/testing_pref_service.h"
-#include "base/time/tick_clock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-
-// These are all in milliseconds.
-const int64 kLatency1 = 50;
-const int64 kLatency2 = 500;
-
-// Can not be smaller than 15, it's the NowFromSystemTime() resolution.
-const int64 kResolution1 = 17;
-const int64 kResolution2 = 177;
-
-const int64 kPseudoSleepTime1 = 500000001;
-const int64 kPseudoSleepTime2 = 1888;
-
-// A custom tick clock that will return an arbitrary time.
-class TestTickClock : public base::TickClock {
- public:
- explicit TestTickClock(base::TimeTicks* ticks_now) : ticks_now_(ticks_now) {}
- virtual ~TestTickClock() {}
-
- virtual base::TimeTicks NowTicks() OVERRIDE {
- return *ticks_now_;
- }
-
- private:
- base::TimeTicks* ticks_now_;
-};
-
-} // namespace
-
-class NetworkTimeTrackerTest : public testing::Test {
- public:
- virtual ~NetworkTimeTrackerTest() {}
-
- virtual void SetUp() OVERRIDE {
- NetworkTimeTracker::RegisterPrefs(pref_service_.registry());
-
- now_ = base::Time::NowFromSystemTime();
- network_time_tracker_.reset(new NetworkTimeTracker(
- scoped_ptr<base::TickClock>(new TestTickClock(&ticks_now_)),
- &pref_service_));
- }
-
- base::Time Now() const {
- return now_ + (ticks_now_ - base::TimeTicks());
- }
-
- base::TimeTicks TicksNow() const {
- return ticks_now_;
- }
-
- void AddToTicksNow(int64 ms) {
- ticks_now_ += base::TimeDelta::FromMilliseconds(ms);
- }
-
- // Updates the notifier's time with the specified parameters.
- void UpdateNetworkTime(const base::Time& network_time,
- const base::TimeDelta& resolution,
- const base::TimeDelta& latency,
- const base::TimeTicks& post_time) {
- network_time_tracker_->UpdateNetworkTime(
- network_time, resolution, latency, post_time);
- }
-
- // Ensures the network time tracker has a network time and that the
- // disparity between the network time version of |ticks_now_| and the actual
- // |ticks_now_| value is within the uncertainty (should always be true
- // because the network time notifier uses |ticks_now_| for the tick clock).
- testing::AssertionResult ValidateExpectedTime() const {
- base::Time network_time;
- base::TimeDelta uncertainty;
- if (!network_time_tracker_->GetNetworkTime(TicksNow(),
- &network_time,
- &uncertainty))
- return testing::AssertionFailure() << "Failed to get network time.";
- if (fabs(static_cast<double>(Now().ToInternalValue() -
- network_time.ToInternalValue())) >
- static_cast<double>(uncertainty.ToInternalValue())) {
- return testing::AssertionFailure()
- << "Expected network time not within uncertainty.";
- }
- return testing::AssertionSuccess();
- }
-
- NetworkTimeTracker* network_time_tracker() {
- return network_time_tracker_.get();
- }
-
- private:
- // Used in building the current time that TestTickClock reports. See Now()
- // for details.
- base::Time now_;
- base::TimeTicks ticks_now_;
-
- TestingPrefServiceSimple pref_service_;
-
- // The network time tracker being tested.
- scoped_ptr<NetworkTimeTracker> network_time_tracker_;
-};
-
-// Should not return a value before UpdateNetworkTime gets called.
-TEST_F(NetworkTimeTrackerTest, Uninitialized) {
- base::Time network_time;
- base::TimeDelta uncertainty;
- EXPECT_FALSE(network_time_tracker()->GetNetworkTime(base::TimeTicks(),
- &network_time,
- &uncertainty));
-}
-
-// Verify that the the tracker receives and properly handles updates to the
-// network time.
-TEST_F(NetworkTimeTrackerTest, NetworkTimeUpdates) {
- UpdateNetworkTime(
- Now(),
- base::TimeDelta::FromMilliseconds(kResolution1),
- base::TimeDelta::FromMilliseconds(kLatency1),
- TicksNow());
- EXPECT_TRUE(ValidateExpectedTime());
-
- // Fake a wait for kPseudoSleepTime1 to make sure we keep tracking.
- AddToTicksNow(kPseudoSleepTime1);
- EXPECT_TRUE(ValidateExpectedTime());
-
- // Update the time with a new now value and kLatency2.
- UpdateNetworkTime(
- Now(),
- base::TimeDelta::FromMilliseconds(kResolution2),
- base::TimeDelta::FromMilliseconds(kLatency2),
- TicksNow());
-
- // Fake a wait for kPseudoSleepTime2 to make sure we keep tracking still.
- AddToTicksNow(kPseudoSleepTime2);
- EXPECT_TRUE(ValidateExpectedTime());
-
- // Fake a long delay between update task post time and the network notifier
- // updating its network time. The uncertainty should account for the
- // disparity.
- base::Time old_now = Now();
- base::TimeTicks old_ticks = TicksNow();
- AddToTicksNow(kPseudoSleepTime2);
- UpdateNetworkTime(
- old_now,
- base::TimeDelta::FromMilliseconds(kResolution2),
- base::TimeDelta::FromMilliseconds(kLatency2),
- old_ticks);
- EXPECT_TRUE(ValidateExpectedTime());
-}
« no previous file with comments | « chrome/browser/network_time/network_time_tracker.cc ('k') | chrome/browser/prefs/browser_prefs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698