@@ -123,14 +123,29 @@ TEST(SDFParser, ReloadCustomElements)
123123 model2->Element ()->FindElement (" mysim:transmission" );
124124 ASSERT_NE (nullptr , customElem1);
125125 ASSERT_NE (nullptr , customElem2);
126- EXPECT_EQ (customElem1->ToString (" " ), customElem2->ToString (" " ));
126+
127+ const std::string customElemStr =
128+ R"( <mysim:transmission name='simple_trans'>
129+ <mysim:type>transmission_interface/SimpleTransmission</mysim:type>
130+ <mysim:joint name='J1'>
131+ <mysim:hardwareInterface>EffortJointInterface</mysim:hardwareInterface>
132+ </mysim:joint>
133+ </mysim:transmission>
134+ )" ;
135+ EXPECT_EQ (customElemStr, customElem1->ToString (" " ));
136+ EXPECT_EQ (customElemStr, customElem2->ToString (" " ));
137+
127138 sdf::ElementPtr customDesc1 =
128139 world1->Element ()->FindElement (" mysim:description" );
129140 sdf::ElementPtr customDesc2 =
130141 world2->Element ()->FindElement (" mysim:description" );
131142 ASSERT_NE (nullptr , customDesc1);
132143 ASSERT_NE (nullptr , customDesc2);
133- EXPECT_EQ (customDesc1->ToString (" " ), customDesc2->ToString (" " ));
144+
145+ const std::string customDescStr =
146+ " <mysim:description>Description of this world</mysim:description>\n " ;
147+ EXPECT_EQ (customDescStr, customDesc1->ToString (" " ));
148+ EXPECT_EQ (customDescStr, customDesc2->ToString (" " ));
134149}
135150
136151// ///////////////////////////////////////////////
@@ -184,8 +199,11 @@ R"(<sdf version='1.7'>
184199 const sdf::Link *model12link2 = model12->LinkByIndex (0 );
185200 ASSERT_NE (nullptr , model11link1);
186201 ASSERT_NE (nullptr , model12link2);
187- EXPECT_EQ (model11link1->Element ()->ToString (" " ),
188- model12link2->Element ()->ToString (" " ));
202+
203+ const std::string linkCustomAttrStr =
204+ " <link name='L1' mysim:custom_attr_str='A' mysim:custom_attr_int='5'/>\n " ;
205+ EXPECT_EQ (linkCustomAttrStr, model11link1->Element ()->ToString (" " ));
206+ EXPECT_EQ (linkCustomAttrStr, model12link2->Element ()->ToString (" " ));
189207
190208 // //model[@name=M1]/model[@name=M2]
191209 const sdf::Model *model21 = model11->ModelByIndex (0 );
@@ -202,14 +220,34 @@ R"(<sdf version='1.7'>
202220 EXPECT_EQ (model21link1->Element ()->ToString (" " ),
203221 model22link2->Element ()->ToString (" " ));
204222
223+ // check custom attributes
224+ sdf::ParamPtr param1 =
225+ model21link1->Element ()->GetAttribute (" mysim:custom_attr_str" );
226+ sdf::ParamPtr param2 =
227+ model22link2->Element ()->GetAttribute (" mysim:custom_attr_str" );
228+ ASSERT_NE (nullptr , param1);
229+ ASSERT_NE (nullptr , param2);
230+ EXPECT_EQ (" B" , param1->GetAsString ());
231+ EXPECT_EQ (" B" , param2->GetAsString ());
232+
205233 // //model[@name=M1]/model[@name=M2]/link[@name=L1]/mysim:transmission
206234 sdf::ElementPtr customElem1 =
207235 model21link1->Element ()->FindElement (" mysim:transmission" );
208236 sdf::ElementPtr customElem2 =
209237 model22link2->Element ()->FindElement (" mysim:transmission" );
210238 ASSERT_NE (nullptr , customElem1);
211239 ASSERT_NE (nullptr , customElem2);
212- EXPECT_EQ (customElem1->ToString (" " ), customElem2->ToString (" " ));
240+
241+ const std::string customElemStr =
242+ R"( <mysim:transmission name='simple_trans'>
243+ <mysim:type>transmission_interface/SimpleTransmission</mysim:type>
244+ <mysim:joint name='J1'>
245+ <mysim:hardwareInterface>EffortJointInterface</mysim:hardwareInterface>
246+ </mysim:joint>
247+ </mysim:transmission>
248+ )" ;
249+ EXPECT_EQ (customElemStr, customElem1->ToString (" " ));
250+ EXPECT_EQ (customElemStr, customElem2->ToString (" " ));
213251}
214252
215253// ///////////////////////////////////////////////
@@ -273,8 +311,14 @@ R"(<sdf version='1.7'>
273311 const sdf::Link *model12link2 = model12->LinkByIndex (0 );
274312 ASSERT_NE (nullptr , model11link1);
275313 ASSERT_NE (nullptr , model12link2);
276- EXPECT_EQ (model11link1->Element ()->ToString (" " ),
277- model12link2->Element ()->ToString (" " ));
314+
315+ const std::string linkCustomAttrStr =
316+ R"( <link name='M1::L1' mysim:custom_attr_str='A' mysim:custom_attr_int='5'>
317+ <pose relative_to='M1::__model__'>0 0 0 0 -0 0</pose>
318+ </link>
319+ )" ;
320+ EXPECT_EQ (linkCustomAttrStr, model11link1->Element ()->ToString (" " ));
321+ EXPECT_EQ (linkCustomAttrStr, model12link2->Element ()->ToString (" " ));
278322
279323 // //model[@name=test]/model[@name=M1::M2]
280324 const sdf::Model *model21 = model11->ModelByIndex (0 );
@@ -291,6 +335,16 @@ R"(<sdf version='1.7'>
291335 EXPECT_EQ (model21link1->Element ()->ToString (" " ),
292336 model22link2->Element ()->ToString (" " ));
293337
338+ // check custom attributes
339+ sdf::ParamPtr param1 =
340+ model21link1->Element ()->GetAttribute (" mysim:custom_attr_str" );
341+ sdf::ParamPtr param2 =
342+ model22link2->Element ()->GetAttribute (" mysim:custom_attr_str" );
343+ ASSERT_NE (nullptr , param1);
344+ ASSERT_NE (nullptr , param2);
345+ EXPECT_EQ (" B" , param1->GetAsString ());
346+ EXPECT_EQ (" B" , param2->GetAsString ());
347+
294348 // //model[@name=test]/model[@name=M1::M2]/link[@name=M1::L1]
295349 // /mysim:transmission
296350 sdf::ElementPtr customElem1 =
@@ -299,5 +353,15 @@ R"(<sdf version='1.7'>
299353 model22link2->Element ()->FindElement (" mysim:transmission" );
300354 ASSERT_NE (nullptr , customElem1);
301355 ASSERT_NE (nullptr , customElem2);
302- EXPECT_EQ (customElem1->ToString (" " ), customElem2->ToString (" " ));
356+
357+ const std::string customElemStr =
358+ R"( <mysim:transmission name='simple_trans'>
359+ <mysim:type>transmission_interface/SimpleTransmission</mysim:type>
360+ <mysim:joint name='M1::J1'>
361+ <mysim:hardwareInterface>EffortJointInterface</mysim:hardwareInterface>
362+ </mysim:joint>
363+ </mysim:transmission>
364+ )" ;
365+ EXPECT_EQ (customElemStr, customElem1->ToString (" " ));
366+ EXPECT_EQ (customElemStr, customElem2->ToString (" " ));
303367}
0 commit comments