@@ -129,6 +129,50 @@ TEST(SpriteTest, Clone)
129129 ASSERT_EQ (clone2->cloneParent (), clone1);
130130
131131 checkCloneData (clone2);
132+
133+ Sprite *clone3;
134+ EXPECT_CALL (engine, initClone (_)).WillOnce (SaveArg<0 >(&clone3));
135+ ASSERT_EQ (clone1->clone ().get (), clone3);
136+
137+ Sprite *clone4;
138+ EXPECT_CALL (engine, initClone (_)).WillOnce (SaveArg<0 >(&clone4));
139+ ASSERT_EQ (sprite.clone ().get (), clone4);
140+
141+ // children
142+ const auto &children1 = sprite.children ();
143+ ASSERT_EQ (children1.size (), 2 );
144+ ASSERT_EQ (children1[0 ].get (), clone1);
145+ ASSERT_EQ (children1[1 ].get (), clone4);
146+
147+ const auto &children2 = clone1->children ();
148+ ASSERT_EQ (children2.size (), 2 );
149+ ASSERT_EQ (children2[0 ].get (), clone2);
150+ ASSERT_EQ (children2[1 ].get (), clone3);
151+
152+ ASSERT_TRUE (clone2->children ().empty ());
153+
154+ ASSERT_TRUE (clone3->children ().empty ());
155+
156+ ASSERT_TRUE (clone4->children ().empty ());
157+
158+ // allChildren
159+ auto allChildren = sprite.allChildren ();
160+ ASSERT_EQ (allChildren.size (), 4 );
161+ ASSERT_EQ (allChildren[0 ].get (), clone1);
162+ ASSERT_EQ (allChildren[1 ].get (), clone2);
163+ ASSERT_EQ (allChildren[2 ].get (), clone3);
164+ ASSERT_EQ (allChildren[3 ].get (), clone4);
165+
166+ allChildren = clone1->allChildren ();
167+ ASSERT_EQ (allChildren.size (), 2 );
168+ ASSERT_EQ (allChildren[0 ].get (), clone2);
169+ ASSERT_EQ (allChildren[1 ].get (), clone3);
170+
171+ ASSERT_TRUE (clone2->allChildren ().empty ());
172+
173+ ASSERT_TRUE (clone3->allChildren ().empty ());
174+
175+ ASSERT_TRUE (clone4->allChildren ().empty ());
132176}
133177
134178TEST (SpriteTest, X)
0 commit comments