Index: headless/public/domains/types_unittest.cc |
diff --git a/headless/public/domains/types_unittest.cc b/headless/public/domains/types_unittest.cc |
index e5c0efa7e5a5d8e2c9652a4d329c349c60a30436..860f69ba50b91f317657a72da613a4f6b79ea9f7 100644 |
--- a/headless/public/domains/types_unittest.cc |
+++ b/headless/public/domains/types_unittest.cc |
@@ -3,7 +3,9 @@ |
// found in the LICENSE file. |
#include "base/json/json_reader.h" |
+#include "base/json/json_string_value_serializer.h" |
#include "headless/public/devtools/domains/accessibility.h" |
+#include "headless/public/devtools/domains/dom.h" |
#include "headless/public/devtools/domains/memory.h" |
#include "headless/public/devtools/domains/page.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -213,4 +215,29 @@ TEST(TypesTest, AnyProperty) { |
EXPECT_EQ(123, clone_value); |
} |
+TEST(TypesTest, ComplexObjectClone) { |
+ std::vector<std::unique_ptr<dom::Node>> child_nodes; |
+ child_nodes.emplace_back(dom::Node::Builder() |
+ .SetNodeId(1) |
+ .SetBackendNodeId(2) |
+ .SetNodeType(3) |
+ .SetNodeName("-blink-blink") |
+ .SetLocalName("-blink-blink") |
+ .SetNodeValue("-blink-blink") |
+ .Build()); |
+ std::unique_ptr<dom::SetChildNodesParams> params = |
+ dom::SetChildNodesParams::Builder() |
+ .SetParentId(123) |
+ .SetNodes(std::move(child_nodes)) |
+ .Build(); |
+ std::unique_ptr<dom::SetChildNodesParams> clone = params->Clone(); |
+ ASSERT_NE(nullptr, clone); |
Sami
2016/11/29 10:32:21
Please use EXPECT_NE instead of ASSERT_NE so that
tmarek
2016/11/29 10:36:18
The test will crash with a SEGV (ptr is dereferenc
Sami
2016/11/29 10:48:04
Fair point. We generally avoid asserts in tests bu
|
+ |
+ std::string orig; |
+ JSONStringValueSerializer(&orig).Serialize(*params->Serialize()); |
+ std::string clone_value; |
+ JSONStringValueSerializer(&clone_value).Serialize(*clone->Serialize()); |
+ EXPECT_EQ(orig, clone_value); |
+} |
+ |
} // namespace headless |