blob: 1ba5f451c4302e45ee654545cf118df5d5e36305 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "config.h"
#include "platform/scroll/ScrollableArea.h"
#include <gmock/gmock.h>
#include <gtest/gtest.h>
using namespace blink;
namespace {
class MockScrollableArea : public ScrollableArea {
public:
MockScrollableArea(const IntPoint& maximumScrollPosition)
: m_maximumScrollPosition(maximumScrollPosition) { }
MOCK_CONST_METHOD0(isActive, bool());
MOCK_CONST_METHOD1(scrollSize, int(ScrollbarOrientation));
MOCK_METHOD2(invalidateScrollbar, void(Scrollbar*, const IntRect&));
MOCK_CONST_METHOD0(isScrollCornerVisible, bool());
MOCK_CONST_METHOD0(scrollCornerRect, IntRect());
MOCK_METHOD2(invalidateScrollbarRect, void(Scrollbar*, const IntRect&));
MOCK_METHOD1(invalidateScrollCornerRect, void(const IntRect&));
MOCK_CONST_METHOD0(enclosingScrollableArea, ScrollableArea*());
MOCK_CONST_METHOD0(minimumScrollPosition, IntPoint());
MOCK_CONST_METHOD1(visibleContentRect, IntRect(IncludeScrollbarsInRect));
MOCK_CONST_METHOD0(contentsSize, IntSize());
MOCK_CONST_METHOD0(overhangAmount, IntSize());
MOCK_CONST_METHOD0(scrollbarsCanBeActive, bool());
MOCK_CONST_METHOD0(scrollableAreaBoundingBox, IntRect());
virtual bool userInputScrollable(ScrollbarOrientation) const override { return true; }
virtual bool shouldPlaceVerticalScrollbarOnLeft() const override { return false; }
virtual void setScrollOffset(const IntPoint& offset) override { m_scrollPosition = offset.shrunkTo(m_maximumScrollPosition); }
virtual IntPoint scrollPosition() const override { return m_scrollPosition; }
virtual IntPoint maximumScrollPosition() const override { return m_maximumScrollPosition; }
virtual int visibleHeight() const override { return 768; }
virtual int visibleWidth() const override { return 1024; }
virtual bool scrollAnimatorEnabled() const override { return false; }
virtual int pageStep(ScrollbarOrientation) const override { return 0; }
private:
IntPoint m_scrollPosition;
IntPoint m_maximumScrollPosition;
};
TEST(ScrollableAreaTest, ScrollAnimatorCurrentPositionShouldBeSync)
{
MockScrollableArea scrollableArea(IntPoint(0, 100));
scrollableArea.notifyScrollPositionChanged(IntPoint(0, 10000));
EXPECT_EQ(100.0, scrollableArea.scrollAnimator()->currentPosition().y());
}
} // unnamed namespace