Index: webkit/compositor_bindings/web_transform_animation_curve_unittest.cc |
diff --git a/webkit/compositor_bindings/web_transform_animation_curve_unittest.cc b/webkit/compositor_bindings/web_transform_animation_curve_unittest.cc |
index a267c359d41cd3e759e1b64911a2f6519206fd4b..6712f784732d48c3a8809a18fb9800177cfce0b5 100644 |
--- a/webkit/compositor_bindings/web_transform_animation_curve_unittest.cc |
+++ b/webkit/compositor_bindings/web_transform_animation_curve_unittest.cc |
@@ -8,18 +8,29 @@ |
#include "third_party/WebKit/Source/Platform/chromium/public/WebTransformationMatrix.h" |
#include "third_party/WebKit/Source/Platform/chromium/public/WebTransformOperations.h" |
#include "webkit/compositor_bindings/web_transform_animation_curve_impl.h" |
+#include "webkit/compositor_bindings/web_transform_operations_impl.h" |
using namespace WebKit; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+using webkit::WebTransformOperationsImpl; |
+#endif |
+ |
namespace { |
// Tests that a transform animation with one keyframe works as expected. |
TEST(WebTransformAnimationCurveTest, OneTransformKeyframe) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations(new WebTransformOperationsImpl()); |
+ operations->appendTranslate(2, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations; |
operations.appendTranslate(2, 0, 0); |
curve->add(WebTransformKeyframe(0, operations), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
EXPECT_FLOAT_EQ(2, curve->getValue(-1).m41()); |
EXPECT_FLOAT_EQ(2, curve->getValue(0).m41()); |
@@ -32,12 +43,21 @@ TEST(WebTransformAnimationCurveTest, OneTransformKeyframe) |
TEST(WebTransformAnimationCurveTest, TwoTransformKeyframe) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(2, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(4, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(2, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(4, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
EXPECT_FLOAT_EQ(2, curve->getValue(-1).m41()); |
EXPECT_FLOAT_EQ(2, curve->getValue(0).m41()); |
EXPECT_FLOAT_EQ(3, curve->getValue(0.5).m41()); |
@@ -49,15 +69,27 @@ TEST(WebTransformAnimationCurveTest, TwoTransformKeyframe) |
TEST(WebTransformAnimationCurveTest, ThreeTransformKeyframe) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(2, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(4, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations3(new WebTransformOperationsImpl()); |
+ operations3->appendTranslate(8, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+ curve->add(WebTransformKeyframe(2, operations3.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(2, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(4, 0, 0); |
- WebKit::WebTransformOperations operations3; |
+ WebTransformOperations operations3; |
operations3.appendTranslate(8, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
curve->add(WebTransformKeyframe(2, operations3), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
EXPECT_FLOAT_EQ(2, curve->getValue(-1).m41()); |
EXPECT_FLOAT_EQ(2, curve->getValue(0).m41()); |
EXPECT_FLOAT_EQ(3, curve->getValue(0.5).m41()); |
@@ -72,18 +104,33 @@ TEST(WebTransformAnimationCurveTest, RepeatedTransformKeyTimes) |
{ |
// A step function. |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(4, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(4, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations3(new WebTransformOperationsImpl()); |
+ operations3->appendTranslate(6, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations4(new WebTransformOperationsImpl()); |
+ operations4->appendTranslate(6, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+ curve->add(WebTransformKeyframe(1, operations3.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+ curve->add(WebTransformKeyframe(2, operations4.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(4, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(4, 0, 0); |
- WebKit::WebTransformOperations operations3; |
+ WebTransformOperations operations3; |
operations3.appendTranslate(6, 0, 0); |
- WebKit::WebTransformOperations operations4; |
+ WebTransformOperations operations4; |
operations4.appendTranslate(6, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
curve->add(WebTransformKeyframe(1, operations3), WebAnimationCurve::TimingFunctionTypeLinear); |
curve->add(WebTransformKeyframe(2, operations4), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
EXPECT_FLOAT_EQ(4, curve->getValue(-1).m41()); |
EXPECT_FLOAT_EQ(4, curve->getValue(0).m41()); |
@@ -102,15 +149,27 @@ TEST(WebTransformAnimationCurveTest, RepeatedTransformKeyTimes) |
TEST(WebTransformAnimationCurveTest, UnsortedKeyframes) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(2, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(4, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations3(new WebTransformOperationsImpl()); |
+ operations3->appendTranslate(8, 0, 0); |
+ curve->add(WebTransformKeyframe(2, operations3.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(2, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(4, 0, 0); |
- WebKit::WebTransformOperations operations3; |
+ WebTransformOperations operations3; |
operations3.appendTranslate(8, 0, 0); |
curve->add(WebTransformKeyframe(2, operations3), WebAnimationCurve::TimingFunctionTypeLinear); |
curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
EXPECT_FLOAT_EQ(2, curve->getValue(-1).m41()); |
EXPECT_FLOAT_EQ(2, curve->getValue(0).m41()); |
@@ -125,12 +184,21 @@ TEST(WebTransformAnimationCurveTest, UnsortedKeyframes) |
TEST(WebTransformAnimationCurveTest, CubicBezierTimingFunction) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(0, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(1, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), 0.25, 0, 0.75, 1); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(0, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(1, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), 0.25, 0, 0.75, 1); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
EXPECT_FLOAT_EQ(0, curve->getValue(0).m41()); |
EXPECT_LT(0, curve->getValue(0.25).m41()); |
EXPECT_GT(0.25, curve->getValue(0.25).m41()); |
@@ -144,12 +212,21 @@ TEST(WebTransformAnimationCurveTest, CubicBezierTimingFunction) |
TEST(WebTransformAnimationCurveTest, EaseTimingFunction) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(0, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(1, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), WebAnimationCurve::TimingFunctionTypeEase); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(0, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(1, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEase); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
scoped_ptr<cc::TimingFunction> timingFunction(cc::EaseTimingFunction::create()); |
for (int i = 0; i <= 4; ++i) { |
@@ -162,12 +239,21 @@ TEST(WebTransformAnimationCurveTest, EaseTimingFunction) |
TEST(WebTransformAnimationCurveTest, LinearTimingFunction) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(0, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(1, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(0, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(1, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeLinear); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
for (int i = 0; i <= 4; ++i) { |
const double time = i * 0.25; |
@@ -179,12 +265,21 @@ TEST(WebTransformAnimationCurveTest, LinearTimingFunction) |
TEST(WebTransformAnimationCurveTest, EaseInTimingFunction) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(0, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(1, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), WebAnimationCurve::TimingFunctionTypeEaseIn); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(0, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(1, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEaseIn); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
scoped_ptr<cc::TimingFunction> timingFunction(cc::EaseInTimingFunction::create()); |
for (int i = 0; i <= 4; ++i) { |
@@ -197,12 +292,21 @@ TEST(WebTransformAnimationCurveTest, EaseInTimingFunction) |
TEST(WebTransformAnimationCurveTest, EaseOutTimingFunction) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(0, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(1, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), WebAnimationCurve::TimingFunctionTypeEaseOut); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(0, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(1, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEaseOut); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
scoped_ptr<cc::TimingFunction> timingFunction(cc::EaseOutTimingFunction::create()); |
for (int i = 0; i <= 4; ++i) { |
@@ -215,12 +319,21 @@ TEST(WebTransformAnimationCurveTest, EaseOutTimingFunction) |
TEST(WebTransformAnimationCurveTest, EaseInOutTimingFunction) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(0, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(1, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), WebAnimationCurve::TimingFunctionTypeEaseInOut); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(0, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(1, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), WebAnimationCurve::TimingFunctionTypeEaseInOut); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
scoped_ptr<cc::TimingFunction> timingFunction(cc::EaseInOutTimingFunction::create()); |
for (int i = 0; i <= 4; ++i) { |
@@ -237,12 +350,21 @@ TEST(WebTransformAnimationCurveTest, CustomBezierTimingFunction) |
double y1 = 0.2; |
double x2 = 0.8; |
double y2 = 0.7; |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(0, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(1, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release()), x1, y1, x2, y2); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(0, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(1, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1), x1, y1, x2, y2); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
scoped_ptr<cc::TimingFunction> timingFunction(cc::CubicBezierTimingFunction::create(x1, y1, x2, y2)); |
for (int i = 0; i <= 4; ++i) { |
@@ -255,12 +377,21 @@ TEST(WebTransformAnimationCurveTest, CustomBezierTimingFunction) |
TEST(WebTransformAnimationCurveTest, DefaultTimingFunction) |
{ |
scoped_ptr<WebTransformAnimationCurve> curve(new WebTransformAnimationCurveImpl); |
- WebKit::WebTransformOperations operations1; |
+#if WEB_TRANSFORM_OPERATIONS_IS_VIRTUAL |
+ scoped_ptr<WebTransformOperations> operations1(new WebTransformOperationsImpl()); |
+ operations1->appendTranslate(0, 0, 0); |
+ scoped_ptr<WebTransformOperations> operations2(new WebTransformOperationsImpl()); |
+ operations2->appendTranslate(1, 0, 0); |
+ curve->add(WebTransformKeyframe(0, operations1.release())); |
+ curve->add(WebTransformKeyframe(1, operations2.release()), WebAnimationCurve::TimingFunctionTypeLinear); |
+#else |
+ WebTransformOperations operations1; |
operations1.appendTranslate(0, 0, 0); |
- WebKit::WebTransformOperations operations2; |
+ WebTransformOperations operations2; |
operations2.appendTranslate(1, 0, 0); |
curve->add(WebTransformKeyframe(0, operations1)); |
curve->add(WebTransformKeyframe(1, operations2), WebAnimationCurve::TimingFunctionTypeLinear); |
+#endif |
scoped_ptr<cc::TimingFunction> timingFunction(cc::EaseTimingFunction::create()); |
for (int i = 0; i <= 4; ++i) { |