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