OLD | NEW |
| (Empty) |
1 // Copyright 2015 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 "public/platform/WebViewScheduler.h" | |
6 | |
7 #include "public/platform/WebFrameScheduler.h" | |
8 #include "testing/gmock/include/gmock/gmock.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 | |
11 using testing::_; | |
12 using testing::Mock; | |
13 | |
14 namespace blink { | |
15 | |
16 class MockWebViewScheduler : public WebViewScheduler { | |
17 public: | |
18 ~MockWebViewScheduler() override {} | |
19 | |
20 std::unique_ptr<WebFrameScheduler> createFrameScheduler(BlameContext*) overr
ide | |
21 { | |
22 return nullptr; | |
23 } | |
24 | |
25 MOCK_METHOD1(setPageVisible, void(bool)); | |
26 MOCK_METHOD0(enableVirtualTime, void()); | |
27 MOCK_METHOD1(setAllowVirtualTimeToAdvance, void(bool)); | |
28 MOCK_CONST_METHOD0(virtualTimeAllowedToAdvance, bool()); | |
29 }; | |
30 | |
31 class WebViewSchedulerTest : public ::testing::Test { | |
32 public: | |
33 MockWebViewScheduler m_mockWebViewScheduler; | |
34 }; | |
35 | |
36 TEST_F(WebViewSchedulerTest, setVirtualTimePolicy_ADVANCE) | |
37 { | |
38 EXPECT_CALL(m_mockWebViewScheduler, setAllowVirtualTimeToAdvance(true)).Time
s(1); | |
39 m_mockWebViewScheduler.setVirtualTimePolicy(WebViewScheduler::VirtualTimePol
icy::ADVANCE); | |
40 } | |
41 | |
42 TEST_F(WebViewSchedulerTest, setVirtualTimePolicy_PAUSE) | |
43 { | |
44 EXPECT_CALL(m_mockWebViewScheduler, setAllowVirtualTimeToAdvance(false)).Tim
es(1); | |
45 m_mockWebViewScheduler.setVirtualTimePolicy(WebViewScheduler::VirtualTimePol
icy::PAUSE); | |
46 } | |
47 | |
48 TEST_F(WebViewSchedulerTest, setVirtualTimePolicy_PAUSE_IF_NETWORK_FETCHES_PENDI
NG_NothingPending) | |
49 { | |
50 EXPECT_CALL(m_mockWebViewScheduler, setAllowVirtualTimeToAdvance(true)).Time
s(1); | |
51 m_mockWebViewScheduler.setVirtualTimePolicy(WebViewScheduler::VirtualTimePol
icy::PAUSE_IF_NETWORK_FETCHES_PENDING); | |
52 } | |
53 | |
54 TEST_F(WebViewSchedulerTest, setVirtualTimePolicy_PAUSE_IF_NETWORK_FETCHES_PENDI
NG_OneLoadPending) | |
55 { | |
56 m_mockWebViewScheduler.incrementPendingResourceLoadCount(); | |
57 | |
58 EXPECT_CALL(m_mockWebViewScheduler, setAllowVirtualTimeToAdvance(false)).Tim
es(1); | |
59 m_mockWebViewScheduler.setVirtualTimePolicy(WebViewScheduler::VirtualTimePol
icy::PAUSE_IF_NETWORK_FETCHES_PENDING); | |
60 } | |
61 | |
62 TEST_F(WebViewSchedulerTest, VirtualTimePolicy_PAUSE_IF_NETWORK_FETCHES_PENDING) | |
63 { | |
64 EXPECT_CALL(m_mockWebViewScheduler, setAllowVirtualTimeToAdvance(_)).Times(1
); | |
65 m_mockWebViewScheduler.setVirtualTimePolicy(WebViewScheduler::VirtualTimePol
icy::PAUSE_IF_NETWORK_FETCHES_PENDING); | |
66 Mock::VerifyAndClearExpectations(&m_mockWebViewScheduler); | |
67 | |
68 EXPECT_CALL(m_mockWebViewScheduler, setAllowVirtualTimeToAdvance(false)).Tim
es(1); | |
69 m_mockWebViewScheduler.incrementPendingResourceLoadCount(); | |
70 Mock::VerifyAndClearExpectations(&m_mockWebViewScheduler); | |
71 | |
72 EXPECT_CALL(m_mockWebViewScheduler, setAllowVirtualTimeToAdvance(_)).Times(0
); | |
73 m_mockWebViewScheduler.incrementPendingResourceLoadCount(); | |
74 m_mockWebViewScheduler.decrementPendingResourceLoadCount(); | |
75 m_mockWebViewScheduler.incrementPendingResourceLoadCount(); | |
76 m_mockWebViewScheduler.decrementPendingResourceLoadCount(); | |
77 Mock::VerifyAndClearExpectations(&m_mockWebViewScheduler); | |
78 | |
79 EXPECT_CALL(m_mockWebViewScheduler, setAllowVirtualTimeToAdvance(true)).Time
s(1); | |
80 m_mockWebViewScheduler.decrementPendingResourceLoadCount(); | |
81 } | |
82 | |
83 } // namespace blink | |
OLD | NEW |