+
+int UtcDaliJsonParserMerge1(void)
+{
+ ToolkitTestApplication application;
+ tet_infoline("JSON tree merge");
+
+ std::string s1(ReplaceQuotes(
+ " \
+{ \
+ 'styles': \
+ { \
+ 'button': \
+ { \
+ 'backgroundColor':[0.8, 0.0, 1.0, 1.0], \
+ 'foregroundColor':[1, 1, 1, 1] \
+ } \
+ } \
+} \
+"));
+
+ JsonParser parser = JsonParser::New();
+ JsonParser testParser = JsonParser::New();
+
+ testParser.Parse(s1);
+
+ parser.Parse(s1);
+ parser.Parse(s1); // Merge the tree into itself. The value array should not grow.
+
+ DALI_TEST_CHECK(parser.GetRoot());
+
+ CompareTrees(*parser.GetRoot(), *testParser.GetRoot());
+
+ END_TEST;
+}
+
+int UtcDaliJsonParserDownCast(void)
+{
+ BaseHandle handle = JsonParser::New();
+ JsonParser parser = JsonParser::DownCast(handle);
+ DALI_TEST_CHECK(parser);
+ END_TEST;
+}
+
+int UtcDaliJsonParserTreeNodeCount(void)
+{
+ std::string s1(ReplaceQuotes(
+ " \
+{ \
+ 'styles': \
+ { \
+ 'button': \
+ { \
+ 'backgroundColor':[0.8, 0.0, 1.0, 1.0], \
+ 'foregroundColor':[1, 1, 1, 1] \
+ } \
+ } \
+} \
+"));
+
+ JsonParser parser = JsonParser::New();
+ parser.Parse(s1);
+
+ const TreeNode* treeNode = parser.GetRoot();
+ DALI_TEST_EQUALS(1, treeNode->Count("styles"), TEST_LOCATION);
+ DALI_TEST_EQUALS(0, treeNode->Count("random"), TEST_LOCATION);
+
+ END_TEST;
+}
+
+int UtcDaliJsonParserTreeNodeFind(void)
+{
+ std::string s1(ReplaceQuotes(
+ "\
+{ \
+ 'string':'value2', \
+ 'integer':2, \
+ 'float':2.3, \
+ 'boolean':true, \
+ 'nil':null, \
+ 'array':[1,2,3], \
+ 'object':{'key':'value'} \
+} \
+"));
+
+ JsonParser parser = JsonParser::New();
+ parser.Parse(s1);
+
+ const TreeNode* treeNode = parser.GetRoot();
+ const TreeNode* childNode = treeNode->Find("string");
+ DALI_TEST_CHECK(childNode);
+ const TreeNode* sameNode = childNode->Find("string");
+ DALI_TEST_EQUALS(sameNode, childNode, TEST_LOCATION);
+
+ END_TEST;
+}