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 8 using ::testing::DefaultValue; 9 10 namespace base { 11 12 MockTimeProvider* MockTimeProvider::instance_ = NULL; 13 14 MockTimeProvider::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 21 MockTimeProvider::~MockTimeProvider() { 22 instance_ = NULL; 23 DefaultValue<Time>::Clear(); 24 } 25 26 // static 27 Time MockTimeProvider::StaticNow() { 28 return instance_->Now(); 29 } 30 31 } // namespace base 32