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..6b8fbe2941f867471a5d192dec79a5e563978928 100644 |
--- a/webkit/compositor_bindings/web_transform_animation_curve_unittest.cc |
+++ b/webkit/compositor_bindings/web_transform_animation_curve_unittest.cc |
@@ -8,6 +8,7 @@ |
#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; |
@@ -17,9 +18,15 @@ namespace { |
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 +39,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 +65,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 +100,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 +145,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 +180,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 +208,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 +235,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 +261,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 +288,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 +315,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 +346,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 +373,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) { |