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

Side by Side Diff: third_party/WebKit/Source/platform/scroll/ScrollableAreaTest.cpp

Issue 2588403002: TestingPlatformSupport: register Platform instance correctly (Closed)
Patch Set: review #32 Created 3 years, 11 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
OLDNEW
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 17 matching lines...) Expand all
28 MOCK_CONST_METHOD0(shouldRepaintAllPartsOnInvalidation, bool()); 28 MOCK_CONST_METHOD0(shouldRepaintAllPartsOnInvalidation, bool());
29 MOCK_CONST_METHOD3(invalidateOnThumbPositionChange, 29 MOCK_CONST_METHOD3(invalidateOnThumbPositionChange,
30 ScrollbarPart(const ScrollbarThemeClient&, float, float)); 30 ScrollbarPart(const ScrollbarThemeClient&, float, float));
31 }; 31 };
32 32
33 } // namespace 33 } // namespace
34 34
35 class ScrollableAreaTest : public ScrollbarTestSuite {}; 35 class ScrollableAreaTest : public ScrollbarTestSuite {};
36 36
37 TEST_F(ScrollableAreaTest, ScrollAnimatorCurrentPositionShouldBeSync) { 37 TEST_F(ScrollableAreaTest, ScrollAnimatorCurrentPositionShouldBeSync) {
38 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler,
39 const TestingPlatformSupport::Config&>
40 platform(m_config);
41
38 MockScrollableArea* scrollableArea = 42 MockScrollableArea* scrollableArea =
39 MockScrollableArea::create(ScrollOffset(0, 100)); 43 MockScrollableArea::create(ScrollOffset(0, 100));
40 scrollableArea->setScrollOffset(ScrollOffset(0, 10000), CompositorScroll); 44 scrollableArea->setScrollOffset(ScrollOffset(0, 10000), CompositorScroll);
41 EXPECT_EQ(100.0, scrollableArea->scrollAnimator().currentOffset().height()); 45 EXPECT_EQ(100.0, scrollableArea->scrollAnimator().currentOffset().height());
42 } 46 }
43 47
44 TEST_F(ScrollableAreaTest, ScrollbarTrackAndThumbRepaint) { 48 TEST_F(ScrollableAreaTest, ScrollbarTrackAndThumbRepaint) {
49 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler,
50 const TestingPlatformSupport::Config&>
51 platform(m_config);
52
45 ScrollbarThemeWithMockInvalidation theme; 53 ScrollbarThemeWithMockInvalidation theme;
46 MockScrollableArea* scrollableArea = 54 MockScrollableArea* scrollableArea =
47 MockScrollableArea::create(ScrollOffset(0, 100)); 55 MockScrollableArea::create(ScrollOffset(0, 100));
48 Scrollbar* scrollbar = Scrollbar::createForTesting( 56 Scrollbar* scrollbar = Scrollbar::createForTesting(
49 scrollableArea, HorizontalScrollbar, RegularScrollbar, &theme); 57 scrollableArea, HorizontalScrollbar, RegularScrollbar, &theme);
50 58
51 EXPECT_CALL(theme, shouldRepaintAllPartsOnInvalidation()) 59 EXPECT_CALL(theme, shouldRepaintAllPartsOnInvalidation())
52 .WillRepeatedly(Return(true)); 60 .WillRepeatedly(Return(true));
53 EXPECT_TRUE(scrollbar->trackNeedsRepaint()); 61 EXPECT_TRUE(scrollbar->trackNeedsRepaint());
54 EXPECT_TRUE(scrollbar->thumbNeedsRepaint()); 62 EXPECT_TRUE(scrollbar->thumbNeedsRepaint());
(...skipping 19 matching lines...) Expand all
74 EXPECT_FALSE(scrollbar->thumbNeedsRepaint()); 82 EXPECT_FALSE(scrollbar->thumbNeedsRepaint());
75 scrollbar->setNeedsPaintInvalidation(ThumbPart); 83 scrollbar->setNeedsPaintInvalidation(ThumbPart);
76 EXPECT_FALSE(scrollbar->trackNeedsRepaint()); 84 EXPECT_FALSE(scrollbar->trackNeedsRepaint());
77 EXPECT_TRUE(scrollbar->thumbNeedsRepaint()); 85 EXPECT_TRUE(scrollbar->thumbNeedsRepaint());
78 86
79 // Forced GC in order to finalize objects depending on the mock object. 87 // Forced GC in order to finalize objects depending on the mock object.
80 ThreadState::current()->collectAllGarbage(); 88 ThreadState::current()->collectAllGarbage();
81 } 89 }
82 90
83 TEST_F(ScrollableAreaTest, ScrollbarGraphicsLayerInvalidation) { 91 TEST_F(ScrollableAreaTest, ScrollbarGraphicsLayerInvalidation) {
92 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler,
93 const TestingPlatformSupport::Config&>
94 platform(m_config);
95
84 ScrollbarTheme::setMockScrollbarsEnabled(true); 96 ScrollbarTheme::setMockScrollbarsEnabled(true);
85 MockScrollableArea* scrollableArea = 97 MockScrollableArea* scrollableArea =
86 MockScrollableArea::create(ScrollOffset(0, 100)); 98 MockScrollableArea::create(ScrollOffset(0, 100));
87 FakeGraphicsLayerClient graphicsLayerClient; 99 FakeGraphicsLayerClient graphicsLayerClient;
88 graphicsLayerClient.setIsTrackingRasterInvalidations(true); 100 graphicsLayerClient.setIsTrackingRasterInvalidations(true);
89 FakeGraphicsLayer graphicsLayer(&graphicsLayerClient); 101 FakeGraphicsLayer graphicsLayer(&graphicsLayerClient);
90 graphicsLayer.setDrawsContent(true); 102 graphicsLayer.setDrawsContent(true);
91 graphicsLayer.setSize(FloatSize(111, 222)); 103 graphicsLayer.setSize(FloatSize(111, 222));
92 104
93 EXPECT_CALL(*scrollableArea, layerForHorizontalScrollbar()) 105 EXPECT_CALL(*scrollableArea, layerForHorizontalScrollbar())
94 .WillRepeatedly(Return(&graphicsLayer)); 106 .WillRepeatedly(Return(&graphicsLayer));
95 107
96 Scrollbar* scrollbar = Scrollbar::create(scrollableArea, HorizontalScrollbar, 108 Scrollbar* scrollbar = Scrollbar::create(scrollableArea, HorizontalScrollbar,
97 RegularScrollbar, nullptr); 109 RegularScrollbar, nullptr);
98 graphicsLayer.resetTrackedRasterInvalidations(); 110 graphicsLayer.resetTrackedRasterInvalidations();
99 scrollbar->setNeedsPaintInvalidation(NoPart); 111 scrollbar->setNeedsPaintInvalidation(NoPart);
100 EXPECT_TRUE(graphicsLayer.hasTrackedRasterInvalidations()); 112 EXPECT_TRUE(graphicsLayer.hasTrackedRasterInvalidations());
101 113
102 // Forced GC in order to finalize objects depending on the mock object. 114 // Forced GC in order to finalize objects depending on the mock object.
103 ThreadState::current()->collectAllGarbage(); 115 ThreadState::current()->collectAllGarbage();
104 } 116 }
105 117
106 TEST_F(ScrollableAreaTest, InvalidatesNonCompositedScrollbarsWhenThumbMoves) { 118 TEST_F(ScrollableAreaTest, InvalidatesNonCompositedScrollbarsWhenThumbMoves) {
119 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler,
120 const TestingPlatformSupport::Config&>
121 platform(m_config);
122
107 ScrollbarThemeWithMockInvalidation theme; 123 ScrollbarThemeWithMockInvalidation theme;
108 MockScrollableArea* scrollableArea = 124 MockScrollableArea* scrollableArea =
109 MockScrollableArea::create(ScrollOffset(100, 100)); 125 MockScrollableArea::create(ScrollOffset(100, 100));
110 Scrollbar* horizontalScrollbar = Scrollbar::createForTesting( 126 Scrollbar* horizontalScrollbar = Scrollbar::createForTesting(
111 scrollableArea, HorizontalScrollbar, RegularScrollbar, &theme); 127 scrollableArea, HorizontalScrollbar, RegularScrollbar, &theme);
112 Scrollbar* verticalScrollbar = Scrollbar::createForTesting( 128 Scrollbar* verticalScrollbar = Scrollbar::createForTesting(
113 scrollableArea, VerticalScrollbar, RegularScrollbar, &theme); 129 scrollableArea, VerticalScrollbar, RegularScrollbar, &theme);
114 EXPECT_CALL(*scrollableArea, horizontalScrollbar()) 130 EXPECT_CALL(*scrollableArea, horizontalScrollbar())
115 .WillRepeatedly(Return(horizontalScrollbar)); 131 .WillRepeatedly(Return(horizontalScrollbar));
116 EXPECT_CALL(*scrollableArea, verticalScrollbar()) 132 EXPECT_CALL(*scrollableArea, verticalScrollbar())
(...skipping 20 matching lines...) Expand all
137 scrollableArea->setScrollOffset(ScrollOffset(50, 50), ProgrammaticScroll); 153 scrollableArea->setScrollOffset(ScrollOffset(50, 50), ProgrammaticScroll);
138 EXPECT_TRUE(scrollableArea->horizontalScrollbarNeedsPaintInvalidation()); 154 EXPECT_TRUE(scrollableArea->horizontalScrollbarNeedsPaintInvalidation());
139 EXPECT_FALSE(scrollableArea->verticalScrollbarNeedsPaintInvalidation()); 155 EXPECT_FALSE(scrollableArea->verticalScrollbarNeedsPaintInvalidation());
140 scrollableArea->clearNeedsPaintInvalidationForScrollControls(); 156 scrollableArea->clearNeedsPaintInvalidationForScrollControls();
141 157
142 // Forced GC in order to finalize objects depending on the mock object. 158 // Forced GC in order to finalize objects depending on the mock object.
143 ThreadState::current()->collectAllGarbage(); 159 ThreadState::current()->collectAllGarbage();
144 } 160 }
145 161
146 TEST_F(ScrollableAreaTest, InvalidatesCompositedScrollbarsIfPartsNeedRepaint) { 162 TEST_F(ScrollableAreaTest, InvalidatesCompositedScrollbarsIfPartsNeedRepaint) {
163 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler,
164 const TestingPlatformSupport::Config&>
165 platform(m_config);
166
147 ScrollbarThemeWithMockInvalidation theme; 167 ScrollbarThemeWithMockInvalidation theme;
148 MockScrollableArea* scrollableArea = 168 MockScrollableArea* scrollableArea =
149 MockScrollableArea::create(ScrollOffset(100, 100)); 169 MockScrollableArea::create(ScrollOffset(100, 100));
150 Scrollbar* horizontalScrollbar = Scrollbar::createForTesting( 170 Scrollbar* horizontalScrollbar = Scrollbar::createForTesting(
151 scrollableArea, HorizontalScrollbar, RegularScrollbar, &theme); 171 scrollableArea, HorizontalScrollbar, RegularScrollbar, &theme);
152 horizontalScrollbar->clearTrackNeedsRepaint(); 172 horizontalScrollbar->clearTrackNeedsRepaint();
153 horizontalScrollbar->clearThumbNeedsRepaint(); 173 horizontalScrollbar->clearThumbNeedsRepaint();
154 Scrollbar* verticalScrollbar = Scrollbar::createForTesting( 174 Scrollbar* verticalScrollbar = Scrollbar::createForTesting(
155 scrollableArea, VerticalScrollbar, RegularScrollbar, &theme); 175 scrollableArea, VerticalScrollbar, RegularScrollbar, &theme);
156 verticalScrollbar->clearTrackNeedsRepaint(); 176 verticalScrollbar->clearTrackNeedsRepaint();
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 EXPECT_FALSE(horizontalScrollbar->trackNeedsRepaint()); 235 EXPECT_FALSE(horizontalScrollbar->trackNeedsRepaint());
216 EXPECT_FALSE(horizontalScrollbar->thumbNeedsRepaint()); 236 EXPECT_FALSE(horizontalScrollbar->thumbNeedsRepaint());
217 EXPECT_FALSE(verticalScrollbar->trackNeedsRepaint()); 237 EXPECT_FALSE(verticalScrollbar->trackNeedsRepaint());
218 EXPECT_FALSE(verticalScrollbar->thumbNeedsRepaint()); 238 EXPECT_FALSE(verticalScrollbar->thumbNeedsRepaint());
219 239
220 // Forced GC in order to finalize objects depending on the mock object. 240 // Forced GC in order to finalize objects depending on the mock object.
221 ThreadState::current()->collectAllGarbage(); 241 ThreadState::current()->collectAllGarbage();
222 } 242 }
223 243
224 TEST_F(ScrollableAreaTest, RecalculatesScrollbarOverlayIfBackgroundChanges) { 244 TEST_F(ScrollableAreaTest, RecalculatesScrollbarOverlayIfBackgroundChanges) {
245 ScopedTestingPlatformSupport<TestingPlatformSupportWithMockScheduler,
246 const TestingPlatformSupport::Config&>
247 platform(m_config);
248
225 MockScrollableArea* scrollableArea = 249 MockScrollableArea* scrollableArea =
226 MockScrollableArea::create(ScrollOffset(0, 100)); 250 MockScrollableArea::create(ScrollOffset(0, 100));
227 251
228 EXPECT_EQ(ScrollbarOverlayColorThemeDark, 252 EXPECT_EQ(ScrollbarOverlayColorThemeDark,
229 scrollableArea->getScrollbarOverlayColorTheme()); 253 scrollableArea->getScrollbarOverlayColorTheme());
230 scrollableArea->recalculateScrollbarOverlayColorTheme(Color(34, 85, 51)); 254 scrollableArea->recalculateScrollbarOverlayColorTheme(Color(34, 85, 51));
231 EXPECT_EQ(ScrollbarOverlayColorThemeLight, 255 EXPECT_EQ(ScrollbarOverlayColorThemeLight,
232 scrollableArea->getScrollbarOverlayColorTheme()); 256 scrollableArea->getScrollbarOverlayColorTheme());
233 scrollableArea->recalculateScrollbarOverlayColorTheme(Color(236, 143, 185)); 257 scrollableArea->recalculateScrollbarOverlayColorTheme(Color(236, 143, 185));
234 EXPECT_EQ(ScrollbarOverlayColorThemeDark, 258 EXPECT_EQ(ScrollbarOverlayColorThemeDark,
235 scrollableArea->getScrollbarOverlayColorTheme()); 259 scrollableArea->getScrollbarOverlayColorTheme());
236 } 260 }
237 261
238 } // namespace blink 262 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698