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 4befa150a1311a1317b1f2f782f1ea0e2eae0ce1..4145cac8e32a75ca991777924f400f96e3b470b1 100644 |
--- a/cc/input/top_controls_manager_unittest.cc |
+++ b/cc/input/top_controls_manager_unittest.cc |
@@ -5,7 +5,9 @@ |
#include "cc/input/top_controls_manager.h" |
#include <algorithm> |
+#include <cmath> |
+#include "base/logging.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/time/time.h" |
#include "cc/input/top_controls_manager_client.h" |
@@ -51,6 +53,9 @@ class MockTopControlsManagerClient : public TopControlsManagerClient { |
float TopControlsHeight() const override { return top_controls_height_; } |
void SetCurrentTopControlsShownRatio(float ratio) override { |
+ ASSERT_FALSE(std::isnan(ratio)); |
+ ASSERT_FALSE(ratio == std::numeric_limits<float>::infinity()); |
+ ASSERT_FALSE(ratio == -std::numeric_limits<float>::infinity()); |
ratio = std::max(ratio, 0.f); |
ratio = std::min(ratio, 1.f); |
top_controls_shown_ratio_ = ratio; |
@@ -446,50 +451,20 @@ TEST(TopControlsManagerTest, ShrinkingHeightKeepsTopControlsHidden) { |
EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); |
} |
-TEST(TopControlsManagerTest, ZeroTopControlsHeightScrolling) { |
+TEST(TopControlsManagerTest, ScrollByWithZeroHeightControlsIsNoop) { |
MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); |
- client.SetCurrentTopControlsShownRatio(0.f); |
TopControlsManager* manager = client.manager(); |
manager->UpdateTopControlsState(BOTH, BOTH, false); |
manager->ScrollBegin(); |
- EXPECT_FLOAT_EQ(-10.f, manager->ScrollBy(gfx::Vector2dF(0.f, -10.f)).y()); |
- EXPECT_FLOAT_EQ(0.f, manager->TopControlsShownRatio()); |
- |
- client.SetTopControlsHeight(20.f); |
- EXPECT_FLOAT_EQ(0.f, manager->TopControlsShownRatio()); |
- |
- EXPECT_FLOAT_EQ(0.f, manager->ScrollBy(gfx::Vector2dF(0.f, -15.f)).y()); |
- EXPECT_FLOAT_EQ(0.75f, manager->TopControlsShownRatio()); |
- client.SetTopControlsHeight(0.f); |
+ 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()); |
manager->ScrollEnd(); |
- |
- EXPECT_FALSE(manager->animation()); |
- EXPECT_FLOAT_EQ(1.f, manager->TopControlsShownRatio()); |
} |
-TEST(TopControlsManagerTest, ZeroTopControlsHeightAnimating) { |
- MockTopControlsManagerClient client(0.f, 0.5f, 0.5f); |
- client.SetCurrentTopControlsShownRatio(0.f); |
- TopControlsManager* manager = client.manager(); |
- |
- manager->UpdateTopControlsState(BOTH, HIDDEN, false); |
- EXPECT_FLOAT_EQ(0.f, manager->TopControlsShownRatio()); |
- manager->UpdateTopControlsState(BOTH, SHOWN, false); |
- EXPECT_FLOAT_EQ(1.f, manager->TopControlsShownRatio()); |
- |
- manager->UpdateTopControlsState(BOTH, HIDDEN, true); |
- EXPECT_FLOAT_EQ(0.f, manager->TopControlsShownRatio()); |
- EXPECT_FALSE(manager->animation()); |
- manager->UpdateTopControlsState(BOTH, SHOWN, true); |
- EXPECT_FLOAT_EQ(1.f, manager->TopControlsShownRatio()); |
- EXPECT_FALSE(manager->animation()); |
- |
- client.SetCurrentTopControlsShownRatio(0.3f); |
- manager->MainThreadHasStoppedFlinging(); |
- EXPECT_FALSE(manager->animation()); |
- EXPECT_FLOAT_EQ(0.f, manager->TopControlsShownRatio()); |
-} |
} // namespace |
} // namespace cc |