diff --git a/src/App/Metadata.cpp b/src/App/Metadata.cpp index 96aa4b8236..e6656b63b2 100644 --- a/src/App/Metadata.cpp +++ b/src/App/Metadata.cpp @@ -58,7 +58,7 @@ XERCES_CPP_NAMESPACE_USE namespace MetadataInternal { class XMLErrorHandler : public HandlerBase { - void warning(const SAXParseException& toCatch) + void warning(const SAXParseException&) { // Don't deal with warnings at all std::ignore = toCatch; diff --git a/src/Mod/Test/CMakeLists.txt b/src/Mod/Test/CMakeLists.txt index 6ba0e08cf4..f7c6ee2050 100644 --- a/src/Mod/Test/CMakeLists.txt +++ b/src/Mod/Test/CMakeLists.txt @@ -21,6 +21,7 @@ SET(TestData_SRCS TestData/bad_root_node.xml TestData/bad_xml.xml TestData/bad_version.xml + TestData/content_items.xml ) SOURCE_GROUP("" FILES ${Test_SRCS} ${TestData_SRCS}) diff --git a/src/Mod/Test/Metadata.py b/src/Mod/Test/Metadata.py index cf340f2193..a918e9331f 100644 --- a/src/Mod/Test/Metadata.py +++ b/src/Mod/Test/Metadata.py @@ -84,12 +84,28 @@ class TestMetadata(unittest.TestCase): def test_default_constructor(self): try: - md = FreeCAD.Metadata() + _ = FreeCAD.Metadata() except Exception: self.fail("Metadata default constructor failed") def test_content_types(self): - pass + filename = os.path.join(self.test_dir, "content_items.xml") + md = FreeCAD.Metadata(filename) + + content = md.Content + self.assertTrue("workbench" in content) + self.assertTrue("preferencepack" in content) + self.assertTrue("macro" in content) + self.assertTrue("other_content_item" in content) + + workbenches = content["workbench"] + preferencepacks = content["preferencepack"] + macros = content["macro"] + other = content["other_content_item"] + + self.assertEqual(len(workbenches), 3) + self.assertEqual(len(macros), 2) + self.assertEqual(len(preferencepacks), 1) def test_content_item_tags(self): pass diff --git a/src/Mod/Test/TestData/content_items.xml b/src/Mod/Test/TestData/content_items.xml new file mode 100644 index 0000000000..6682b58929 --- /dev/null +++ b/src/Mod/Test/TestData/content_items.xml @@ -0,0 +1,56 @@ + + + Test Workbench + A package.xml file for unit testing. + 1.0.1 + 2022-01-07 + FreeCAD Developer 1 + FreeCAD Developer 2 + FreeCAD Developer 3 + FreeCAD Developer 4 + FreeCAD Developer 5 + LGPLv2.1 + https://github.com/chennes/FreeCAD-Package + https://github.com/chennes/FreeCAD-Package/blob/main/README.md + https://github.com/chennes/FreeCAD-Package/blob/main/README.md + https://github.com/chennes/FreeCAD-Package/issues + Resources/icons/PackageIcon.svg + Tag0 + Tag1 + + + + TestWorkbenchA + 0.20 + Tag A + + + TestWorkbenchB + 0.1 + 0.19 + Tag B + + + TestWorkbenchC + Tag C + Tag D + + + Macro A + Nonexistent File.FCMacro + 0.20 + 999.999 + + + Macro B + Another Nonexistent File.FCMacro + + + Preference Pack A + + + Doesn't Really Matter + + + + \ No newline at end of file