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

Side by Side Diff: base/test/mock_time_provider.h

Issue 885443002: Roll Chrome into Mojo. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebase to ToT mojo Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « base/test/launcher/unit_test_launcher.cc ('k') | base/test/mock_time_provider.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 // TODO(akalin): Change all users of this class to use SimpleTestClock
6 // or SimpleTestTickClock and remove this class.
7
8 // A helper class used to mock out calls to the static method base::Time::Now.
9 //
10 // Example usage:
11 //
12 // typedef base::Time(TimeProvider)();
13 // class StopWatch {
14 // public:
15 // StopWatch(TimeProvider* time_provider);
16 // void Start();
17 // base::TimeDelta Stop();
18 // private:
19 // TimeProvider* time_provider_;
20 // ...
21 // }
22 //
23 // Normally, you would instantiate a StopWatch with the real Now function:
24 //
25 // StopWatch watch(&base::Time::Now);
26 //
27 // But when testing, you want to instantiate it with
28 // MockTimeProvider::StaticNow, which calls an internally mocked out member.
29 // This allows you to set expectations on the Now method. For example:
30 //
31 // TEST_F(StopWatchTest, BasicTest) {
32 // InSequence s;
33 // StrictMock<MockTimeProvider> mock_time;
34 // EXPECT_CALL(mock_time, Now())
35 // .WillOnce(Return(Time::FromDoubleT(4)));
36 // EXPECT_CALL(mock_time, Now())
37 // .WillOnce(Return(Time::FromDoubleT(10)));
38 //
39 // StopWatch sw(&MockTimeProvider::StaticNow);
40 // sw.Start(); // First call to Now.
41 // TimeDelta elapsed = sw.stop(); // Second call to Now.
42 // ASSERT_EQ(elapsed, TimeDelta::FromSeconds(6));
43 // }
44
45 #ifndef BASE_TEST_MOCK_TIME_PROVIDER_H_
46 #define BASE_TEST_MOCK_TIME_PROVIDER_H_
47
48 #include "base/time/time.h"
49 #include "testing/gmock/include/gmock/gmock.h"
50
51 namespace base {
52
53 class MockTimeProvider {
54 public:
55 MockTimeProvider();
56 ~MockTimeProvider();
57
58 MOCK_METHOD0(Now, Time());
59
60 static Time StaticNow();
61
62 private:
63 static MockTimeProvider* instance_;
64 DISALLOW_COPY_AND_ASSIGN(MockTimeProvider);
65 };
66
67 } // namespace base
68
69 #endif // BASE_TEST_MOCK_TIME_PROVIDER_H_
OLDNEW
« no previous file with comments | « base/test/launcher/unit_test_launcher.cc ('k') | base/test/mock_time_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698