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