Index: cc/input/browser_controls_offset_manager_unittest.cc |
diff --git a/cc/input/top_controls_manager_unittest.cc b/cc/input/browser_controls_offset_manager_unittest.cc |
similarity index 69% |
rename from cc/input/top_controls_manager_unittest.cc |
rename to cc/input/browser_controls_offset_manager_unittest.cc |
index 5ac2cafb9c486e6ecbee60d9a3733f71f7b20c62..1fc7498068c7fa2d5003926cebf4587f56e4dc1d 100644 |
--- a/cc/input/top_controls_manager_unittest.cc |
+++ b/cc/input/browser_controls_offset_manager_unittest.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "cc/input/top_controls_manager.h" |
+#include "cc/input/browser_controls_offset_manager.h" |
#include <algorithm> |
#include <cmath> |
@@ -10,7 +10,7 @@ |
#include "base/logging.h" |
#include "base/time/time.h" |
-#include "cc/input/top_controls_manager_client.h" |
+#include "cc/input/browser_controls_offset_manager_client.h" |
#include "cc/layers/layer_impl.h" |
#include "cc/test/fake_impl_task_runner_provider.h" |
#include "cc/test/fake_layer_tree_host_impl.h" |
@@ -23,11 +23,12 @@ |
namespace cc { |
namespace { |
-class MockTopControlsManagerClient : public TopControlsManagerClient { |
+class MockBrowserControlsOffsetManagerClient |
+ : public BrowserControlsOffsetManagerClient { |
public: |
- MockTopControlsManagerClient(float top_controls_height, |
- float top_controls_show_threshold, |
- float top_controls_hide_threshold) |
+ MockBrowserControlsOffsetManagerClient(float top_controls_height, |
+ float browser_controls_show_threshold, |
+ float browser_controls_hide_threshold) |
: host_impl_(&task_runner_provider_, |
&shared_bitmap_manager_, |
&task_graph_runner_), |
@@ -36,17 +37,17 @@ class MockTopControlsManagerClient : public TopControlsManagerClient { |
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), |
- top_controls_hide_threshold_(top_controls_hide_threshold) { |
+ browser_controls_show_threshold_(browser_controls_show_threshold), |
+ browser_controls_hide_threshold_(browser_controls_hide_threshold) { |
active_tree_ = base::MakeUnique<LayerTreeImpl>( |
- &host_impl_, new SyncedProperty<ScaleGroup>, new SyncedTopControls, |
+ &host_impl_, new SyncedProperty<ScaleGroup>, new SyncedBrowserControls, |
new SyncedElasticOverscroll); |
root_scroll_layer_ = LayerImpl::Create(active_tree_.get(), 1); |
} |
- ~MockTopControlsManagerClient() override {} |
+ ~MockBrowserControlsOffsetManagerClient() override {} |
- void DidChangeTopControlsPosition() override { |
+ void DidChangeBrowserControlsPosition() override { |
redraw_needed_ = true; |
update_draw_properties_needed_ = true; |
} |
@@ -59,7 +60,7 @@ class MockTopControlsManagerClient : public TopControlsManagerClient { |
float TopControlsHeight() const override { return top_controls_height_; } |
- void SetCurrentTopControlsShownRatio(float ratio) override { |
+ void SetCurrentBrowserControlsShownRatio(float ratio) override { |
ASSERT_FALSE(std::isnan(ratio)); |
ASSERT_FALSE(ratio == std::numeric_limits<float>::infinity()); |
ASSERT_FALSE(ratio == -std::numeric_limits<float>::infinity()); |
@@ -68,24 +69,22 @@ class MockTopControlsManagerClient : public TopControlsManagerClient { |
top_controls_shown_ratio_ = ratio; |
} |
- float CurrentTopControlsShownRatio() const override { |
+ float CurrentBrowserControlsShownRatio() const override { |
return top_controls_shown_ratio_; |
} |
- LayerImpl* rootScrollLayer() { |
- return root_scroll_layer_.get(); |
- } |
+ LayerImpl* rootScrollLayer() { return root_scroll_layer_.get(); } |
- TopControlsManager* manager() { |
+ BrowserControlsOffsetManager* manager() { |
if (!manager_) { |
- manager_ = TopControlsManager::Create(this, |
- top_controls_show_threshold_, |
- top_controls_hide_threshold_); |
+ manager_ = BrowserControlsOffsetManager::Create( |
+ this, browser_controls_show_threshold_, |
+ browser_controls_hide_threshold_); |
} |
return manager_.get(); |
} |
- void SetTopControlsHeight(float height) { top_controls_height_ = height; } |
+ void SetBrowserControlsHeight(float height) { top_controls_height_ = height; } |
void SetBottomControlsHeight(float height) { |
bottom_controls_height_ = height; |
@@ -98,20 +97,20 @@ class MockTopControlsManagerClient : public TopControlsManagerClient { |
FakeLayerTreeHostImpl host_impl_; |
std::unique_ptr<LayerTreeImpl> active_tree_; |
std::unique_ptr<LayerImpl> root_scroll_layer_; |
- std::unique_ptr<TopControlsManager> manager_; |
+ std::unique_ptr<BrowserControlsOffsetManager> manager_; |
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_; |
- float top_controls_hide_threshold_; |
+ float browser_controls_show_threshold_; |
+ float browser_controls_hide_threshold_; |
}; |
-TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) { |
- MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, EnsureScrollThresholdApplied) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBegin(); |
@@ -153,9 +152,9 @@ TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) { |
manager->ScrollEnd(); |
} |
-TEST(TopControlsManagerTest, PartialShownHideAnimation) { |
- MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, PartialShownHideAnimation) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBegin(); |
manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
@@ -183,9 +182,9 @@ TEST(TopControlsManagerTest, PartialShownHideAnimation) { |
EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
} |
-TEST(TopControlsManagerTest, PartialShownShowAnimation) { |
- MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, PartialShownShowAnimation) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBegin(); |
manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
@@ -213,9 +212,10 @@ TEST(TopControlsManagerTest, PartialShownShowAnimation) { |
EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); |
} |
-TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) { |
- MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, |
+ PartialHiddenWithAmbiguousThresholdShows) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBegin(); |
@@ -239,9 +239,10 @@ TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) { |
EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); |
} |
-TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) { |
- MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, |
+ PartialHiddenWithAmbiguousThresholdHides) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBegin(); |
@@ -265,9 +266,10 @@ TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) { |
EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
} |
-TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) { |
- MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, |
+ PartialShownWithAmbiguousThresholdHides) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); |
EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
@@ -295,9 +297,10 @@ TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) { |
EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
} |
-TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) { |
- MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, |
+ PartialShownWithAmbiguousThresholdShows) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.25f, 0.25f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBy(gfx::Vector2dF(0.f, 200.f)); |
EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); |
@@ -325,9 +328,9 @@ TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) { |
EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); |
} |
-TEST(TopControlsManagerTest, PinchIgnoresScroll) { |
- MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, PinchIgnoresScroll) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
// Hide the controls. |
manager->ScrollBegin(); |
@@ -354,9 +357,9 @@ TEST(TopControlsManagerTest, PinchIgnoresScroll) { |
EXPECT_TRUE(manager->has_animation()); |
} |
-TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) { |
- MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, PinchBeginStartsAnimationIfNecessary) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBegin(); |
manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
@@ -407,45 +410,48 @@ TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) { |
EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
} |
-TEST(TopControlsManagerTest, HeightChangeMaintainsFullyVisibleControls) { |
- MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, |
+ HeightChangeMaintainsFullyVisibleControls) { |
+ MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
- client.SetTopControlsHeight(100.f); |
+ client.SetBrowserControlsHeight(100.f); |
EXPECT_FALSE(manager->has_animation()); |
EXPECT_FLOAT_EQ(100.f, manager->TopControlsHeight()); |
EXPECT_FLOAT_EQ(0, manager->ControlsTopOffset()); |
- client.SetTopControlsHeight(50.f); |
+ client.SetBrowserControlsHeight(50.f); |
EXPECT_FALSE(manager->has_animation()); |
EXPECT_FLOAT_EQ(50.f, manager->TopControlsHeight()); |
EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
} |
-TEST(TopControlsManagerTest, GrowingHeightKeepsTopControlsHidden) { |
- MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); |
- TopControlsManager* manager = client.manager(); |
- client.SetTopControlsHeight(1.f); |
- manager->UpdateTopControlsState(HIDDEN, HIDDEN, false); |
+TEST(BrowserControlsOffsetManagerTest, |
+ GrowingHeightKeepsBrowserControlsHidden) { |
+ MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
+ client.SetBrowserControlsHeight(1.f); |
+ manager->UpdateBrowserControlsState(HIDDEN, HIDDEN, false); |
EXPECT_EQ(-1.f, manager->ControlsTopOffset()); |
EXPECT_EQ(0.f, manager->ContentTopOffset()); |
- client.SetTopControlsHeight(50.f); |
+ client.SetBrowserControlsHeight(50.f); |
EXPECT_FALSE(manager->has_animation()); |
EXPECT_EQ(-50.f, manager->ControlsTopOffset()); |
EXPECT_EQ(0.f, manager->ContentTopOffset()); |
- client.SetTopControlsHeight(100.f); |
+ client.SetBrowserControlsHeight(100.f); |
EXPECT_FALSE(manager->has_animation()); |
EXPECT_EQ(-100.f, manager->ControlsTopOffset()); |
EXPECT_EQ(0.f, manager->ContentTopOffset()); |
} |
-TEST(TopControlsManagerTest, ShrinkingHeightKeepsTopControlsHidden) { |
- MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
- TopControlsManager* manager = client.manager(); |
+TEST(BrowserControlsOffsetManagerTest, |
+ ShrinkingHeightKeepsBrowserControlsHidden) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBegin(); |
manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
@@ -453,35 +459,53 @@ TEST(TopControlsManagerTest, ShrinkingHeightKeepsTopControlsHidden) { |
EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
manager->ScrollEnd(); |
- client.SetTopControlsHeight(50.f); |
+ client.SetBrowserControlsHeight(50.f); |
EXPECT_FALSE(manager->has_animation()); |
EXPECT_FLOAT_EQ(-50.f, manager->ControlsTopOffset()); |
EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
- client.SetTopControlsHeight(0.f); |
+ client.SetBrowserControlsHeight(0.f); |
EXPECT_FALSE(manager->has_animation()); |
EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
} |
-TEST(TopControlsManagerTest, ScrollByWithZeroHeightControlsIsNoop) { |
- MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); |
- TopControlsManager* manager = client.manager(); |
- manager->UpdateTopControlsState(BOTH, BOTH, false); |
+TEST(BrowserControlsOffsetManagerTest, ScrollByWithZeroHeightControlsIsNoop) { |
+ MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
+ manager->UpdateBrowserControlsState(BOTH, BOTH, false); |
manager->ScrollBegin(); |
gfx::Vector2dF pending = manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); |
EXPECT_FLOAT_EQ(20.f, pending.y()); |
EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); |
EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
- EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); |
+ EXPECT_FLOAT_EQ(1.f, client.CurrentBrowserControlsShownRatio()); |
+ manager->ScrollEnd(); |
+} |
+ |
+TEST(BrowserControlsOffsetManagerTest, ScrollThenRestoreBottomControls) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
+ client.SetBottomControlsHeight(100.f); |
+ BrowserControlsOffsetManager* 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, ScrollThenRestoreBottomControls) { |
- MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
+TEST(BrowserControlsOffsetManagerTest, |
+ ScrollThenRestoreBottomControlsNoBrowserControls) { |
+ MockBrowserControlsOffsetManagerClient client(0.f, 0.5f, 0.5f); |
client.SetBottomControlsHeight(100.f); |
- TopControlsManager* manager = client.manager(); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBegin(); |
manager->ScrollBy(gfx::Vector2dF(0.f, 20.f)); |
EXPECT_FLOAT_EQ(80.f, manager->ContentBottomOffset()); |
@@ -495,10 +519,10 @@ TEST(TopControlsManagerTest, ScrollThenRestoreBottomControls) { |
manager->ScrollEnd(); |
} |
-TEST(TopControlsManagerTest, HideAndPeekBottomControls) { |
- MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
+TEST(BrowserControlsOffsetManagerTest, HideAndPeekBottomControls) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
client.SetBottomControlsHeight(100.f); |
- TopControlsManager* manager = client.manager(); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
manager->ScrollBegin(); |
manager->ScrollBy(gfx::Vector2dF(0.f, 300.f)); |
EXPECT_FLOAT_EQ(0.f, manager->ContentBottomOffset()); |
@@ -512,19 +536,20 @@ TEST(TopControlsManagerTest, HideAndPeekBottomControls) { |
manager->ScrollEnd(); |
} |
-TEST(TopControlsManagerTest, HideAndImmediateShowKeepsControlsVisible) { |
- MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); |
+TEST(BrowserControlsOffsetManagerTest, |
+ HideAndImmediateShowKeepsControlsVisible) { |
+ MockBrowserControlsOffsetManagerClient client(100.f, 0.5f, 0.5f); |
client.SetBottomControlsHeight(100.f); |
- TopControlsManager* manager = client.manager(); |
- EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); |
+ BrowserControlsOffsetManager* manager = client.manager(); |
+ EXPECT_FLOAT_EQ(1.f, client.CurrentBrowserControlsShownRatio()); |
- manager->UpdateTopControlsState(BOTH, HIDDEN, true); |
+ manager->UpdateBrowserControlsState(BOTH, HIDDEN, true); |
EXPECT_TRUE(manager->has_animation()); |
- EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); |
+ EXPECT_FLOAT_EQ(1.f, client.CurrentBrowserControlsShownRatio()); |
- manager->UpdateTopControlsState(BOTH, SHOWN, true); |
+ manager->UpdateBrowserControlsState(BOTH, SHOWN, true); |
EXPECT_FALSE(manager->has_animation()); |
- EXPECT_FLOAT_EQ(1.f, client.CurrentTopControlsShownRatio()); |
+ EXPECT_FLOAT_EQ(1.f, client.CurrentBrowserControlsShownRatio()); |
} |
} // namespace |