|
Packit Service |
e31359 |
#ifndef CPPUNITTEST_XMLUNIFORMISER_H
|
|
Packit Service |
e31359 |
#define CPPUNITTEST_XMLUNIFORMISER_H
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
#include <cppunit/SourceLine.h>
|
|
Packit Service |
e31359 |
#include <cppunit/TestAssert.h>
|
|
Packit Service |
e31359 |
#include <string>
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
/*! Uniformise an XML string.
|
|
Packit Service |
e31359 |
*
|
|
Packit Service |
e31359 |
* Strips spaces between attribut in Element.
|
|
Packit Service |
e31359 |
* \warning Attribute values must be double-quoted (att="value").
|
|
Packit Service |
e31359 |
* No support for embedded DTD declaration
|
|
Packit Service |
e31359 |
*/
|
|
Packit Service |
e31359 |
class XmlUniformiser
|
|
Packit Service |
e31359 |
{
|
|
Packit Service |
e31359 |
public:
|
|
Packit Service |
e31359 |
XmlUniformiser( const std::string &xml );
|
|
Packit Service |
e31359 |
std::string stripped();
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
private:
|
|
Packit Service |
e31359 |
void skipSpaces();
|
|
Packit Service |
e31359 |
bool isValidIndex();
|
|
Packit Service |
e31359 |
void skipNext( int count =1 );
|
|
Packit Service |
e31359 |
void copyNext( int count =1 );
|
|
Packit Service |
e31359 |
void skipProcessed();
|
|
Packit Service |
e31359 |
void skipComment();
|
|
Packit Service |
e31359 |
void copyElement();
|
|
Packit Service |
e31359 |
void copyElementContent();
|
|
Packit Service |
e31359 |
bool isSpace( char c );
|
|
Packit Service |
e31359 |
bool isSpace();
|
|
Packit Service |
e31359 |
bool startsWith( std::string expected );
|
|
Packit Service |
e31359 |
void copyElementName();
|
|
Packit Service |
e31359 |
void copyElementAttributes();
|
|
Packit Service |
e31359 |
void copyAttributeName();
|
|
Packit Service |
e31359 |
bool isEndOfAttributeName();
|
|
Packit Service |
e31359 |
void copyAttributeValue();
|
|
Packit Service |
e31359 |
void copyUntilDoubleQuote();
|
|
Packit Service |
e31359 |
void removeTrailingSpaces();
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
private:
|
|
Packit Service |
e31359 |
unsigned int m_index;
|
|
Packit Service |
e31359 |
std::string m_xml;
|
|
Packit Service |
e31359 |
std::string m_stripped;
|
|
Packit Service |
e31359 |
};
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
void
|
|
Packit Service |
e31359 |
checkXmlEqual( std::string expectedXml,
|
|
Packit Service |
e31359 |
std::string actualXml,
|
|
Packit Service |
e31359 |
CPPUNIT_NS::SourceLine sourceLine );
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
/// Asserts that two XML strings are equivalent.
|
|
Packit Service |
e31359 |
#define CPPUNITTEST_ASSERT_XML_EQUAL( expected, actual ) \
|
|
Packit Service |
e31359 |
::checkXmlEqual( expected, actual, \
|
|
Packit Service |
e31359 |
CPPUNIT_SOURCELINE() )
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
|
|
Packit Service |
e31359 |
#endif // XMLUNIFORMISER_H
|