OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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 #include "platform/scroll/ScrollableArea.h" | 5 #include "platform/scroll/ScrollableArea.h" |
6 | 6 |
7 #include "platform/graphics/Color.h" | 7 #include "platform/graphics/Color.h" |
8 #include "platform/graphics/GraphicsLayer.h" | 8 #include "platform/graphics/GraphicsLayer.h" |
9 #include "platform/scroll/ScrollbarTestSuite.h" | 9 #include "platform/scroll/ScrollbarTestSuite.h" |
10 #include "platform/scroll/ScrollbarTheme.h" | 10 #include "platform/scroll/ScrollbarTheme.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 EXPECT_CALL(theme, shouldRepaintAllPartsOnInvalidation()).WillRepeatedly(Ret
urn(false)); | 67 EXPECT_CALL(theme, shouldRepaintAllPartsOnInvalidation()).WillRepeatedly(Ret
urn(false)); |
68 scrollbar->clearTrackNeedsRepaint(); | 68 scrollbar->clearTrackNeedsRepaint(); |
69 scrollbar->clearThumbNeedsRepaint(); | 69 scrollbar->clearThumbNeedsRepaint(); |
70 EXPECT_FALSE(scrollbar->trackNeedsRepaint()); | 70 EXPECT_FALSE(scrollbar->trackNeedsRepaint()); |
71 EXPECT_FALSE(scrollbar->thumbNeedsRepaint()); | 71 EXPECT_FALSE(scrollbar->thumbNeedsRepaint()); |
72 scrollbar->setNeedsPaintInvalidation(ThumbPart); | 72 scrollbar->setNeedsPaintInvalidation(ThumbPart); |
73 EXPECT_FALSE(scrollbar->trackNeedsRepaint()); | 73 EXPECT_FALSE(scrollbar->trackNeedsRepaint()); |
74 EXPECT_TRUE(scrollbar->thumbNeedsRepaint()); | 74 EXPECT_TRUE(scrollbar->thumbNeedsRepaint()); |
75 | 75 |
76 // Forced GC in order to finalize objects depending on the mock object. | 76 // Forced GC in order to finalize objects depending on the mock object. |
77 ThreadState::current()-> collectAllGarbage(); | 77 ThreadHeap::collectAllGarbage(); |
78 } | 78 } |
79 | 79 |
80 TEST_F(ScrollableAreaTest, ScrollbarGraphicsLayerInvalidation) | 80 TEST_F(ScrollableAreaTest, ScrollbarGraphicsLayerInvalidation) |
81 { | 81 { |
82 ScrollbarTheme::setMockScrollbarsEnabled(true); | 82 ScrollbarTheme::setMockScrollbarsEnabled(true); |
83 MockScrollableArea* scrollableArea = MockScrollableArea::create(IntPoint(0,
100)); | 83 MockScrollableArea* scrollableArea = MockScrollableArea::create(IntPoint(0,
100)); |
84 FakeGraphicsLayerClient graphicsLayerClient; | 84 FakeGraphicsLayerClient graphicsLayerClient; |
85 graphicsLayerClient.setIsTrackingPaintInvalidations(true); | 85 graphicsLayerClient.setIsTrackingPaintInvalidations(true); |
86 FakeGraphicsLayer graphicsLayer(&graphicsLayerClient); | 86 FakeGraphicsLayer graphicsLayer(&graphicsLayerClient); |
87 graphicsLayer.setDrawsContent(true); | 87 graphicsLayer.setDrawsContent(true); |
88 graphicsLayer.setSize(FloatSize(111, 222)); | 88 graphicsLayer.setSize(FloatSize(111, 222)); |
89 | 89 |
90 EXPECT_CALL(*scrollableArea, layerForHorizontalScrollbar()).WillRepeatedly(R
eturn(&graphicsLayer)); | 90 EXPECT_CALL(*scrollableArea, layerForHorizontalScrollbar()).WillRepeatedly(R
eturn(&graphicsLayer)); |
91 | 91 |
92 Scrollbar* scrollbar = Scrollbar::create(scrollableArea, HorizontalScrollbar
, RegularScrollbar, nullptr); | 92 Scrollbar* scrollbar = Scrollbar::create(scrollableArea, HorizontalScrollbar
, RegularScrollbar, nullptr); |
93 graphicsLayer.resetTrackedPaintInvalidations(); | 93 graphicsLayer.resetTrackedPaintInvalidations(); |
94 scrollbar->setNeedsPaintInvalidation(NoPart); | 94 scrollbar->setNeedsPaintInvalidation(NoPart); |
95 EXPECT_TRUE(graphicsLayer.hasTrackedPaintInvalidations()); | 95 EXPECT_TRUE(graphicsLayer.hasTrackedPaintInvalidations()); |
96 | 96 |
97 // Forced GC in order to finalize objects depending on the mock object. | 97 // Forced GC in order to finalize objects depending on the mock object. |
98 ThreadState::current()-> collectAllGarbage(); | 98 ThreadHeap::collectAllGarbage(); |
99 } | 99 } |
100 | 100 |
101 TEST_F(ScrollableAreaTest, InvalidatesNonCompositedScrollbarsWhenThumbMoves) | 101 TEST_F(ScrollableAreaTest, InvalidatesNonCompositedScrollbarsWhenThumbMoves) |
102 { | 102 { |
103 ScrollbarThemeWithMockInvalidation theme; | 103 ScrollbarThemeWithMockInvalidation theme; |
104 MockScrollableArea* scrollableArea = MockScrollableArea::create(IntPoint(100
, 100)); | 104 MockScrollableArea* scrollableArea = MockScrollableArea::create(IntPoint(100
, 100)); |
105 Scrollbar* horizontalScrollbar = Scrollbar::createForTesting(scrollableArea,
HorizontalScrollbar, RegularScrollbar, &theme); | 105 Scrollbar* horizontalScrollbar = Scrollbar::createForTesting(scrollableArea,
HorizontalScrollbar, RegularScrollbar, &theme); |
106 Scrollbar* verticalScrollbar = Scrollbar::createForTesting(scrollableArea, V
erticalScrollbar, RegularScrollbar, &theme); | 106 Scrollbar* verticalScrollbar = Scrollbar::createForTesting(scrollableArea, V
erticalScrollbar, RegularScrollbar, &theme); |
107 EXPECT_CALL(*scrollableArea, horizontalScrollbar()).WillRepeatedly(Return(ho
rizontalScrollbar)); | 107 EXPECT_CALL(*scrollableArea, horizontalScrollbar()).WillRepeatedly(Return(ho
rizontalScrollbar)); |
108 EXPECT_CALL(*scrollableArea, verticalScrollbar()).WillRepeatedly(Return(vert
icalScrollbar)); | 108 EXPECT_CALL(*scrollableArea, verticalScrollbar()).WillRepeatedly(Return(vert
icalScrollbar)); |
(...skipping 11 matching lines...) Expand all Loading... |
120 scrollableArea->setScrollPosition(DoublePoint(0, 50), ProgrammaticScroll); | 120 scrollableArea->setScrollPosition(DoublePoint(0, 50), ProgrammaticScroll); |
121 EXPECT_FALSE(scrollableArea->horizontalScrollbarNeedsPaintInvalidation()); | 121 EXPECT_FALSE(scrollableArea->horizontalScrollbarNeedsPaintInvalidation()); |
122 EXPECT_TRUE(scrollableArea->verticalScrollbarNeedsPaintInvalidation()); | 122 EXPECT_TRUE(scrollableArea->verticalScrollbarNeedsPaintInvalidation()); |
123 scrollableArea->clearNeedsPaintInvalidationForScrollControls(); | 123 scrollableArea->clearNeedsPaintInvalidationForScrollControls(); |
124 scrollableArea->setScrollPosition(DoublePoint(50, 50), ProgrammaticScroll); | 124 scrollableArea->setScrollPosition(DoublePoint(50, 50), ProgrammaticScroll); |
125 EXPECT_TRUE(scrollableArea->horizontalScrollbarNeedsPaintInvalidation()); | 125 EXPECT_TRUE(scrollableArea->horizontalScrollbarNeedsPaintInvalidation()); |
126 EXPECT_FALSE(scrollableArea->verticalScrollbarNeedsPaintInvalidation()); | 126 EXPECT_FALSE(scrollableArea->verticalScrollbarNeedsPaintInvalidation()); |
127 scrollableArea->clearNeedsPaintInvalidationForScrollControls(); | 127 scrollableArea->clearNeedsPaintInvalidationForScrollControls(); |
128 | 128 |
129 // Forced GC in order to finalize objects depending on the mock object. | 129 // Forced GC in order to finalize objects depending on the mock object. |
130 ThreadState::current()-> collectAllGarbage(); | 130 ThreadHeap::collectAllGarbage(); |
131 } | 131 } |
132 | 132 |
133 TEST_F(ScrollableAreaTest, InvalidatesCompositedScrollbarsIfPartsNeedRepaint) | 133 TEST_F(ScrollableAreaTest, InvalidatesCompositedScrollbarsIfPartsNeedRepaint) |
134 { | 134 { |
135 ScrollbarThemeWithMockInvalidation theme; | 135 ScrollbarThemeWithMockInvalidation theme; |
136 MockScrollableArea* scrollableArea = MockScrollableArea::create(IntPoint(100
, 100)); | 136 MockScrollableArea* scrollableArea = MockScrollableArea::create(IntPoint(100
, 100)); |
137 Scrollbar* horizontalScrollbar = Scrollbar::createForTesting(scrollableArea,
HorizontalScrollbar, RegularScrollbar, &theme); | 137 Scrollbar* horizontalScrollbar = Scrollbar::createForTesting(scrollableArea,
HorizontalScrollbar, RegularScrollbar, &theme); |
138 horizontalScrollbar->clearTrackNeedsRepaint(); | 138 horizontalScrollbar->clearTrackNeedsRepaint(); |
139 horizontalScrollbar->clearThumbNeedsRepaint(); | 139 horizontalScrollbar->clearThumbNeedsRepaint(); |
140 Scrollbar* verticalScrollbar = Scrollbar::createForTesting(scrollableArea, V
erticalScrollbar, RegularScrollbar, &theme); | 140 Scrollbar* verticalScrollbar = Scrollbar::createForTesting(scrollableArea, V
erticalScrollbar, RegularScrollbar, &theme); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 EXPECT_CALL(theme, invalidateOnThumbPositionChange(_, _, _)).Times(2).WillRe
peatedly(Return(NoPart)); | 187 EXPECT_CALL(theme, invalidateOnThumbPositionChange(_, _, _)).Times(2).WillRe
peatedly(Return(NoPart)); |
188 scrollableArea->setScrollPosition(DoublePoint(70, 70), ProgrammaticScroll); | 188 scrollableArea->setScrollPosition(DoublePoint(70, 70), ProgrammaticScroll); |
189 EXPECT_TRUE(layerForHorizontalScrollbar.hasTrackedPaintInvalidations()); | 189 EXPECT_TRUE(layerForHorizontalScrollbar.hasTrackedPaintInvalidations()); |
190 EXPECT_TRUE(layerForVerticalScrollbar.hasTrackedPaintInvalidations()); | 190 EXPECT_TRUE(layerForVerticalScrollbar.hasTrackedPaintInvalidations()); |
191 EXPECT_FALSE(horizontalScrollbar->trackNeedsRepaint()); | 191 EXPECT_FALSE(horizontalScrollbar->trackNeedsRepaint()); |
192 EXPECT_FALSE(horizontalScrollbar->thumbNeedsRepaint()); | 192 EXPECT_FALSE(horizontalScrollbar->thumbNeedsRepaint()); |
193 EXPECT_FALSE(verticalScrollbar->trackNeedsRepaint()); | 193 EXPECT_FALSE(verticalScrollbar->trackNeedsRepaint()); |
194 EXPECT_FALSE(verticalScrollbar->thumbNeedsRepaint()); | 194 EXPECT_FALSE(verticalScrollbar->thumbNeedsRepaint()); |
195 | 195 |
196 // Forced GC in order to finalize objects depending on the mock object. | 196 // Forced GC in order to finalize objects depending on the mock object. |
197 ThreadState::current()-> collectAllGarbage(); | 197 ThreadHeap::collectAllGarbage(); |
198 } | 198 } |
199 | 199 |
200 TEST_F(ScrollableAreaTest, RecalculatesScrollbarOverlayIfBackgroundChanges) | 200 TEST_F(ScrollableAreaTest, RecalculatesScrollbarOverlayIfBackgroundChanges) |
201 { | 201 { |
202 MockScrollableArea* scrollableArea = MockScrollableArea::create(IntPoint(0,
100)); | 202 MockScrollableArea* scrollableArea = MockScrollableArea::create(IntPoint(0,
100)); |
203 | 203 |
204 EXPECT_EQ(ScrollbarOverlayStyleDefault, scrollableArea->getScrollbarOverlayS
tyle()); | 204 EXPECT_EQ(ScrollbarOverlayStyleDefault, scrollableArea->getScrollbarOverlayS
tyle()); |
205 scrollableArea->recalculateScrollbarOverlayStyle(Color(34, 85, 51)); | 205 scrollableArea->recalculateScrollbarOverlayStyle(Color(34, 85, 51)); |
206 EXPECT_EQ(ScrollbarOverlayStyleLight, scrollableArea->getScrollbarOverlaySty
le()); | 206 EXPECT_EQ(ScrollbarOverlayStyleLight, scrollableArea->getScrollbarOverlaySty
le()); |
207 scrollableArea->recalculateScrollbarOverlayStyle(Color(236, 143, 185)); | 207 scrollableArea->recalculateScrollbarOverlayStyle(Color(236, 143, 185)); |
208 EXPECT_EQ(ScrollbarOverlayStyleDefault, scrollableArea->getScrollbarOverlayS
tyle()); | 208 EXPECT_EQ(ScrollbarOverlayStyleDefault, scrollableArea->getScrollbarOverlayS
tyle()); |
209 } | 209 } |
210 | 210 |
211 } // namespace blink | 211 } // namespace blink |
OLD | NEW |