blob: fb1ff4620e2eae7c2a5aedd6895cf4d030df1a71 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/animation/css/css_transition_data.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/renderer/platform/animation/timing_function.h"
namespace blink {
TEST(CSSTransitionData, TransitionsMatchForStyleRecalc_Initial) {
std::unique_ptr<CSSTransitionData> transition1 =
std::make_unique<CSSTransitionData>();
std::unique_ptr<CSSTransitionData> transition2 =
std::make_unique<CSSTransitionData>();
EXPECT_TRUE(transition1->TransitionsMatchForStyleRecalc(*transition2));
}
TEST(CSSTransitionData, TransitionsMatchForStyleRecalc_CubicBezierSameObject) {
std::unique_ptr<CSSTransitionData> transition1 =
std::make_unique<CSSTransitionData>();
std::unique_ptr<CSSTransitionData> transition2 =
std::make_unique<CSSTransitionData>();
scoped_refptr<TimingFunction> func =
CubicBezierTimingFunction::Create(0.2f, 0.2f, 0.9f, 0.7f);
transition1->TimingFunctionList().push_back(func);
transition2->TimingFunctionList().push_back(func);
EXPECT_TRUE(transition1->TransitionsMatchForStyleRecalc(*transition2));
}
TEST(CSSTransitionData,
TransitionsMatchForStyleRecalc_CubicBezierDifferentObjects) {
std::unique_ptr<CSSTransitionData> transition1 =
std::make_unique<CSSTransitionData>();
std::unique_ptr<CSSTransitionData> transition2 =
std::make_unique<CSSTransitionData>();
scoped_refptr<TimingFunction> func1 =
CubicBezierTimingFunction::Create(0.2f, 0.2f, 0.9f, 0.7f);
scoped_refptr<TimingFunction> func2 =
CubicBezierTimingFunction::Create(0.2f, 0.2f, 0.9f, 0.7f);
transition1->TimingFunctionList().push_back(func1);
transition2->TimingFunctionList().push_back(func2);
EXPECT_TRUE(transition1->TransitionsMatchForStyleRecalc(*transition2));
}
TEST(CSSTransitionData,
TransitionsMatchForStyleRecalc_CubicBezierDifferentValues) {
std::unique_ptr<CSSTransitionData> transition1 =
std::make_unique<CSSTransitionData>();
std::unique_ptr<CSSTransitionData> transition2 =
std::make_unique<CSSTransitionData>();
scoped_refptr<TimingFunction> func1 =
CubicBezierTimingFunction::Create(0.1f, 0.25f, 0.9f, 0.57f);
scoped_refptr<TimingFunction> func2 =
CubicBezierTimingFunction::Create(0.2f, 0.2f, 0.9f, 0.7f);
transition1->TimingFunctionList().push_back(func1);
transition2->TimingFunctionList().push_back(func2);
EXPECT_FALSE(transition1->TransitionsMatchForStyleRecalc(*transition2));
}
} // namespace blink