Chromium Code Reviews| Index: third_party/WebKit/Source/platform/scroll/ScrollbarTestSuite.h |
| diff --git a/third_party/WebKit/Source/platform/scroll/ScrollbarTestSuite.h b/third_party/WebKit/Source/platform/scroll/ScrollbarTestSuite.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a0551daf066d52202c4f3b69dc25e1e0a12e284a |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/platform/scroll/ScrollbarTestSuite.h |
| @@ -0,0 +1,106 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
|
jbroman
2016/05/13 17:35:49
This file is not listed in the build files; please
Bret
2016/05/13 22:11:00
Done. The other test support files like ScrollbarT
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef ScrollbarTestSuite_h |
| +#define ScrollbarTestSuite_h |
| + |
| +#include "platform/heap/GarbageCollected.h" |
| +#include "platform/scroll/ScrollableArea.h" |
| +#include "platform/scroll/Scrollbar.h" |
| +#include "platform/scroll/ScrollbarThemeMock.h" |
| +#include "platform/testing/TestingPlatformSupport.h" |
| +#include "testing/gmock/include/gmock/gmock.h" |
| + |
| +namespace blink { |
| + |
| +class MockScrollableArea : public GarbageCollectedFinalized<MockScrollableArea>, public ScrollableArea { |
| + USING_GARBAGE_COLLECTED_MIXIN(MockScrollableArea); |
| + |
| +public: |
| + static MockScrollableArea* create() |
| + { |
| + return new MockScrollableArea(); |
| + } |
| + |
| + static MockScrollableArea* create(const IntPoint& maximumScrollPosition) |
| + { |
| + MockScrollableArea* mock = create(); |
| + mock->setMaximumScrollPosition(maximumScrollPosition); |
| + return mock; |
| + } |
| + |
| + MOCK_CONST_METHOD0(visualRectForScrollbarParts, LayoutRect()); |
| + MOCK_CONST_METHOD0(isActive, bool()); |
| + MOCK_CONST_METHOD1(scrollSize, int(ScrollbarOrientation)); |
| + MOCK_CONST_METHOD0(isScrollCornerVisible, bool()); |
| + MOCK_CONST_METHOD0(scrollCornerRect, IntRect()); |
| + MOCK_CONST_METHOD0(horizontalScrollbar, Scrollbar*()); |
| + MOCK_CONST_METHOD0(verticalScrollbar, Scrollbar*()); |
| + MOCK_CONST_METHOD0(enclosingScrollableArea, ScrollableArea*()); |
| + MOCK_CONST_METHOD1(visibleContentRect, IntRect(IncludeScrollbarsInRect)); |
| + MOCK_CONST_METHOD0(contentsSize, IntSize()); |
| + MOCK_CONST_METHOD0(scrollableAreaBoundingBox, IntRect()); |
| + MOCK_CONST_METHOD0(layerForHorizontalScrollbar, GraphicsLayer*()); |
| + MOCK_CONST_METHOD0(layerForVerticalScrollbar, GraphicsLayer*()); |
| + |
| + bool userInputScrollable(ScrollbarOrientation) const override { return true; } |
| + bool scrollbarsCanBeActive() const override { return true; } |
| + bool shouldPlaceVerticalScrollbarOnLeft() const override { return false; } |
| + void setScrollOffset(const DoublePoint& offset, ScrollType) override { m_scrollPosition = flooredIntPoint(offset).shrunkTo(m_maximumScrollPosition); } |
| + IntPoint scrollPosition() const override { return m_scrollPosition; } |
| + IntPoint minimumScrollPosition() const override { return IntPoint(); } |
| + IntPoint maximumScrollPosition() const override { return m_maximumScrollPosition; } |
| + int visibleHeight() const override { return 768; } |
| + int visibleWidth() const override { return 1024; } |
| + bool scrollAnimatorEnabled() const override { return false; } |
| + int pageStep(ScrollbarOrientation) const override { return 0; } |
| + void scrollControlWasSetNeedsPaintInvalidation() {} |
| + |
| + using ScrollableArea::horizontalScrollbarNeedsPaintInvalidation; |
| + using ScrollableArea::verticalScrollbarNeedsPaintInvalidation; |
| + using ScrollableArea::clearNeedsPaintInvalidationForScrollControls; |
| + |
| + DEFINE_INLINE_VIRTUAL_TRACE() |
| + { |
| + ScrollableArea::trace(visitor); |
| + } |
| + |
| +private: |
| + void setMaximumScrollPosition(const IntPoint& maximumScrollPosition) |
| + { |
| + m_maximumScrollPosition = maximumScrollPosition; |
| + } |
| + |
| + explicit MockScrollableArea() |
| + : m_maximumScrollPosition(IntPoint(0, 100)) |
| + { |
| + } |
| + |
| + IntPoint m_scrollPosition; |
| + IntPoint m_maximumScrollPosition; |
| +}; |
| + |
| +class ScrollbarTestSuite : public testing::Test { |
| +public: |
| + ScrollbarTestSuite() {} |
| + |
| + void SetUp() override |
| + { |
| + TestingPlatformSupport::Config config; |
| + config.compositorSupport = Platform::current()->compositorSupport(); |
| + m_fakePlatform = adoptPtr(new TestingPlatformSupportWithMockScheduler(config)); |
| + } |
| + |
| + void TearDown() override |
| + { |
| + m_fakePlatform = nullptr; |
| + } |
| + |
| +private: |
| + OwnPtr<TestingPlatformSupportWithMockScheduler> m_fakePlatform; |
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif |