OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef ScrollbarTestSuite_h | 5 #ifndef ScrollbarTestSuite_h |
6 #define ScrollbarTestSuite_h | 6 #define ScrollbarTestSuite_h |
7 | 7 |
8 #include "platform/heap/GarbageCollected.h" | 8 #include "platform/heap/GarbageCollected.h" |
9 #include "platform/scroll/ScrollableArea.h" | 9 #include "platform/scroll/ScrollableArea.h" |
10 #include "platform/scroll/Scrollbar.h" | 10 #include "platform/scroll/Scrollbar.h" |
11 #include "platform/scroll/ScrollbarThemeMock.h" | 11 #include "platform/scroll/ScrollbarThemeMock.h" |
12 #include "platform/testing/TestingPlatformSupport.h" | 12 #include "platform/testing/TestingPlatformSupport.h" |
13 #include "testing/gmock/include/gmock/gmock.h" | 13 #include "testing/gmock/include/gmock/gmock.h" |
14 #include "wtf/PtrUtil.h" | 14 #include "wtf/PtrUtil.h" |
15 #include <memory> | 15 #include <memory> |
16 | 16 |
17 namespace blink { | 17 namespace blink { |
18 | 18 |
19 class MockScrollableArea : public GarbageCollectedFinalized<MockScrollableArea>, | 19 class MockScrollableArea : public GarbageCollectedFinalized<MockScrollableArea>, |
20 public ScrollableArea { | 20 public ScrollableArea { |
21 USING_GARBAGE_COLLECTED_MIXIN(MockScrollableArea); | 21 USING_GARBAGE_COLLECTED_MIXIN(MockScrollableArea); |
22 | 22 |
23 public: | 23 public: |
24 // Public to allow using NiceMock. | |
jbroman
2016/12/22 15:21:00
Does protected not work? NiceMock<T> derives from
bokan
2016/12/22 16:10:55
Sure does. Done.
| |
25 explicit MockScrollableArea() : m_maximumScrollOffset(ScrollOffset(0, 100)) {} | |
26 explicit MockScrollableArea(const ScrollOffset& offset) | |
27 : m_maximumScrollOffset(offset) {} | |
28 | |
24 static MockScrollableArea* create() { return new MockScrollableArea(); } | 29 static MockScrollableArea* create() { return new MockScrollableArea(); } |
25 | 30 |
26 static MockScrollableArea* create(const ScrollOffset& maximumScrollOffset) { | 31 static MockScrollableArea* create(const ScrollOffset& maximumScrollOffset) { |
27 MockScrollableArea* mock = create(); | 32 MockScrollableArea* mock = create(); |
28 mock->setMaximumScrollOffset(maximumScrollOffset); | 33 mock->setMaximumScrollOffset(maximumScrollOffset); |
29 return mock; | 34 return mock; |
30 } | 35 } |
31 | 36 |
32 MOCK_CONST_METHOD0(visualRectForScrollbarParts, LayoutRect()); | 37 MOCK_CONST_METHOD0(visualRectForScrollbarParts, LayoutRect()); |
33 MOCK_CONST_METHOD0(isActive, bool()); | 38 MOCK_CONST_METHOD0(isActive, bool()); |
34 MOCK_CONST_METHOD1(scrollSize, int(ScrollbarOrientation)); | 39 MOCK_CONST_METHOD1(scrollSize, int(ScrollbarOrientation)); |
35 MOCK_CONST_METHOD0(isScrollCornerVisible, bool()); | 40 MOCK_CONST_METHOD0(isScrollCornerVisible, bool()); |
36 MOCK_CONST_METHOD0(scrollCornerRect, IntRect()); | 41 MOCK_CONST_METHOD0(scrollCornerRect, IntRect()); |
37 MOCK_CONST_METHOD0(horizontalScrollbar, Scrollbar*()); | |
38 MOCK_CONST_METHOD0(verticalScrollbar, Scrollbar*()); | |
39 MOCK_CONST_METHOD0(enclosingScrollableArea, ScrollableArea*()); | 42 MOCK_CONST_METHOD0(enclosingScrollableArea, ScrollableArea*()); |
40 MOCK_CONST_METHOD1(visibleContentRect, IntRect(IncludeScrollbarsInRect)); | 43 MOCK_CONST_METHOD1(visibleContentRect, IntRect(IncludeScrollbarsInRect)); |
41 MOCK_CONST_METHOD0(contentsSize, IntSize()); | 44 MOCK_CONST_METHOD0(contentsSize, IntSize()); |
42 MOCK_CONST_METHOD0(scrollableAreaBoundingBox, IntRect()); | 45 MOCK_CONST_METHOD0(scrollableAreaBoundingBox, IntRect()); |
43 MOCK_CONST_METHOD0(layerForHorizontalScrollbar, GraphicsLayer*()); | 46 MOCK_CONST_METHOD0(layerForHorizontalScrollbar, GraphicsLayer*()); |
44 MOCK_CONST_METHOD0(layerForVerticalScrollbar, GraphicsLayer*()); | 47 MOCK_CONST_METHOD0(layerForVerticalScrollbar, GraphicsLayer*()); |
48 MOCK_CONST_METHOD0(horizontalScrollbar, Scrollbar*()); | |
49 MOCK_CONST_METHOD0(verticalScrollbar, Scrollbar*()); | |
45 | 50 |
46 bool userInputScrollable(ScrollbarOrientation) const override { return true; } | 51 bool userInputScrollable(ScrollbarOrientation) const override { return true; } |
47 bool scrollbarsCanBeActive() const override { return true; } | 52 bool scrollbarsCanBeActive() const override { return true; } |
48 bool shouldPlaceVerticalScrollbarOnLeft() const override { return false; } | 53 bool shouldPlaceVerticalScrollbarOnLeft() const override { return false; } |
49 void updateScrollOffset(const ScrollOffset& offset, ScrollType) override { | 54 void updateScrollOffset(const ScrollOffset& offset, ScrollType) override { |
50 m_scrollOffset = offset.shrunkTo(m_maximumScrollOffset); | 55 m_scrollOffset = offset.shrunkTo(m_maximumScrollOffset); |
51 } | 56 } |
52 IntSize scrollOffsetInt() const override { | 57 IntSize scrollOffsetInt() const override { |
53 return flooredIntSize(m_scrollOffset); | 58 return flooredIntSize(m_scrollOffset); |
54 } | 59 } |
(...skipping 11 matching lines...) Expand all Loading... | |
66 using ScrollableArea::verticalScrollbarNeedsPaintInvalidation; | 71 using ScrollableArea::verticalScrollbarNeedsPaintInvalidation; |
67 using ScrollableArea::clearNeedsPaintInvalidationForScrollControls; | 72 using ScrollableArea::clearNeedsPaintInvalidationForScrollControls; |
68 | 73 |
69 DEFINE_INLINE_VIRTUAL_TRACE() { ScrollableArea::trace(visitor); } | 74 DEFINE_INLINE_VIRTUAL_TRACE() { ScrollableArea::trace(visitor); } |
70 | 75 |
71 private: | 76 private: |
72 void setMaximumScrollOffset(const ScrollOffset& maximumScrollOffset) { | 77 void setMaximumScrollOffset(const ScrollOffset& maximumScrollOffset) { |
73 m_maximumScrollOffset = maximumScrollOffset; | 78 m_maximumScrollOffset = maximumScrollOffset; |
74 } | 79 } |
75 | 80 |
76 explicit MockScrollableArea() : m_maximumScrollOffset(ScrollOffset(0, 100)) {} | |
77 | |
78 ScrollOffset m_scrollOffset; | 81 ScrollOffset m_scrollOffset; |
79 ScrollOffset m_maximumScrollOffset; | 82 ScrollOffset m_maximumScrollOffset; |
80 }; | 83 }; |
81 | 84 |
82 class ScrollbarTestSuite : public testing::Test { | 85 class ScrollbarTestSuite : public testing::Test { |
83 public: | 86 public: |
84 ScrollbarTestSuite() {} | 87 ScrollbarTestSuite() {} |
85 | 88 |
86 void SetUp() override { | 89 void SetUp() override { |
87 TestingPlatformSupport::Config config; | 90 TestingPlatformSupport::Config config; |
88 config.compositorSupport = Platform::current()->compositorSupport(); | 91 config.compositorSupport = Platform::current()->compositorSupport(); |
89 m_fakePlatform = | 92 m_fakePlatform = |
90 WTF::makeUnique<TestingPlatformSupportWithMockScheduler>(config); | 93 WTF::makeUnique<TestingPlatformSupportWithMockScheduler>(config); |
91 } | 94 } |
92 | 95 |
93 void TearDown() override { m_fakePlatform = nullptr; } | 96 void TearDown() override { m_fakePlatform = nullptr; } |
94 | 97 |
95 private: | 98 private: |
96 std::unique_ptr<TestingPlatformSupportWithMockScheduler> m_fakePlatform; | 99 std::unique_ptr<TestingPlatformSupportWithMockScheduler> m_fakePlatform; |
97 }; | 100 }; |
98 | 101 |
99 } // namespace blink | 102 } // namespace blink |
100 | 103 |
101 #endif | 104 #endif |
OLD | NEW |