Directory: | ./ |
---|---|
File: | TESTS/TEST_PXML/main.cpp |
Date: | 2025-03-14 11:45:13 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 77 | 77 | 100.0% |
Branches: | 208 | 208 | 100.0% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | |||
2 | /*************************************** | ||
3 | Auteur : Pierre Aubert | ||
4 | Mail : pierre.aubert@lapp.in2p3.fr | ||
5 | Licence : CeCILL-C | ||
6 | ****************************************/ | ||
7 | |||
8 | #include "phoenix_assert.h" | ||
9 | #include "phoenix_check.h" | ||
10 | #include "pxml_utils.h" | ||
11 | |||
12 | ///Check the xml parsing of a file | ||
13 | /** @param fileName : file to be used | ||
14 | * @param inputXml : input xml string | ||
15 | * @param referenceOutputXml : reference output | ||
16 | * @param isSvg : true if the given xml is supposed to be svg | ||
17 | * @return true on success, false otherwise | ||
18 | */ | ||
19 | 2 | bool checkParseXmlFile(const PPath & fileName, const PString & inputXml, const PString & referenceOutputXml, bool isSvg){ | |
20 | 2 | bool b(true); | |
21 |
1/1✓ Branch 1 taken 2 times.
|
2 | b &= fileName.saveFileContent(inputXml); |
22 |
1/1✓ Branch 1 taken 2 times.
|
2 | PXml xml; |
23 |
1/1✓ Branch 1 taken 2 times.
|
2 | b &= pxml_parserFile(xml, fileName, isSvg); |
24 | |||
25 |
1/1✓ Branch 1 taken 2 times.
|
2 | PString convertedXml(pxml_baliseStr(xml, isSvg)); |
26 |
2/2✓ Branch 2 taken 2 times.
✓ Branch 5 taken 2 times.
|
2 | b &= phoenix_check("checkParseXmlFile", convertedXml, referenceOutputXml); |
27 | 2 | return b; | |
28 | 2 | } | |
29 | |||
30 | ///Check the xml attribute | ||
31 | 1 | void checkXmlAttr(){ | |
32 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | PXmlAttr attr, attr2; |
33 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | attr.setName("Name"); |
34 |
1/1✓ Branch 1 taken 1 times.
|
1 | attr2 = attr; |
35 | |||
36 |
6/6✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 20 taken 1 times.
|
1 | phoenix_assert(attr.getName() == attr2.getName()); |
37 |
6/6✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 20 taken 1 times.
|
1 | phoenix_assert(attr.getValue() == attr2.getValue()); |
38 | |||
39 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | PXml xml, xmlChild; |
40 | 1 | std::vector<PXmlAttr> vecAttr; | |
41 |
1/1✓ Branch 1 taken 1 times.
|
1 | vecAttr.push_back(attr); |
42 |
1/1✓ Branch 1 taken 1 times.
|
1 | xml.setVecAttr(vecAttr); |
43 |
1/1✓ Branch 1 taken 1 times.
|
1 | xmlChild.setVecAttr(vecAttr); |
44 | |||
45 | 1 | std::vector<PXml> vecChild; | |
46 |
1/1✓ Branch 1 taken 1 times.
|
1 | vecChild.push_back(xmlChild); |
47 |
1/1✓ Branch 1 taken 1 times.
|
1 | xml.setVecChild(vecChild); |
48 | |||
49 |
1/1✓ Branch 1 taken 1 times.
|
1 | PXml xml2; |
50 |
1/1✓ Branch 1 taken 1 times.
|
1 | xml2 = xml; |
51 | |||
52 |
5/5✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
|
1 | phoenix_assert(!xml2.getIsText()); |
53 | 1 | } | |
54 | |||
55 | ///Check the xml parsing | ||
56 | /** @param inputXml : input xml string | ||
57 | * @param referenceOutputXml : reference output | ||
58 | * @param isSvg : true if the given xml is supposed to be svg | ||
59 | * @return true on success, false otherwise | ||
60 | */ | ||
61 | 12 | bool checkXmlString(const PString & inputXml, const PString & referenceOutputXml, bool isSvg){ | |
62 |
1/1✓ Branch 1 taken 12 times.
|
12 | PXml xml; |
63 |
3/3✓ Branch 1 taken 12 times.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 11 times.
|
12 | if(!pxml_parserContent(xml, inputXml, isSvg)){ |
64 |
4/4✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
|
1 | std::cerr << "checkXmlString : cannot parse xml string '"<<inputXml<<"'" << std::endl; |
65 | 1 | return false; | |
66 | } | ||
67 | 11 | bool b(true); | |
68 |
1/1✓ Branch 1 taken 11 times.
|
11 | PXml child; |
69 |
4/4✓ Branch 1 taken 11 times.
✓ Branch 4 taken 11 times.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 9 times.
|
11 | if(pxml_getChildIfExist(child, xml, "g")){ |
70 |
1/1✓ Branch 1 taken 2 times.
|
2 | b &= child.getName() == "g"; |
71 | } | ||
72 | |||
73 |
1/1✓ Branch 1 taken 11 times.
|
11 | PString convertedXml(pxml_baliseStr(xml, isSvg)); |
74 |
2/2✓ Branch 2 taken 11 times.
✓ Branch 5 taken 11 times.
|
11 | b &= phoenix_check("checkXmlString", convertedXml, referenceOutputXml); |
75 | 11 | return b; | |
76 | 12 | } | |
77 | |||
78 | ///Test to create the XML | ||
79 | 1 | void testCreateXml(){ | |
80 |
1/1✓ Branch 1 taken 1 times.
|
1 | PXml xml; |
81 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
1 | pxml_setAttr(xml, "attr", "value"); |
82 | |||
83 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(!pxml_saveFile(PPath("nonExistingDir/output.xml"), xml)); |
84 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(pxml_saveFile(PPath("output.xml"), xml)); |
85 | |||
86 |
1/1✓ Branch 1 taken 1 times.
|
1 | PXml balise; |
87 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | balise.setName("tmp"); |
88 | |||
89 |
1/1✓ Branch 1 taken 1 times.
|
1 | PXml baliseG; |
90 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | baliseG.setName("tmp"); |
91 | |||
92 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | xml.getVecChild().push_back(balise); |
93 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | xml.getVecChild().push_back(baliseG); |
94 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | xml.getVecChild().push_back(balise); |
95 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | xml.getVecChild().push_back(baliseG); |
96 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | xml.getVecChild().push_back(balise); |
97 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | xml.getVecChild().push_back(baliseG); |
98 | |||
99 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(pxml_saveFile(PPath("all.xml"), xml)); |
100 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | PXml clearXml(pxml_eraseVecChild(xml, "tmp")); |
101 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(pxml_saveFile(PPath("erase.xml"), clearXml)); |
102 | 1 | } | |
103 | |||
104 | |||
105 | 1 | int main(int argc, char** argv){ | |
106 |
9/9✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
✓ Branch 25 taken 1 times.
✓ Branch 28 taken 1 times.
|
1 | phoenix_assert(checkParseXmlFile(PPath("file.xml"), "<g><b>truc</b><g>titi</g><g>toto</g></g>", "<root>\n<g>\n<b>\ntruc</b>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</root>\n", false)); |
107 |
9/9✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
✓ Branch 25 taken 1 times.
✓ Branch 28 taken 1 times.
|
1 | phoenix_assert(checkParseXmlFile(PPath("file.svg"), "some thing to write <b style=\"a very important style\">maybe in bold</b> and some other thing", "<root>some thing to write <b style=\"a very important style\"\n\t>maybe in bold</b> and some other thing</root>", true)); |
108 | |||
109 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(checkXmlString("<g><b>truc</b><g>titi</g><g>toto</g></g>", "<root>\n<g>\n<b>\ntruc</b>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</root>\n", false)); |
110 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(checkXmlString("<g><b>truc</b><g2>test</g2><g>titi</g><g>toto</g></g>", |
111 | "<root>\n<g>\n<b>\ntruc</b>\n<g2>\ntest</g2>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</root>\n", false)); | ||
112 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(checkXmlString("<svg><g><b>truc</b><g2>test</g2><g>titi</g><g>toto</g></g></svg>", |
113 | "<root>\n<svg>\n<g>\n<b>\ntruc</b>\n<g2>\ntest</g2>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</svg>\n</root>\n", false)); | ||
114 | |||
115 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(checkXmlString("<svg><g id=\"42\"><b>truc</b><g2>test</g2><g>titi</g><g>toto</g></g></svg>", |
116 | "<root>\n<svg>\n<g id=\"42\">\n<b>\ntruc</b>\n<g2>\ntest</g2>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</svg>\n</root>\n", false)); | ||
117 | |||
118 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(checkXmlString("some thing to write <b>maybe in bold</b> and some other thing", "<root>some thing to write <b>maybe in bold</b> and some other thing</root>", true)); |
119 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(checkXmlString("some thing to write <b >maybe in bold</b> and some other thing", "<root>some thing to write <b>maybe in bold</b> and some other thing</root>", true)); |
120 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(checkXmlString("some thing to write <b style=\"a very important style\">maybe in bold</b> and some other thing", "<root>some thing to write <b style=\"a very important style\"\n\t>maybe in bold</b> and some other thing</root>", true)); |
121 | |||
122 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(checkXmlString("<?xml ?><!-- -->some thing to write <b style=\"a very important style\">maybe in bold</b> and some other thing", "<root>some thing to write <b style=\"a very important style\"\n\t>maybe in bold</b> and some other thing</root>", true)); |
123 | |||
124 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(checkXmlString("<img src=\"image.png\" />", "<root>\n<img src=\"image.png\" />\n</root>\n", false)); |
125 | |||
126 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(!checkXmlString("empty", "empty not root", true)); |
127 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(!checkXmlString("", "empty", true)); |
128 |
7/7✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
|
1 | phoenix_assert(!checkXmlString("<b>no end", "empty", true)); |
129 | |||
130 | 1 | checkXmlAttr(); | |
131 | 1 | testCreateXml(); | |
132 | 1 | return 0; | |
133 | } | ||
134 | |||
135 | |||
136 |