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

Side by Side Diff: cc/trees/swap_promise_manager_unittest.cc

Issue 2323423002: cc: Add SwapPromiseManager and SurfaceSequenceGenerator. (Closed)
Patch Set: tests Created 4 years, 3 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 | « cc/trees/swap_promise_manager.cc ('k') | cc/trees/swap_promise_monitor.h » ('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 2016 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 "cc/trees/swap_promise_manager.h"
6
7 #include "base/memory/ptr_util.h"
8 #include "cc/trees/swap_promise_monitor.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 using ::testing::StrictMock;
13
14 namespace cc {
15 namespace {
16
17 class MockSwapPromiseMonitor : public SwapPromiseMonitor {
18 public:
19 explicit MockSwapPromiseMonitor(SwapPromiseManager* manager)
20 : SwapPromiseMonitor(manager, nullptr) {}
21 ~MockSwapPromiseMonitor() override {}
22
23 MOCK_METHOD0(OnSetNeedsCommitOnMain, void());
24 void OnSetNeedsRedrawOnImpl() override {}
25 void OnForwardScrollUpdateToMainThreadOnImpl() override {}
26 };
27
28 class MockSwapPromise : public SwapPromise {
29 public:
30 MockSwapPromise() {}
31 ~MockSwapPromise() override {}
32
33 void DidActivate() override {}
34 void DidSwap(CompositorFrameMetadata* metadata) override {}
35 DidNotSwapAction DidNotSwap(DidNotSwapReason reason) override {
36 return DidNotSwapAction::BREAK_PROMISE;
37 }
38 MOCK_METHOD0(OnCommit, void());
39 int64_t TraceId() const override { return 0; }
40 };
41
42 TEST(SwapPromiseManagerTest, SwapPromiseMonitors) {
43 SwapPromiseManager manager;
44 StrictMock<MockSwapPromiseMonitor> monitor(&manager);
45
46 EXPECT_CALL(monitor, OnSetNeedsCommitOnMain()).Times(2);
47
48 manager.NotifySwapPromiseMonitorsOfSetNeedsCommit();
49 manager.NotifySwapPromiseMonitorsOfSetNeedsCommit();
50 }
51
52 TEST(SwapPromiseManagerTest, SwapPromises) {
53 SwapPromiseManager manager;
54 std::unique_ptr<StrictMock<MockSwapPromise>> swap_promise =
55 base::MakeUnique<StrictMock<MockSwapPromise>>();
56 MockSwapPromise* mock_promise = swap_promise.get();
57
58 manager.QueueSwapPromise(std::move(swap_promise));
59
60 EXPECT_CALL(*mock_promise, OnCommit()).Times(1);
61 manager.WillCommit();
62
63 std::vector<std::unique_ptr<SwapPromise>> swap_promise_list =
64 manager.TakeSwapPromises();
65 // Now that we've taken the promises, this shouldn't trigger a call.
66 manager.WillCommit();
67
68 EXPECT_EQ(1, static_cast<int>(swap_promise_list.size()));
69 }
70
71 } // namespace
72 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/swap_promise_manager.cc ('k') | cc/trees/swap_promise_monitor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698