1f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko// Copyright 2014 The Chromium Authors. All rights reserved. 2f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko// Use of this source code is governed by a BSD-style license that can be 3f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko// found in the LICENSE file. 4f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko 5f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko#ifndef BASE_TIMER_MOCK_TIMER_H_ 6f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko#define BASE_TIMER_MOCK_TIMER_H_ 7f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko 8f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko#include "base/timer/timer.h" 9f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko 10f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenkonamespace base { 11f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko 12f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenkoclass BASE_EXPORT MockTimer : public Timer { 13f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko public: 14f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko MockTimer(bool retain_user_task, bool is_repeating); 15f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko MockTimer(const tracked_objects::Location& posted_from, 16f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko TimeDelta delay, 17f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko const base::Closure& user_task, 18f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko bool is_repeating); 19f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko ~MockTimer() override; 20f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko 21f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko // base::Timer implementation. 22f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko bool IsRunning() const override; 23f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko base::TimeDelta GetCurrentDelay() const override; 24f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko void Start(const tracked_objects::Location& posted_from, 25f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko base::TimeDelta delay, 26f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko const base::Closure& user_task) override; 27f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko void Stop() override; 28f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko void Reset() override; 29f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko 30f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko // Testing methods. 31f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko void Fire(); 32f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko 33f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko private: 34f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko base::Closure user_task_; 35f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko TimeDelta delay_; 36f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko bool is_running_; 37f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko}; 38f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko 39f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko} // namespace base 40f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko 41f6024733c0d1eed88f68520b5e6a20b96e212ad6Alex Vakulenko#endif // BASE_TIMER_MOCK_TIMER_H_ 42