Commit 2c00a9a6 authored by aelias's avatar aelias Committed by Commit bot

Deflake and reenable top controls tests.

Windows bots had trouble with the expectations in the animation loops.
Because of floating point inaccuracies, the top controls offset could be
exactly the same during the last two frames of the animation, because
the shown ratio was just off the minimum and that delta disappeared when
multiplying by the height.  This switches to checking the ratio itself,
which should match the same value that the animation system uses to
check if the next frame is needed.

BUG=456617

Review URL: https://codereview.chromium.org/907143002

Cr-Commit-Position: refs/heads/master@{#315416}
parent ad90351f
...@@ -135,8 +135,7 @@ TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) { ...@@ -135,8 +135,7 @@ TEST(TopControlsManagerTest, EnsureScrollThresholdApplied) {
manager->ScrollEnd(); manager->ScrollEnd();
} }
// Flaky. See http://crbug.com/456617. TEST(TopControlsManagerTest, PartialShownHideAnimation) {
TEST(TopControlsManagerTest, DISABLED_PartialShownHideAnimation) {
MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
TopControlsManager* manager = client.manager(); TopControlsManager* manager = client.manager();
manager->ScrollBegin(); manager->ScrollBegin();
...@@ -154,12 +153,12 @@ TEST(TopControlsManagerTest, DISABLED_PartialShownHideAnimation) { ...@@ -154,12 +153,12 @@ TEST(TopControlsManagerTest, DISABLED_PartialShownHideAnimation) {
EXPECT_TRUE(manager->animation()); EXPECT_TRUE(manager->animation());
base::TimeTicks time = gfx::FrameTime::Now(); base::TimeTicks time = gfx::FrameTime::Now();
float previous_offset = manager->ControlsTopOffset(); float previous;
while (manager->animation()) { while (manager->animation()) {
previous = manager->TopControlsShownRatio();
time = base::TimeDelta::FromMicroseconds(100) + time; time = base::TimeDelta::FromMicroseconds(100) + time;
manager->Animate(time); manager->Animate(time);
EXPECT_LT(manager->ControlsTopOffset(), previous_offset); EXPECT_LT(manager->TopControlsShownRatio(), previous);
previous_offset = manager->ControlsTopOffset();
} }
EXPECT_FALSE(manager->animation()); EXPECT_FALSE(manager->animation());
EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
...@@ -184,12 +183,12 @@ TEST(TopControlsManagerTest, PartialShownShowAnimation) { ...@@ -184,12 +183,12 @@ TEST(TopControlsManagerTest, PartialShownShowAnimation) {
EXPECT_TRUE(manager->animation()); EXPECT_TRUE(manager->animation());
base::TimeTicks time = gfx::FrameTime::Now(); base::TimeTicks time = gfx::FrameTime::Now();
float previous_offset = manager->ControlsTopOffset(); float previous;
while (manager->animation()) { while (manager->animation()) {
previous = manager->TopControlsShownRatio();
time = base::TimeDelta::FromMicroseconds(100) + time; time = base::TimeDelta::FromMicroseconds(100) + time;
manager->Animate(time); manager->Animate(time);
EXPECT_GT(manager->ControlsTopOffset(), previous_offset); EXPECT_GT(manager->TopControlsShownRatio(), previous);
previous_offset = manager->ControlsTopOffset();
} }
EXPECT_FALSE(manager->animation()); EXPECT_FALSE(manager->animation());
EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
...@@ -210,21 +209,19 @@ TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) { ...@@ -210,21 +209,19 @@ TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdShows) {
EXPECT_TRUE(manager->animation()); EXPECT_TRUE(manager->animation());
base::TimeTicks time = gfx::FrameTime::Now(); base::TimeTicks time = gfx::FrameTime::Now();
float previous_offset = manager->ControlsTopOffset(); float previous;
while (manager->animation()) { while (manager->animation()) {
previous = manager->TopControlsShownRatio();
time = base::TimeDelta::FromMicroseconds(100) + time; time = base::TimeDelta::FromMicroseconds(100) + time;
manager->Animate(time); manager->Animate(time);
EXPECT_GT(manager->ControlsTopOffset(), previous_offset); EXPECT_GT(manager->TopControlsShownRatio(), previous);
previous_offset = manager->ControlsTopOffset();
} }
EXPECT_FALSE(manager->animation()); EXPECT_FALSE(manager->animation());
EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset()); EXPECT_FLOAT_EQ(100.f, manager->ContentTopOffset());
} }
// Flaky. See http://crbug.com/456617. TEST(TopControlsManagerTest, PartialHiddenWithAmbiguousThresholdHides) {
TEST(TopControlsManagerTest,
DISABLED_PartialHiddenWithAmbiguousThresholdHides) {
MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); MockTopControlsManagerClient client(100.f, 0.25f, 0.25f);
TopControlsManager* manager = client.manager(); TopControlsManager* manager = client.manager();
...@@ -238,19 +235,19 @@ TEST(TopControlsManagerTest, ...@@ -238,19 +235,19 @@ TEST(TopControlsManagerTest,
EXPECT_TRUE(manager->animation()); EXPECT_TRUE(manager->animation());
base::TimeTicks time = gfx::FrameTime::Now(); base::TimeTicks time = gfx::FrameTime::Now();
float previous_offset = manager->ControlsTopOffset(); float previous;
while (manager->animation()) { while (manager->animation()) {
previous = manager->TopControlsShownRatio();
time = base::TimeDelta::FromMicroseconds(100) + time; time = base::TimeDelta::FromMicroseconds(100) + time;
manager->Animate(time); manager->Animate(time);
EXPECT_LT(manager->ControlsTopOffset(), previous_offset); EXPECT_LT(manager->TopControlsShownRatio(), previous);
previous_offset = manager->ControlsTopOffset();
} }
EXPECT_FALSE(manager->animation()); EXPECT_FALSE(manager->animation());
EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset()); EXPECT_FLOAT_EQ(0.f, manager->ContentTopOffset());
} }
TEST(TopControlsManagerTest, DISABLED_PartialShownWithAmbiguousThresholdHides) { TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdHides) {
MockTopControlsManagerClient client(100.f, 0.25f, 0.25f); MockTopControlsManagerClient client(100.f, 0.25f, 0.25f);
TopControlsManager* manager = client.manager(); TopControlsManager* manager = client.manager();
...@@ -268,12 +265,12 @@ TEST(TopControlsManagerTest, DISABLED_PartialShownWithAmbiguousThresholdHides) { ...@@ -268,12 +265,12 @@ TEST(TopControlsManagerTest, DISABLED_PartialShownWithAmbiguousThresholdHides) {
EXPECT_TRUE(manager->animation()); EXPECT_TRUE(manager->animation());
base::TimeTicks time = gfx::FrameTime::Now(); base::TimeTicks time = gfx::FrameTime::Now();
float previous_offset = manager->ControlsTopOffset(); float previous;
while (manager->animation()) { while (manager->animation()) {
previous = manager->TopControlsShownRatio();
time = base::TimeDelta::FromMicroseconds(100) + time; time = base::TimeDelta::FromMicroseconds(100) + time;
manager->Animate(time); manager->Animate(time);
EXPECT_LT(manager->ControlsTopOffset(), previous_offset); EXPECT_LT(manager->TopControlsShownRatio(), previous);
previous_offset = manager->ControlsTopOffset();
} }
EXPECT_FALSE(manager->animation()); EXPECT_FALSE(manager->animation());
EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset()); EXPECT_FLOAT_EQ(-100.f, manager->ControlsTopOffset());
...@@ -298,12 +295,12 @@ TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) { ...@@ -298,12 +295,12 @@ TEST(TopControlsManagerTest, PartialShownWithAmbiguousThresholdShows) {
EXPECT_TRUE(manager->animation()); EXPECT_TRUE(manager->animation());
base::TimeTicks time = gfx::FrameTime::Now(); base::TimeTicks time = gfx::FrameTime::Now();
float previous_offset = manager->ControlsTopOffset(); float previous;
while (manager->animation()) { while (manager->animation()) {
previous = manager->TopControlsShownRatio();
time = base::TimeDelta::FromMicroseconds(100) + time; time = base::TimeDelta::FromMicroseconds(100) + time;
manager->Animate(time); manager->Animate(time);
EXPECT_GT(manager->ControlsTopOffset(), previous_offset); EXPECT_GT(manager->TopControlsShownRatio(), previous);
previous_offset = manager->ControlsTopOffset();
} }
EXPECT_FALSE(manager->animation()); EXPECT_FALSE(manager->animation());
EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
...@@ -339,8 +336,7 @@ TEST(TopControlsManagerTest, PinchIgnoresScroll) { ...@@ -339,8 +336,7 @@ TEST(TopControlsManagerTest, PinchIgnoresScroll) {
EXPECT_TRUE(manager->animation()); EXPECT_TRUE(manager->animation());
} }
// Flaky. See http://crbug.com/456617. TEST(TopControlsManagerTest, PinchBeginStartsAnimationIfNecessary) {
TEST(TopControlsManagerTest, DISABLED_PinchBeginStartsAnimationIfNecessary) {
MockTopControlsManagerClient client(100.f, 0.5f, 0.5f); MockTopControlsManagerClient client(100.f, 0.5f, 0.5f);
TopControlsManager* manager = client.manager(); TopControlsManager* manager = client.manager();
...@@ -362,12 +358,12 @@ TEST(TopControlsManagerTest, DISABLED_PinchBeginStartsAnimationIfNecessary) { ...@@ -362,12 +358,12 @@ TEST(TopControlsManagerTest, DISABLED_PinchBeginStartsAnimationIfNecessary) {
EXPECT_TRUE(manager->animation()); EXPECT_TRUE(manager->animation());
base::TimeTicks time = base::TimeTicks::Now(); base::TimeTicks time = base::TimeTicks::Now();
float previous_offset = manager->ControlsTopOffset(); float previous;
while (manager->animation()) { while (manager->animation()) {
previous = manager->TopControlsShownRatio();
time = base::TimeDelta::FromMicroseconds(100) + time; time = base::TimeDelta::FromMicroseconds(100) + time;
manager->Animate(time); manager->Animate(time);
EXPECT_LT(manager->ControlsTopOffset(), previous_offset); EXPECT_LT(manager->TopControlsShownRatio(), previous);
previous_offset = manager->ControlsTopOffset();
} }
EXPECT_FALSE(manager->animation()); EXPECT_FALSE(manager->animation());
...@@ -383,12 +379,11 @@ TEST(TopControlsManagerTest, DISABLED_PinchBeginStartsAnimationIfNecessary) { ...@@ -383,12 +379,11 @@ TEST(TopControlsManagerTest, DISABLED_PinchBeginStartsAnimationIfNecessary) {
EXPECT_TRUE(manager->animation()); EXPECT_TRUE(manager->animation());
time = base::TimeTicks::Now(); time = base::TimeTicks::Now();
previous_offset = manager->ControlsTopOffset();
while (manager->animation()) { while (manager->animation()) {
previous = manager->TopControlsShownRatio();
time = base::TimeDelta::FromMicroseconds(100) + time; time = base::TimeDelta::FromMicroseconds(100) + time;
manager->Animate(time); manager->Animate(time);
EXPECT_GT(manager->ControlsTopOffset(), previous_offset); EXPECT_GT(manager->TopControlsShownRatio(), previous);
previous_offset = manager->ControlsTopOffset();
} }
EXPECT_FALSE(manager->animation()); EXPECT_FALSE(manager->animation());
EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset()); EXPECT_FLOAT_EQ(0.f, manager->ControlsTopOffset());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment