1 #include <stdlib.h>
2 #include "UnitTestToolSuite.h"
3 #include "XmlUniformiserTest.h"
4 #include "XmlUniformiser.h"
5
6 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( XmlUniformiserTest,
7 unitTestToolSuiteName() );
8
9
XmlUniformiserTest()10 XmlUniformiserTest::XmlUniformiserTest()
11 {
12 }
13
14
~XmlUniformiserTest()15 XmlUniformiserTest::~XmlUniformiserTest()
16 {
17 }
18
19
20 void
setUp()21 XmlUniformiserTest::setUp()
22 {
23 }
24
25
26 void
tearDown()27 XmlUniformiserTest::tearDown()
28 {
29 }
30
31
32 void
testEmpty()33 XmlUniformiserTest::testEmpty()
34 {
35 check( "", "" );
36 }
37
38
39 void
testSkipProcessed()40 XmlUniformiserTest::testSkipProcessed()
41 {
42 check( "<?xml version=\"1.0\" encoding='ISO-8859-1' ?>",
43 "" );
44 }
45
46
47 void
testOpenElementWithoutAttributeButSomeSpaces()48 XmlUniformiserTest::testOpenElementWithoutAttributeButSomeSpaces()
49 {
50 check( " <Test > ",
51 "<Test>" );
52 }
53
54
55 void
testOpenCloseElement()56 XmlUniformiserTest::testOpenCloseElement()
57 {
58 check( " <TestName > </TestName > ",
59 "<TestName></TestName>" );
60 }
61
62
63 void
testElementWithEmptyAttribute()64 XmlUniformiserTest::testElementWithEmptyAttribute()
65 {
66 check( "<TestName id=\"\">",
67 "<TestName id=\"\">" );
68 }
69
70
71 void
testElementWithEmptyAttributeButSomeSpaces()72 XmlUniformiserTest::testElementWithEmptyAttributeButSomeSpaces()
73 {
74 check( "<TestName id = \"\" >",
75 "<TestName id=\"\">" );
76 }
77
78
79 void
testElementWithOneAttribute()80 XmlUniformiserTest::testElementWithOneAttribute()
81 {
82 check( "<FailedTest id=\"123\">",
83 "<FailedTest id=\"123\">" );
84 }
85
86
87 void
testElementWithThreeAttributes()88 XmlUniformiserTest::testElementWithThreeAttributes()
89 {
90 check( "<FailedTest id = \"7\" date-format= \"iso-8901\" "
91 "style =\"debug\">",
92 "<FailedTest id=\"7\" date-format=\"iso-8901\" style=\"debug\">" );
93 }
94
95
96 void
testElementWithContent()97 XmlUniformiserTest::testElementWithContent()
98 {
99 check( "<Element>\nContent\n</Element>\n",
100 "<Element>Content</Element>" );
101 }
102
103
104 void
testElementsHierarchyWithContents()105 XmlUniformiserTest::testElementsHierarchyWithContents()
106 {
107 check( "<TestRuns date-format=\"iso-8901\">\n"
108 "<Date>2001-10-04</Date>\n"
109 "<FailedTests>\n<FailedTest>\n"
110 "<TestName>TokenParserTest</TestName>\n"
111 "</FailedTest>\n</Failedtests>\n</TestRuns>\n",
112 "<TestRuns date-format=\"iso-8901\">"
113 "<Date>2001-10-04</Date>"
114 "<FailedTests><FailedTest>"
115 "<TestName>TokenParserTest</TestName>"
116 "</FailedTest></Failedtests></TestRuns>" );
117 }
118
119
120 void
testSkipComment()121 XmlUniformiserTest::testSkipComment()
122 {
123 check( "<!-- skip comment-->",
124 "" );
125 }
126
127
128 void
testAssertXmlEqual()129 XmlUniformiserTest::testAssertXmlEqual()
130 {
131 CPPUNIT_ASSERT_ASSERTION_FAIL(
132 CPPUNITTEST_ASSERT_XML_EQUAL( "<Test>", "<Tes>" ) );
133 CPPUNIT_ASSERT_ASSERTION_PASS(
134 CPPUNITTEST_ASSERT_XML_EQUAL( "<Test>", "<Test>" ) );
135 }
136
137
138 void
check(const std::string & xml,const std::string & expectedStrippedXml)139 XmlUniformiserTest::check( const std::string &xml,
140 const std::string &expectedStrippedXml )
141 {
142 std::string actual = XmlUniformiser( xml ).stripped();
143 CPPUNIT_ASSERT_EQUAL( expectedStrippedXml, actual );
144 }
145