1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
// Copyright 2014 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/style/ComputedStyle.h"
#include "core/style/ClipPathOperation.h"
#include "core/style/ShapeValue.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace blink {
TEST(ComputedStyleTest, ShapeOutsideBoxEqual) {
ShapeValue* shape1 = ShapeValue::createBoxShapeValue(ContentBox);
ShapeValue* shape2 = ShapeValue::createBoxShapeValue(ContentBox);
RefPtr<ComputedStyle> style1 = ComputedStyle::create();
RefPtr<ComputedStyle> style2 = ComputedStyle::create();
style1->setShapeOutside(shape1);
style2->setShapeOutside(shape2);
ASSERT_EQ(*style1, *style2);
}
TEST(ComputedStyleTest, ShapeOutsideCircleEqual) {
RefPtr<BasicShapeCircle> circle1 = BasicShapeCircle::create();
RefPtr<BasicShapeCircle> circle2 = BasicShapeCircle::create();
ShapeValue* shape1 = ShapeValue::createShapeValue(circle1, ContentBox);
ShapeValue* shape2 = ShapeValue::createShapeValue(circle2, ContentBox);
RefPtr<ComputedStyle> style1 = ComputedStyle::create();
RefPtr<ComputedStyle> style2 = ComputedStyle::create();
style1->setShapeOutside(shape1);
style2->setShapeOutside(shape2);
ASSERT_EQ(*style1, *style2);
}
TEST(ComputedStyleTest, ClipPathEqual) {
RefPtr<BasicShapeCircle> shape = BasicShapeCircle::create();
RefPtr<ShapeClipPathOperation> path1 = ShapeClipPathOperation::create(shape);
RefPtr<ShapeClipPathOperation> path2 = ShapeClipPathOperation::create(shape);
RefPtr<ComputedStyle> style1 = ComputedStyle::create();
RefPtr<ComputedStyle> style2 = ComputedStyle::create();
style1->setClipPath(path1);
style2->setClipPath(path2);
ASSERT_EQ(*style1, *style2);
}
TEST(ComputedStyleTest, FocusRingWidth) {
RefPtr<ComputedStyle> style = ComputedStyle::create();
style->setEffectiveZoom(3.5);
#if OS(MACOSX)
style->setOutlineStyle(BorderStyleSolid);
ASSERT_EQ(3, style->getOutlineStrokeWidthForFocusRing());
#else
ASSERT_EQ(3.5, style->getOutlineStrokeWidthForFocusRing());
style->setEffectiveZoom(0.5);
ASSERT_EQ(1, style->getOutlineStrokeWidthForFocusRing());
#endif
}
TEST(ComputedStyleTest, FocusRingOutset) {
RefPtr<ComputedStyle> style = ComputedStyle::create();
style->setOutlineStyle(BorderStyleSolid);
style->setOutlineStyleIsAuto(OutlineIsAutoOn);
style->setEffectiveZoom(4.75);
#if OS(MACOSX)
ASSERT_EQ(4, style->outlineOutsetExtent());
#else
ASSERT_EQ(3, style->outlineOutsetExtent());
#endif
}
TEST(ComputedStyleTest, Preserve3dForceStackingContext) {
RefPtr<ComputedStyle> style = ComputedStyle::create();
style->setTransformStyle3D(TransformStyle3DPreserve3D);
style->setOverflowX(EOverflow::Hidden);
style->setOverflowY(EOverflow::Hidden);
style->updateIsStackingContext(false, false);
EXPECT_EQ(TransformStyle3DFlat, style->usedTransformStyle3D());
EXPECT_TRUE(style->isStackingContext());
}
} // namespace blink
|