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

Unified Diff: cc/input/top_controls_manager_unittest.cc

Issue 2106753004: Introduce bottom controls to CC and let it respond to scrolling (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: findbug Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/input/top_controls_manager_client.h ('k') | cc/ipc/cc_param_traits_macros.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/input/top_controls_manager_unittest.cc
diff --git a/cc/input/top_controls_manager_unittest.cc b/cc/input/top_controls_manager_unittest.cc
index 3c434dbd7f24873e59fd24aa460bd69469670f13..5074f478a75401f40f02ecef0828b17434d4873b 100644
--- a/cc/input/top_controls_manager_unittest.cc
+++ b/cc/input/top_controls_manager_unittest.cc
@@ -33,6 +33,7 @@ class MockTopControlsManagerClient : public TopControlsManagerClient {
&task_graph_runner_),
redraw_needed_(false),
update_draw_properties_needed_(false),
+ bottom_controls_height_(0.f),
top_controls_shown_ratio_(1.f),
top_controls_height_(top_controls_height),
top_controls_show_threshold_(top_controls_show_threshold),
@@ -52,6 +53,10 @@ class MockTopControlsManagerClient : public TopControlsManagerClient {
bool HaveRootScrollLayer() const override { return true; }
+ float BottomControlsHeight() const override {
+ return bottom_controls_height_;
+ }
+
float TopControlsHeight() const override { return top_controls_height_; }
void SetCurrentTopControlsShownRatio(float ratio) override {
@@ -82,6 +87,10 @@ class MockTopControlsManagerClient : public TopControlsManagerClient {
void SetTopControlsHeight(float height) { top_controls_height_ = height; }
+ void SetBottomControlsHeight(float height) {
+ bottom_controls_height_ = height;
+ }
+
private:
FakeImplTaskRunnerProvider task_runner_provider_;
TestSharedBitmapManager shared_bitmap_manager_;
@@ -93,6 +102,7 @@ class MockTopControlsManagerClient : public TopControlsManagerClient {
bool redraw_needed_;
bool update_draw_properties_needed_;
+ float bottom_controls_height_;
float top_controls_shown_ratio_;
float top_controls_height_;
float top_controls_show_threshold_;
@@ -468,6 +478,39 @@ TEST(TopControlsManagerTest, ScrollByWithZeroHeightControlsIsNoop) {
manager->ScrollEnd();
}
+TEST(TopControlsManagerTest, ScrollThenRestoreBottomControls) {
+ MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
+ client.SetBottomControlsHeight(100.f);
+ TopControlsManager* manager = client.manager();
+ manager->ScrollBegin();
+ manager->ScrollBy(gfx::Vector2dF(0.f, 20.f));
+ EXPECT_FLOAT_EQ(80.f, manager->ContentBottomOffset());
+ EXPECT_FLOAT_EQ(0.8f, manager->BottomControlsShownRatio());
+ manager->ScrollEnd();
+
+ manager->ScrollBegin();
+ manager->ScrollBy(gfx::Vector2dF(0.f, -200.f));
+ EXPECT_FLOAT_EQ(100.f, manager->ContentBottomOffset());
+ EXPECT_FLOAT_EQ(1.f, manager->BottomControlsShownRatio());
+ manager->ScrollEnd();
+}
+
+TEST(TopControlsManagerTest, HideAndPeekBottomControls) {
+ MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
+ client.SetBottomControlsHeight(100.f);
+ TopControlsManager* manager = client.manager();
+ manager->ScrollBegin();
+ manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
+ EXPECT_FLOAT_EQ(0.f, manager->ContentBottomOffset());
+ EXPECT_FLOAT_EQ(0.f, manager->BottomControlsShownRatio());
+ manager->ScrollEnd();
+
+ manager->ScrollBegin();
+ manager->ScrollBy(gfx::Vector2dF(0.f, -15.f));
+ EXPECT_FLOAT_EQ(15.f, manager->ContentBottomOffset());
+ EXPECT_FLOAT_EQ(0.15f, manager->BottomControlsShownRatio());
+ manager->ScrollEnd();
+}
} // namespace
} // namespace cc
« no previous file with comments | « cc/input/top_controls_manager_client.h ('k') | cc/ipc/cc_param_traits_macros.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698