summaryrefslogtreecommitdiffstats
path: root/gfx/sfntly/cpp/src/test/test_xml_utils.cc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /gfx/sfntly/cpp/src/test/test_xml_utils.cc
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'gfx/sfntly/cpp/src/test/test_xml_utils.cc')
-rw-r--r--gfx/sfntly/cpp/src/test/test_xml_utils.cc50
1 files changed, 50 insertions, 0 deletions
diff --git a/gfx/sfntly/cpp/src/test/test_xml_utils.cc b/gfx/sfntly/cpp/src/test/test_xml_utils.cc
new file mode 100644
index 0000000000..dc65add747
--- /dev/null
+++ b/gfx/sfntly/cpp/src/test/test_xml_utils.cc
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2011 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <map>
+#include <string>
+#include "test/test_xml_utils.h"
+#include "test/tinyxml/tinyxml.h"
+
+namespace sfntly {
+void InternalGetNodesWithName(const TiXmlNode* node, const std::string& name,
+ TiXmlNodeVector* wanted_nodes) {
+ if (node->ValueStr() == name)
+ wanted_nodes->push_back(node);
+ for (const TiXmlNode* child = node->FirstChild();
+ child != NULL; child = child->NextSibling()) {
+ InternalGetNodesWithName(child, name, wanted_nodes);
+ }
+}
+
+TiXmlNodeVector* GetNodesWithName(const TiXmlNode* node,
+ const std::string& name) {
+ TiXmlNodeVector* wanted_nodes = new TiXmlNodeVector;
+ InternalGetNodesWithName(node, name, wanted_nodes);
+ return wanted_nodes;
+}
+
+const TiXmlAttribute* GetAttribute(const TiXmlNode* node,
+ const std::string& name) {
+ for (const TiXmlAttribute* attribute = node->ToElement()->FirstAttribute();
+ attribute != NULL; attribute = attribute->Next()) {
+ if (attribute->Name() == name) {
+ return attribute;
+ }
+ }
+ return NULL;
+}
+}