Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1476)

Unified Diff: cc/trees/property_tree_unittest.cc

Issue 1417963011: Added serialization to protobufs for property trees. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« cc/trees/property_tree.cc ('K') | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/property_tree_unittest.cc
diff --git a/cc/trees/property_tree_unittest.cc b/cc/trees/property_tree_unittest.cc
index e72a9ad83a86c7a11be6836addea234bf077b9b3..29c508250886114e9f8ebb231ea5f594c130843a 100644
--- a/cc/trees/property_tree_unittest.cc
+++ b/cc/trees/property_tree_unittest.cc
@@ -4,39 +4,123 @@
#include "cc/trees/property_tree.h"
+#include "cc/proto/property_tree.pb.h"
#include "cc/test/geometry_test_utils.h"
#include "cc/trees/draw_property_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cc {
David Trainor- moved to gerrit 2015/11/12 22:46:11 Maybe anonymous namespace in here for everything?
Khushal 2015/11/13 10:33:13 Done.
-TEST(PropertyTreeTest, ComputeTransformRoot) {
- TransformTree tree;
- TransformNode& root = *tree.Node(0);
- root.data.local.Translate(2, 2);
- root.data.target_id = 0;
- tree.UpdateTransforms(0);
+TEST(PropertyTreeSerializationTest, ClipNodeDataSerialization) {
David Trainor- moved to gerrit 2015/11/12 22:46:11 Add transform one.
Khushal 2015/11/13 10:33:13 Done.
+ ClipNodeData original;
+ original.clip = gfx::RectF(0.5f, 0.5f);
+ original.combined_clip_in_target_space = gfx::RectF(0.6f, 0.6f);
+ original.clip_in_target_space = gfx::RectF(0.7f, 0.7f);
+ original.transform_id = 2;
+ original.target_id = 3;
+ original.applies_local_clip = false;
+ original.layer_clipping_uses_only_local_clip = false;
+ original.target_is_clipped = false;
+ original.layers_are_clipped = false;
+ original.layers_are_clipped_when_surfaces_disabled = false;
+ original.resets_clip = false;
+
+ proto::TreeNode proto;
+ original.ToProtobuf(&proto);
+ ClipNodeData result;
+ result.FromProtobuf(proto);
+
+ EXPECT_EQ(original, result);
+}
- gfx::Transform expected;
- gfx::Transform transform;
- bool success = tree.ComputeTransform(0, 0, &transform);
- EXPECT_TRUE(success);
- EXPECT_TRANSFORMATION_MATRIX_EQ(expected, transform);
+TEST(PropertyTreeSerializationTest, EffectNodeDataSerialization) {
+ EffectNodeData original;
+ original.opacity = 0.5f;
+ original.screen_space_opacity = 0.6f;
+ original.has_render_surface = false;
+ original.transform_id = 2;
+ original.clip_id = 3;
- transform.MakeIdentity();
- expected.Translate(2, 2);
- success = tree.ComputeTransform(0, -1, &transform);
- EXPECT_TRUE(success);
- EXPECT_TRANSFORMATION_MATRIX_EQ(expected, transform);
+ proto::TreeNode proto;
+ original.ToProtobuf(&proto);
+ EffectNodeData result;
+ result.FromProtobuf(proto);
- transform.MakeIdentity();
- expected.MakeIdentity();
- expected.Translate(-2, -2);
- success = tree.ComputeTransform(-1, 0, &transform);
- EXPECT_TRUE(success);
- EXPECT_TRANSFORMATION_MATRIX_EQ(expected, transform);
+ EXPECT_EQ(original, result);
}
+class PropertyTreeTest : public testing::Test {
Khushal 2015/11/12 00:33:11 Would it be a good idea to use something like this
+ public:
+ PropertyTreeTest() : test_serialization_(false) {}
+
+ protected:
+ void RunTest(bool test_serialization) {
+ test_serialization_ = test_serialization;
+ StartTest();
+ }
+
+ virtual void StartTest() = 0;
+
+ TransformTree TransformTreeForTest(const TransformTree& transform_tree) {
+ if (!test_serialization_) {
+ return transform_tree;
+ }
+ TransformTree new_tree;
+ proto::PropertyTree proto;
+ transform_tree.ToProtobuf(&proto);
+ new_tree.FromProtobuf(proto);
+ return new_tree;
+ }
+
+ private:
+ bool test_serialization_;
+};
+
+#define DIRECT_PROPERTY_TREE_TEST_F(TEST_FIXTURE_NAME) \
David Trainor- moved to gerrit 2015/11/12 22:46:11 Good idea IMO :). Maybe #undef these after the te
Khushal 2015/11/13 10:33:13 Done.
+ TEST_F(TEST_FIXTURE_NAME, RunDirect) { RunTest(false); }
David Trainor- moved to gerrit 2015/11/12 22:46:11 Always use PropertyTreeTest as the fixture name.
David Trainor- moved to gerrit 2015/11/12 22:49:33 Just a note from our offline discussion, it looks
Khushal 2015/11/13 10:33:13 Done.
+
+#define SERIALIZED_PROPERTY_TREE_TEST_F(TEST_FIXTURE_NAME) \
+ TEST_F(TEST_FIXTURE_NAME, RunSerialized) { RunTest(true); }
+
+#define DIRECT_AND_SERIALIZED_PROPERTY_TREE_TEST_F(TEST_FIXTURE_NAME) \
+ DIRECT_PROPERTY_TREE_TEST_F(TEST_FIXTURE_NAME); \
+ SERIALIZED_PROPERTY_TREE_TEST_F(TEST_FIXTURE_NAME)
+
+class PropertyTreeTestComputeTransformRoot : public PropertyTreeTest {
+ protected:
+ void StartTest() override {
+ TransformTree tree;
+ TransformNode& root = *tree.Node(0);
+ root.data.local.Translate(2, 2);
+ root.data.target_id = 0;
+ tree.UpdateTransforms(0);
+
+ TransformTree test_tree = TransformTreeForTest(tree);
+
+ gfx::Transform expected;
+ gfx::Transform transform;
+ bool success = test_tree.ComputeTransform(0, 0, &transform);
+ EXPECT_TRUE(success);
+ EXPECT_TRANSFORMATION_MATRIX_EQ(expected, transform);
+
+ transform.MakeIdentity();
+ expected.Translate(2, 2);
+ success = test_tree.ComputeTransform(0, -1, &transform);
+ EXPECT_TRUE(success);
+ EXPECT_TRANSFORMATION_MATRIX_EQ(expected, transform);
+
+ transform.MakeIdentity();
+ expected.MakeIdentity();
+ expected.Translate(-2, -2);
+ success = test_tree.ComputeTransform(-1, 0, &transform);
+ EXPECT_TRUE(success);
+ EXPECT_TRANSFORMATION_MATRIX_EQ(expected, transform);
+ }
+};
+
+DIRECT_AND_SERIALIZED_PROPERTY_TREE_TEST_F(
+ PropertyTreeTestComputeTransformRoot);
David Trainor- moved to gerrit 2015/11/12 22:46:11 Can we just call this ComputeTransformRoot? That
David Trainor- moved to gerrit 2015/11/12 22:49:33 Same as above, ignore.
+
TEST(PropertyTreeTest, ComputeTransformChild) {
TransformTree tree;
TransformNode& root = *tree.Node(0);
« cc/trees/property_tree.cc ('K') | « cc/trees/property_tree.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698