Chromium Code Reviews| Index: third_party/WebKit/Source/platform/graphics/paint/PropertyTreeStateTest.cpp |
| diff --git a/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeStateTest.cpp b/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeStateTest.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..405d54164dfd90b072c05a920f4b720801eb2609 |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/platform/graphics/paint/PropertyTreeStateTest.cpp |
| @@ -0,0 +1,100 @@ |
| +// 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 "platform/graphics/paint/PropertyTreeState.h" |
| + |
| +#include "testing/gtest/include/gtest/gtest.h" |
| + |
| +namespace blink { |
| + |
| +class PropertyTreeStateTest : public ::testing::Test {}; |
| + |
| +TEST_F(PropertyTreeStateTest, TrasformOnEffectOnClip) { |
| + RefPtr<TransformPaintPropertyNode> transform = |
| + TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(), |
| + TransformationMatrix(), |
| + FloatPoint3D()); |
| + |
| + RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( |
| + ClipPaintPropertyNode::root(), TransformPaintPropertyNode::root(), |
| + FloatRoundedRect()); |
| + |
| + RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create( |
| + EffectPaintPropertyNode::root(), TransformPaintPropertyNode::root(), |
| + clip.get(), CompositorFilterOperations(), 1.0, SkBlendMode::kSrcOver); |
| + |
| + PropertyTreeState state( |
| + TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| + EffectPaintPropertyNode::root(), ScrollPaintPropertyNode::root()); |
| + EXPECT_EQ(PropertyTreeState::None, state.innermostNode()); |
| + |
| + state.setTransform(transform.get()); |
|
pdr.
2016/12/20 06:46:30
Are you creating the PropertyTreeState and then ca
chrishtr
2016/12/20 23:36:32
No good reason, except that in an earlier iteratio
|
| + state.setClip(clip.get()); |
| + state.setEffect(effect.get()); |
| + EXPECT_EQ(PropertyTreeState::Transform, state.innermostNode()); |
| + |
| + PropertyTreeStateIterator iterator(state); |
| + EXPECT_EQ(PropertyTreeState::Effect, iterator.next()->innermostNode()); |
| + EXPECT_EQ(PropertyTreeState::Clip, iterator.next()->innermostNode()); |
| + EXPECT_EQ(PropertyTreeState::None, iterator.next()->innermostNode()); |
| +} |
| + |
| +TEST_F(PropertyTreeStateTest, EffectOnClipOnTransform) { |
| + RefPtr<TransformPaintPropertyNode> transform = |
| + TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(), |
| + TransformationMatrix(), |
| + FloatPoint3D()); |
| + |
| + RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( |
| + ClipPaintPropertyNode::root(), transform.get(), FloatRoundedRect()); |
| + |
| + RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create( |
| + EffectPaintPropertyNode::root(), transform.get(), clip.get(), |
| + CompositorFilterOperations(), 1.0, SkBlendMode::kSrcOver); |
| + |
| + PropertyTreeState state( |
| + TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| + EffectPaintPropertyNode::root(), ScrollPaintPropertyNode::root()); |
| + |
| + state.setTransform(transform.get()); |
| + state.setClip(clip.get()); |
| + state.setEffect(effect.get()); |
| + EXPECT_EQ(PropertyTreeState::Effect, state.innermostNode()); |
| + |
| + PropertyTreeStateIterator iterator(state); |
| + EXPECT_EQ(PropertyTreeState::Clip, iterator.next()->innermostNode()); |
| + EXPECT_EQ(PropertyTreeState::Transform, iterator.next()->innermostNode()); |
| + EXPECT_EQ(PropertyTreeState::None, iterator.next()->innermostNode()); |
| +} |
| + |
| +TEST_F(PropertyTreeStateTest, ClipOnEffectOnTransform) { |
| + RefPtr<TransformPaintPropertyNode> transform = |
| + TransformPaintPropertyNode::create(TransformPaintPropertyNode::root(), |
| + TransformationMatrix(), |
| + FloatPoint3D()); |
| + |
| + RefPtr<ClipPaintPropertyNode> clip = ClipPaintPropertyNode::create( |
| + ClipPaintPropertyNode::root(), transform.get(), FloatRoundedRect()); |
| + |
| + RefPtr<EffectPaintPropertyNode> effect = EffectPaintPropertyNode::create( |
| + EffectPaintPropertyNode::root(), transform.get(), |
| + ClipPaintPropertyNode::root(), CompositorFilterOperations(), 1.0, |
| + SkBlendMode::kSrcOver); |
| + |
| + PropertyTreeState state( |
| + TransformPaintPropertyNode::root(), ClipPaintPropertyNode::root(), |
| + EffectPaintPropertyNode::root(), ScrollPaintPropertyNode::root()); |
| + |
| + state.setTransform(transform.get()); |
| + state.setClip(clip.get()); |
| + state.setEffect(effect.get()); |
| + EXPECT_EQ(PropertyTreeState::Clip, state.innermostNode()); |
| + |
| + PropertyTreeStateIterator iterator(state); |
| + EXPECT_EQ(PropertyTreeState::Effect, iterator.next()->innermostNode()); |
| + EXPECT_EQ(PropertyTreeState::Transform, iterator.next()->innermostNode()); |
| + EXPECT_EQ(PropertyTreeState::None, iterator.next()->innermostNode()); |
| +} |
| + |
| +} // namespace blink |