Changeset View
Changeset View
Standalone View
Standalone View
source/simulation2/tests/test_CmpTemplateManager.h
Show First 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | void test_LoadTemplate() | ||||
const CParamNode* inherit1 = tempMan->LoadTemplate(ent2, "inherit1"); | const CParamNode* inherit1 = tempMan->LoadTemplate(ent2, "inherit1"); | ||||
TS_ASSERT(inherit1 != NULL); | TS_ASSERT(inherit1 != NULL); | ||||
TS_ASSERT_STR_EQUALS(inherit1->ToXMLString(), "<Test1A a=\"a1\" b=\"b1\" c=\"c1\"><d>d1</d><e>e1</e><f>f1</f></Test1A>"); | TS_ASSERT_STR_EQUALS(inherit1->ToXMLString(), "<Test1A a=\"a1\" b=\"b1\" c=\"c1\"><d>d1</d><e>e1</e><f>f1</f></Test1A>"); | ||||
const CParamNode* actor = tempMan->LoadTemplate(ent2, "actor|example1"); | const CParamNode* actor = tempMan->LoadTemplate(ent2, "actor|example1"); | ||||
TS_ASSERT(actor != NULL); | TS_ASSERT(actor != NULL); | ||||
TS_ASSERT_STR_EQUALS(actor->ToXMLString(), | TS_ASSERT_STR_EQUALS(actor->ToXMLString(), | ||||
"<Footprint><Circle radius=\"2.0\"></Circle><Height>1.0</Height></Footprint><Selectable><EditorOnly></EditorOnly><Overlay><Texture><MainTexture>128x128/ellipse.png</MainTexture><MainTextureMask>128x128/ellipse_mask.png</MainTextureMask></Texture></Overlay></Selectable>" | "<Footprint><Circle radius=\"2.0\"></Circle><Height>1.0</Height></Footprint><Selectable><EditorOnly></EditorOnly><Overlay><Texture><MainTexture>128x128/ellipse.png</MainTexture><MainTextureMask>128x128/ellipse_mask.png</MainTextureMask></Texture></Overlay></Selectable>" | ||||
"<VisualActor><Actor>example1</Actor><ActorOnly></ActorOnly><SilhouetteDisplay>false</SilhouetteDisplay><SilhouetteOccluder>false</SilhouetteOccluder><VisibleInAtlasOnly>false</VisibleInAtlasOnly></VisualActor>"); | "<VisualActor><SilhouetteDisplay>false</SilhouetteDisplay><SilhouetteOccluder>false</SilhouetteOccluder><VisibleInAtlasOnly>false</VisibleInAtlasOnly><Actor>example1</Actor><ActorOnly></ActorOnly></VisualActor>"); | ||||
} | } | ||||
void test_LoadTemplate_scriptcache() | void test_LoadTemplate_scriptcache() | ||||
{ | { | ||||
CSimContext context; | CSimContext context; | ||||
CComponentManager man(context, g_ScriptContext); | CComponentManager man(context, g_ScriptContext); | ||||
man.LoadComponentTypes(); | man.LoadComponentTypes(); | ||||
Show All 17 Lines | void test_LoadTemplate_scriptcache() | ||||
TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({Test1A:{'@a':\"a1\", '@b':\"b1\", '@c':\"c1\", d:\"d1\", e:\"e1\", f:\"f1\"}})"); | TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({Test1A:{'@a':\"a1\", '@b':\"b1\", '@c':\"c1\", d:\"d1\", e:\"e1\", f:\"f1\"}})"); | ||||
const CParamNode* inherit2 = tempMan->LoadTemplate(ent2, "inherit2"); | const CParamNode* inherit2 = tempMan->LoadTemplate(ent2, "inherit2"); | ||||
ScriptInterface::ToJSVal(rq, &val, inherit2); | ScriptInterface::ToJSVal(rq, &val, inherit2); | ||||
TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({'@parent':\"inherit1\", Test1A:{'@a':\"a2\", '@b':\"b1\", '@c':\"c1\", d:\"d2\", e:\"e1\", f:\"f1\", g:\"g2\"}})"); | TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({'@parent':\"inherit1\", Test1A:{'@a':\"a2\", '@b':\"b1\", '@c':\"c1\", d:\"d2\", e:\"e1\", f:\"f1\", g:\"g2\"}})"); | ||||
const CParamNode* actor = tempMan->LoadTemplate(ent2, "actor|example1"); | const CParamNode* actor = tempMan->LoadTemplate(ent2, "actor|example1"); | ||||
ScriptInterface::ToJSVal(rq, &val, &actor->GetChild("VisualActor")); | ScriptInterface::ToJSVal(rq, &val, &actor->GetChild("VisualActor")); | ||||
TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({Actor:\"example1\", ActorOnly:(void 0), SilhouetteDisplay:\"false\", SilhouetteOccluder:\"false\", VisibleInAtlasOnly:\"false\"})"); | TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({SilhouetteDisplay:\"false\", SilhouetteOccluder:\"false\", VisibleInAtlasOnly:\"false\", Actor:\"example1\", ActorOnly:(void 0)})"); | ||||
const CParamNode* foundation = tempMan->LoadTemplate(ent2, "foundation|actor|example1"); | const CParamNode* foundation = tempMan->LoadTemplate(ent2, "foundation|actor|example1"); | ||||
ScriptInterface::ToJSVal(rq, &val, &foundation->GetChild("VisualActor")); | ScriptInterface::ToJSVal(rq, &val, &foundation->GetChild("VisualActor")); | ||||
TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({Actor:\"example1\", ActorOnly:(void 0), Foundation:(void 0), SilhouetteDisplay:\"false\", SilhouetteOccluder:\"false\", VisibleInAtlasOnly:\"false\"})"); | TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({SilhouetteDisplay:\"false\", SilhouetteOccluder:\"false\", VisibleInAtlasOnly:\"false\", Actor:\"example1\", ActorOnly:(void 0), Foundation:(void 0)})"); | ||||
#define GET_FIRST_ELEMENT(n, templateName) \ | #define GET_FIRST_ELEMENT(n, templateName) \ | ||||
const CParamNode* n = tempMan->LoadTemplate(ent2, templateName); \ | const CParamNode* n = tempMan->LoadTemplate(ent2, templateName); \ | ||||
for (CParamNode::ChildrenMap::const_iterator it = n->GetChildren().begin(); it != n->GetChildren().end(); ++it) \ | for (CParamNode::ChildrenMap::const_iterator it = n->GetChildren().begin(); it != n->GetChildren().end(); ++it) \ | ||||
{ \ | { \ | ||||
if (it->first[0] == '@') \ | if (it->IsAttribute()) \ | ||||
continue; \ | continue; \ | ||||
ScriptInterface::ToJSVal(rq, &val, it->second); \ | ScriptInterface::ToJSVal(rq, &val, *it); \ | ||||
break; \ | break; \ | ||||
} | } | ||||
GET_FIRST_ELEMENT(n1, "inherit_a"); | GET_FIRST_ELEMENT(n1, "inherit_a"); | ||||
TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({'@datatype':\"tokens\", _string:\"a b c\"})"); | TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({'@datatype':\"tokens\", _string:\"a b c\"})"); | ||||
GET_FIRST_ELEMENT(n2, "inherit_b"); | GET_FIRST_ELEMENT(n2, "inherit_b"); | ||||
TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({'@datatype':\"tokens\", _string:\"a b c d\"})"); | TS_ASSERT_STR_EQUALS(man.GetScriptInterface().ToString(&val), "({'@datatype':\"tokens\", _string:\"a b c d\"})"); | ||||
▲ Show 20 Lines • Show All 120 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator