1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/logging.h"
6#include "base/test/mock_time_provider.h"
7
8using ::testing::DefaultValue;
9
10namespace base {
11
12MockTimeProvider* MockTimeProvider::instance_ = NULL;
13
14MockTimeProvider::MockTimeProvider() {
15  DCHECK(!instance_) << "Only one instance of MockTimeProvider can exist";
16  DCHECK(!DefaultValue<Time>::IsSet());
17  instance_ = this;
18  DefaultValue<Time>::Set(Time::FromInternalValue(0));
19}
20
21MockTimeProvider::~MockTimeProvider() {
22  instance_ = NULL;
23  DefaultValue<Time>::Clear();
24}
25
26// static
27Time MockTimeProvider::StaticNow() {
28  return instance_->Now();
29}
30
31}  // namespace base
32