| Index: third_party/WebKit/Source/core/dom/DOMMatrixTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/DOMMatrixTest.cpp b/third_party/WebKit/Source/core/dom/DOMMatrixTest.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..310701bca1aafde0d2d8390765c5a5fb37fe7a63
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/core/dom/DOMMatrixTest.cpp
|
| @@ -0,0 +1,151 @@
|
| +// Copyright 2016 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 "core/dom/DOMMatrix.h"
|
| +
|
| +#include "bindings/core/v8/ExceptionState.h"
|
| +#include "bindings/core/v8/V8BindingForTesting.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace blink {
|
| +
|
| +TEST(DOMMatrixTest, Fixup) {
|
| + V8TestingScope scope;
|
| + DOMMatrixInit init;
|
| +
|
| + EXPECT_FALSE(init.hasA());
|
| + EXPECT_FALSE(init.hasB());
|
| + EXPECT_FALSE(init.hasC());
|
| + EXPECT_FALSE(init.hasD());
|
| + EXPECT_FALSE(init.hasE());
|
| + EXPECT_FALSE(init.hasF());
|
| + EXPECT_FALSE(init.hasM11());
|
| + EXPECT_FALSE(init.hasM12());
|
| + EXPECT_FALSE(init.hasM21());
|
| + EXPECT_FALSE(init.hasM22());
|
| + EXPECT_FALSE(init.hasM41());
|
| + EXPECT_FALSE(init.hasM42());
|
| +
|
| + init.setA(1.0);
|
| + init.setB(2.0);
|
| + init.setC(3.0);
|
| + init.setD(4.0);
|
| + init.setE(5.0);
|
| + init.setF(6.0);
|
| +
|
| + EXPECT_TRUE(init.hasA());
|
| + EXPECT_TRUE(init.hasB());
|
| + EXPECT_TRUE(init.hasC());
|
| + EXPECT_TRUE(init.hasD());
|
| + EXPECT_TRUE(init.hasE());
|
| + EXPECT_TRUE(init.hasF());
|
| + EXPECT_FALSE(init.hasM11());
|
| + EXPECT_FALSE(init.hasM12());
|
| + EXPECT_FALSE(init.hasM21());
|
| + EXPECT_FALSE(init.hasM22());
|
| + EXPECT_FALSE(init.hasM41());
|
| + EXPECT_FALSE(init.hasM42());
|
| +
|
| + DOMMatrix::fromMatrix(init, scope.getExceptionState());
|
| +
|
| + EXPECT_TRUE(init.hasA());
|
| + EXPECT_TRUE(init.hasB());
|
| + EXPECT_TRUE(init.hasC());
|
| + EXPECT_TRUE(init.hasD());
|
| + EXPECT_TRUE(init.hasE());
|
| + EXPECT_TRUE(init.hasF());
|
| + EXPECT_TRUE(init.hasM11());
|
| + EXPECT_TRUE(init.hasM12());
|
| + EXPECT_TRUE(init.hasM21());
|
| + EXPECT_TRUE(init.hasM22());
|
| + EXPECT_TRUE(init.hasM41());
|
| + EXPECT_TRUE(init.hasM42());
|
| + EXPECT_EQ(1.0, init.m11());
|
| + EXPECT_EQ(2.0, init.m12());
|
| + EXPECT_EQ(3.0, init.m21());
|
| + EXPECT_EQ(4.0, init.m22());
|
| + EXPECT_EQ(5.0, init.m41());
|
| + EXPECT_EQ(6.0, init.m42());
|
| +}
|
| +
|
| +TEST(DOMMatrixTest, FixupWithFallback) {
|
| + V8TestingScope scope;
|
| + DOMMatrixInit init;
|
| +
|
| + EXPECT_FALSE(init.hasA());
|
| + EXPECT_FALSE(init.hasB());
|
| + EXPECT_FALSE(init.hasC());
|
| + EXPECT_FALSE(init.hasD());
|
| + EXPECT_FALSE(init.hasE());
|
| + EXPECT_FALSE(init.hasF());
|
| + EXPECT_FALSE(init.hasM11());
|
| + EXPECT_FALSE(init.hasM12());
|
| + EXPECT_FALSE(init.hasM21());
|
| + EXPECT_FALSE(init.hasM22());
|
| + EXPECT_FALSE(init.hasM41());
|
| + EXPECT_FALSE(init.hasM42());
|
| +
|
| + DOMMatrix::fromMatrix(init, scope.getExceptionState());
|
| +
|
| + EXPECT_TRUE(init.hasM11());
|
| + EXPECT_TRUE(init.hasM12());
|
| + EXPECT_TRUE(init.hasM21());
|
| + EXPECT_TRUE(init.hasM22());
|
| + EXPECT_TRUE(init.hasM41());
|
| + EXPECT_TRUE(init.hasM42());
|
| + EXPECT_EQ(1.0, init.m11());
|
| + EXPECT_EQ(0.0, init.m12());
|
| + EXPECT_EQ(0.0, init.m21());
|
| + EXPECT_EQ(1.0, init.m22());
|
| + EXPECT_EQ(0.0, init.m41());
|
| + EXPECT_EQ(0.0, init.m42());
|
| +}
|
| +
|
| +TEST(DOMMatrixTest, ThrowExceptionIfTwoValuesAreDifferent) {
|
| + V8TestingScope scope;
|
| + {
|
| + DOMMatrixInit init;
|
| + init.setA(1.0);
|
| + init.setM11(2.0);
|
| + DOMMatrix::fromMatrix(init, scope.getExceptionState());
|
| + EXPECT_TRUE(scope.getExceptionState().hadException());
|
| + }
|
| + {
|
| + DOMMatrixInit init;
|
| + init.setB(1.0);
|
| + init.setM12(2.0);
|
| + DOMMatrix::fromMatrix(init, scope.getExceptionState());
|
| + EXPECT_TRUE(scope.getExceptionState().hadException());
|
| + }
|
| + {
|
| + DOMMatrixInit init;
|
| + init.setC(1.0);
|
| + init.setM21(2.0);
|
| + DOMMatrix::fromMatrix(init, scope.getExceptionState());
|
| + EXPECT_TRUE(scope.getExceptionState().hadException());
|
| + }
|
| + {
|
| + DOMMatrixInit init;
|
| + init.setD(1.0);
|
| + init.setM22(2.0);
|
| + DOMMatrix::fromMatrix(init, scope.getExceptionState());
|
| + EXPECT_TRUE(scope.getExceptionState().hadException());
|
| + }
|
| + {
|
| + DOMMatrixInit init;
|
| + init.setE(1.0);
|
| + init.setM41(2.0);
|
| + DOMMatrix::fromMatrix(init, scope.getExceptionState());
|
| + EXPECT_TRUE(scope.getExceptionState().hadException());
|
| + }
|
| + {
|
| + DOMMatrixInit init;
|
| + init.setF(1.0);
|
| + init.setM42(2.0);
|
| + DOMMatrix::fromMatrix(init, scope.getExceptionState());
|
| + EXPECT_TRUE(scope.getExceptionState().hadException());
|
| + }
|
| +}
|
| +
|
| +} // namespace blink
|
|
|