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

Unified Diff: cc/input/top_controls_manager_unittest.cc

Issue 714003002: Allow changing top controls height (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 6 years 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.cc ('k') | cc/trees/layer_tree_host.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 77b40c9de0524a1fdda06213dff3a8b4f8e457a1..4ee58665b52b6d4e8a5ffe8e75ab6804a4040383 100644
--- a/cc/input/top_controls_manager_unittest.cc
+++ b/cc/input/top_controls_manager_unittest.cc
@@ -19,16 +19,16 @@
namespace cc {
namespace {
-static const float kTopControlsHeight = 100;
-
class MockTopControlsManagerClient : public TopControlsManagerClient {
public:
- MockTopControlsManagerClient(float top_controls_show_threshold,
+ MockTopControlsManagerClient(float top_controls_height,
+ float top_controls_show_threshold,
float top_controls_hide_threshold)
: host_impl_(&proxy_, &shared_bitmap_manager_),
redraw_needed_(false),
update_draw_properties_needed_(false),
top_controls_top_offset_(0.f),
+ top_controls_height_(top_controls_height),
top_controls_show_threshold_(top_controls_show_threshold),
top_controls_hide_threshold_(top_controls_hide_threshold) {
active_tree_ = LayerTreeImpl::create(&host_impl_);
@@ -57,9 +57,9 @@ class MockTopControlsManagerClient : public TopControlsManagerClient {
TopControlsManager* manager() {
if (!manager_) {
manager_ = TopControlsManager::Create(this,
- kTopControlsHeight,
top_controls_show_threshold_,
top_controls_hide_threshold_);
+ manager_->SetTopControlsHeight(top_controls_height_);
}
return manager_.get();
}
@@ -75,12 +75,13 @@ class MockTopControlsManagerClient : public TopControlsManagerClient {
bool update_draw_properties_needed_;
float top_controls_top_offset_;
+ float top_controls_height_;
float top_controls_show_threshold_;
float top_controls_hide_threshold_;
};
TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) {
- MockTopControlsManagerClient client(0.5f, 0.5f);
+ MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
TopControlsManager* manager = client.manager();
manager->ScrollBegin();
@@ -124,7 +125,7 @@ TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) {
}
TEST(TopControlsManagerTest, PartialShownHideAnimation) {
- MockTopControlsManagerClient client(0.5f, 0.5f);
+ MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
TopControlsManager* manager = client.manager();
manager->ScrollBegin();
manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
@@ -154,7 +155,7 @@ TEST(TopControlsManagerTest, PartialShownHideAnimation) {
}
TEST(TopControlsManagerTest, PartialShownShowAnimation) {
- MockTopControlsManagerClient client(0.5f, 0.5f);
+ MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
TopControlsManager* manager = client.manager();
manager->ScrollBegin();
manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
@@ -184,7 +185,7 @@ TEST(TopControlsManagerTest, PartialShownShowAnimation) {
}
TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) {
- MockTopControlsManagerClient client(0.25f, 0.25f);
+ MockTopControlsManagerClient client(100.f, 0.25f, 0.25f);
TopControlsManager* manager = client.manager();
manager->ScrollBegin();
@@ -210,7 +211,7 @@ TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) {
}
TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) {
- MockTopControlsManagerClient client(0.25f, 0.25f);
+ MockTopControlsManagerClient client(100.f, 0.25f, 0.25f);
TopControlsManager* manager = client.manager();
manager->ScrollBegin();
@@ -236,7 +237,7 @@ TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) {
}
TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) {
- MockTopControlsManagerClient client(0.25f, 0.25f);
+ MockTopControlsManagerClient client(100.f, 0.25f, 0.25f);
TopControlsManager* manager = client.manager();
manager->ScrollBy(gfx::Vector2dF(0.f, 200.f));
@@ -266,7 +267,7 @@ TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) {
}
TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) {
- MockTopControlsManagerClient client(0.25f, 0.25f);
+ MockTopControlsManagerClient client(100.f, 0.25f, 0.25f);
TopControlsManager* manager = client.manager();
manager->ScrollBy(gfx::Vector2dF(0.f, 200.f));
@@ -296,7 +297,7 @@ TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) {
}
TEST(TopControlsManagerTest, PinchIgnoresScroll) {
- MockTopControlsManagerClient client(0.5f, 0.5f);
+ MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
TopControlsManager* manager = client.manager();
// Hide the controls.
@@ -325,7 +326,7 @@ TEST(TopControlsManagerTest, PinchIgnoresScroll) {
}
TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) {
- MockTopControlsManagerClient client(0.5f, 0.5f);
+ MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
TopControlsManager* manager = client.manager();
manager->ScrollBegin();
@@ -378,5 +379,80 @@ TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) {
EXPECT_EQ(0.f, manager->ControlsTopOffset());
}
+TEST(TopControlsManagerTest, HeightChangeMaintainsFullyVisibleControls) {
+ MockTopControlsManagerClient client(0.f, 0.5f, 0.5f);
+ TopControlsManager* manager = client.manager();
+
+ EXPECT_EQ(0.f, manager->top_controls_height());
+ EXPECT_EQ(0.f, manager->ControlsTopOffset());
+
+ manager->SetTopControlsHeight(100.f);
+ EXPECT_FALSE(manager->animation());
+ EXPECT_EQ(100.f, manager->top_controls_height());
+ EXPECT_EQ(0, manager->ControlsTopOffset());
+
+ manager->SetTopControlsHeight(50.f);
+ EXPECT_FALSE(manager->animation());
+ EXPECT_EQ(50.f, manager->top_controls_height());
+ EXPECT_EQ(0.f, manager->ControlsTopOffset());
+}
+
+TEST(TopControlsManagerTest, ShrinkingHeightKeepsTopControlsHidden) {
+ MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
+ TopControlsManager* manager = client.manager();
+
+ manager->ScrollBegin();
+ manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
+ EXPECT_EQ(-100.f, manager->ControlsTopOffset());
+ EXPECT_EQ(0.f, manager->ContentTopOffset());
+ manager->ScrollEnd();
+
+ manager->SetTopControlsHeight(50.f);
+ EXPECT_FALSE(manager->animation());
+ EXPECT_EQ(-50.f, manager->ControlsTopOffset());
+ EXPECT_EQ(0.f, manager->ContentTopOffset());
+
+ manager->SetTopControlsHeight(0.f);
+ EXPECT_FALSE(manager->animation());
+ EXPECT_EQ(0.f, manager->ControlsTopOffset());
+ EXPECT_EQ(0.f, manager->ContentTopOffset());
+}
+
+TEST(TopControlsManagerTest, HiddenTopControlsReadjustOnIncreasedHeight) {
+ MockTopControlsManagerClient client(10.f, 0.5f, 0.5f);
+ TopControlsManager* manager = client.manager();
+
+ manager->ScrollBegin();
+ manager->ScrollBy(gfx::Vector2dF(0.f, 300.f));
+ EXPECT_EQ(-10.f, manager->ControlsTopOffset());
+ EXPECT_EQ(0.f, manager->ContentTopOffset());
+ manager->ScrollEnd();
+
+ manager->SetTopControlsHeight(15.f);
+ EXPECT_TRUE(manager->animation());
+ base::TimeTicks time = base::TimeTicks::Now();
+ float previous_offset = manager->ControlsTopOffset();
+ while (manager->animation()) {
+ time = base::TimeDelta::FromMicroseconds(100) + time;
+ manager->Animate(time);
+ EXPECT_LT(manager->ControlsTopOffset(), previous_offset);
+ previous_offset = manager->ControlsTopOffset();
+ }
+ EXPECT_FALSE(manager->animation());
+ EXPECT_EQ(-15.f, manager->ControlsTopOffset());
+
+ manager->SetTopControlsHeight(35.f);
+ EXPECT_TRUE(manager->animation());
+ time = base::TimeTicks::Now();
+ previous_offset = manager->ControlsTopOffset();
+ while (manager->animation()) {
+ time = base::TimeDelta::FromMicroseconds(100) + time;
+ manager->Animate(time);
+ EXPECT_GT(manager->ControlsTopOffset(), previous_offset);
+ previous_offset = manager->ControlsTopOffset();
+ }
+ EXPECT_FALSE(manager->animation());
+ EXPECT_EQ(0.f, manager->ControlsTopOffset());
+}
} // namespace
} // namespace cc
« no previous file with comments | « cc/input/top_controls_manager.cc ('k') | cc/trees/layer_tree_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698