diff options
Diffstat (limited to 'Swiften/Serializer/XML')
-rw-r--r-- | Swiften/Serializer/XML/UnitTest/XMLElementTest.cpp | 98 | ||||
-rw-r--r-- | Swiften/Serializer/XML/XMLElement.cpp | 68 | ||||
-rw-r--r-- | Swiften/Serializer/XML/XMLElement.h | 24 | ||||
-rw-r--r-- | Swiften/Serializer/XML/XMLNode.h | 10 | ||||
-rw-r--r-- | Swiften/Serializer/XML/XMLRawTextNode.h | 20 | ||||
-rw-r--r-- | Swiften/Serializer/XML/XMLTextNode.h | 42 |
6 files changed, 131 insertions, 131 deletions
diff --git a/Swiften/Serializer/XML/UnitTest/XMLElementTest.cpp b/Swiften/Serializer/XML/UnitTest/XMLElementTest.cpp index f9a5e2a..edd1b0e 100644 --- a/Swiften/Serializer/XML/UnitTest/XMLElementTest.cpp +++ b/Swiften/Serializer/XML/UnitTest/XMLElementTest.cpp @@ -16,55 +16,55 @@ using namespace Swift; class XMLElementTest : public CppUnit::TestFixture { - CPPUNIT_TEST_SUITE(XMLElementTest); - CPPUNIT_TEST(testSerialize); - CPPUNIT_TEST(testSerialize_NoChildren); - CPPUNIT_TEST(testSerialize_SpecialAttributeCharacters); - CPPUNIT_TEST(testSerialize_EmptyAttributeValue); - CPPUNIT_TEST_SUITE_END(); - - public: - XMLElementTest() {} - - void testSerialize() { - XMLElement testling("foo", "http://example.com"); - testling.setAttribute("myatt", "myval"); - boost::shared_ptr<XMLElement> barElement(new XMLElement("bar")); - barElement->addNode(boost::make_shared<XMLTextNode>("Blo")); - testling.addNode(barElement); - boost::shared_ptr<XMLElement> bazElement(new XMLElement("baz")); - bazElement->addNode(boost::make_shared<XMLTextNode>("Bli&</stream>")); - testling.addNode(bazElement); - - std::string result = testling.serialize(); - std::string expectedResult = - "<foo myatt=\"myval\" xmlns=\"http://example.com\">" - "<bar>Blo</bar>" - "<baz>Bli&</stream></baz>" - "</foo>"; - - CPPUNIT_ASSERT_EQUAL(expectedResult, result); - } - - void testSerialize_NoChildren() { - XMLElement testling("foo", "http://example.com"); - - CPPUNIT_ASSERT_EQUAL(std::string("<foo xmlns=\"http://example.com\"/>"), testling.serialize()); - } - - void testSerialize_SpecialAttributeCharacters() { - XMLElement testling("foo"); - testling.setAttribute("myatt", "<\"'&>"); - - CPPUNIT_ASSERT_EQUAL(std::string("<foo myatt=\"<"'&>\"/>"), testling.serialize()); - } - - void testSerialize_EmptyAttributeValue() { - XMLElement testling("foo"); - testling.setAttribute("myatt", ""); - - CPPUNIT_ASSERT_EQUAL(std::string("<foo myatt=\"\"/>"), testling.serialize()); - } + CPPUNIT_TEST_SUITE(XMLElementTest); + CPPUNIT_TEST(testSerialize); + CPPUNIT_TEST(testSerialize_NoChildren); + CPPUNIT_TEST(testSerialize_SpecialAttributeCharacters); + CPPUNIT_TEST(testSerialize_EmptyAttributeValue); + CPPUNIT_TEST_SUITE_END(); + + public: + XMLElementTest() {} + + void testSerialize() { + XMLElement testling("foo", "http://example.com"); + testling.setAttribute("myatt", "myval"); + boost::shared_ptr<XMLElement> barElement(new XMLElement("bar")); + barElement->addNode(boost::make_shared<XMLTextNode>("Blo")); + testling.addNode(barElement); + boost::shared_ptr<XMLElement> bazElement(new XMLElement("baz")); + bazElement->addNode(boost::make_shared<XMLTextNode>("Bli&</stream>")); + testling.addNode(bazElement); + + std::string result = testling.serialize(); + std::string expectedResult = + "<foo myatt=\"myval\" xmlns=\"http://example.com\">" + "<bar>Blo</bar>" + "<baz>Bli&</stream></baz>" + "</foo>"; + + CPPUNIT_ASSERT_EQUAL(expectedResult, result); + } + + void testSerialize_NoChildren() { + XMLElement testling("foo", "http://example.com"); + + CPPUNIT_ASSERT_EQUAL(std::string("<foo xmlns=\"http://example.com\"/>"), testling.serialize()); + } + + void testSerialize_SpecialAttributeCharacters() { + XMLElement testling("foo"); + testling.setAttribute("myatt", "<\"'&>"); + + CPPUNIT_ASSERT_EQUAL(std::string("<foo myatt=\"<"'&>\"/>"), testling.serialize()); + } + + void testSerialize_EmptyAttributeValue() { + XMLElement testling("foo"); + testling.setAttribute("myatt", ""); + + CPPUNIT_ASSERT_EQUAL(std::string("<foo myatt=\"\"/>"), testling.serialize()); + } }; CPPUNIT_TEST_SUITE_REGISTRATION(XMLElementTest); diff --git a/Swiften/Serializer/XML/XMLElement.cpp b/Swiften/Serializer/XML/XMLElement.cpp index 01e89bc..fc5e470 100644 --- a/Swiften/Serializer/XML/XMLElement.cpp +++ b/Swiften/Serializer/XML/XMLElement.cpp @@ -12,49 +12,49 @@ namespace Swift { XMLElement::XMLElement(const std::string& tag, const std::string& xmlns, const std::string& text) : tag_(tag) { - if (!xmlns.empty()) { - setAttribute("xmlns", xmlns); - } - if (!text.empty()) { - addNode(XMLTextNode::ref(new XMLTextNode(text))); - } + if (!xmlns.empty()) { + setAttribute("xmlns", xmlns); + } + if (!text.empty()) { + addNode(XMLTextNode::ref(new XMLTextNode(text))); + } } std::string XMLElement::serialize() { - std::string result; - result += "<" + tag_; - typedef std::pair<std::string,std::string> Pair; - foreach(const Pair& p, attributes_) { - result += " " + p.first + "=\"" + p.second + "\""; - } - - if (!childNodes_.empty()) { - result += ">"; - foreach (boost::shared_ptr<XMLNode> node, childNodes_) { - result += node->serialize(); - } - result += "</" + tag_ + ">"; - } - else { - result += "/>"; - } - return result; + std::string result; + result += "<" + tag_; + typedef std::pair<std::string,std::string> Pair; + foreach(const Pair& p, attributes_) { + result += " " + p.first + "=\"" + p.second + "\""; + } + + if (!childNodes_.empty()) { + result += ">"; + foreach (boost::shared_ptr<XMLNode> node, childNodes_) { + result += node->serialize(); + } + result += "</" + tag_ + ">"; + } + else { + result += "/>"; + } + return result; } void XMLElement::setAttribute(const std::string& attribute, const std::string& value) { - std::string escapedValue(value); - String::replaceAll(escapedValue, '&', "&"); - String::replaceAll(escapedValue, '<', "<"); - String::replaceAll(escapedValue, '>', ">"); - String::replaceAll(escapedValue, '\'', "'"); - String::replaceAll(escapedValue, '"', """); - attributes_[attribute] = escapedValue; + std::string escapedValue(value); + String::replaceAll(escapedValue, '&', "&"); + String::replaceAll(escapedValue, '<', "<"); + String::replaceAll(escapedValue, '>', ">"); + String::replaceAll(escapedValue, '\'', "'"); + String::replaceAll(escapedValue, '"', """); + attributes_[attribute] = escapedValue; } void XMLElement::addNode(boost::shared_ptr<XMLNode> node) { - if (node) { - childNodes_.push_back(node); - } + if (node) { + childNodes_.push_back(node); + } } } diff --git a/Swiften/Serializer/XML/XMLElement.h b/Swiften/Serializer/XML/XMLElement.h index 66e0a77..e7507f2 100644 --- a/Swiften/Serializer/XML/XMLElement.h +++ b/Swiften/Serializer/XML/XMLElement.h @@ -16,20 +16,20 @@ #include <Swiften/Serializer/XML/XMLNode.h> namespace Swift { - class SWIFTEN_API XMLElement : public XMLNode { - public: - typedef boost::shared_ptr<XMLElement> ref; + class SWIFTEN_API XMLElement : public XMLNode { + public: + typedef boost::shared_ptr<XMLElement> ref; - XMLElement(const std::string& tag, const std::string& xmlns = "", const std::string& text = ""); + XMLElement(const std::string& tag, const std::string& xmlns = "", const std::string& text = ""); - void setAttribute(const std::string& attribute, const std::string& value); - void addNode(boost::shared_ptr<XMLNode> node); + void setAttribute(const std::string& attribute, const std::string& value); + void addNode(boost::shared_ptr<XMLNode> node); - virtual std::string serialize(); + virtual std::string serialize(); - private: - std::string tag_; - std::map<std::string, std::string> attributes_; - std::vector< boost::shared_ptr<XMLNode> > childNodes_; - }; + private: + std::string tag_; + std::map<std::string, std::string> attributes_; + std::vector< boost::shared_ptr<XMLNode> > childNodes_; + }; } diff --git a/Swiften/Serializer/XML/XMLNode.h b/Swiften/Serializer/XML/XMLNode.h index e3ac925..8417b5c 100644 --- a/Swiften/Serializer/XML/XMLNode.h +++ b/Swiften/Serializer/XML/XMLNode.h @@ -11,10 +11,10 @@ #include <Swiften/Base/API.h> namespace Swift { - class SWIFTEN_API XMLNode { - public: - virtual ~XMLNode(); + class SWIFTEN_API XMLNode { + public: + virtual ~XMLNode(); - virtual std::string serialize() = 0; - }; + virtual std::string serialize() = 0; + }; } diff --git a/Swiften/Serializer/XML/XMLRawTextNode.h b/Swiften/Serializer/XML/XMLRawTextNode.h index f1e75e6..fbd7754 100644 --- a/Swiften/Serializer/XML/XMLRawTextNode.h +++ b/Swiften/Serializer/XML/XMLRawTextNode.h @@ -10,16 +10,16 @@ #include <Swiften/Serializer/XML/XMLNode.h> namespace Swift { - class SWIFTEN_API XMLRawTextNode : public XMLNode { - public: - XMLRawTextNode(const std::string& text) : text_(text) { - } + class SWIFTEN_API XMLRawTextNode : public XMLNode { + public: + XMLRawTextNode(const std::string& text) : text_(text) { + } - std::string serialize() { - return text_; - } + std::string serialize() { + return text_; + } - private: - std::string text_; - }; + private: + std::string text_; + }; } diff --git a/Swiften/Serializer/XML/XMLTextNode.h b/Swiften/Serializer/XML/XMLTextNode.h index 86efdf1..b0f8d01 100644 --- a/Swiften/Serializer/XML/XMLTextNode.h +++ b/Swiften/Serializer/XML/XMLTextNode.h @@ -13,25 +13,25 @@ #include <Swiften/Serializer/XML/XMLNode.h> namespace Swift { - class SWIFTEN_API XMLTextNode : public XMLNode { - public: - typedef boost::shared_ptr<XMLTextNode> ref; - - XMLTextNode(const std::string& text) : text_(text) { - String::replaceAll(text_, '&', "&"); // Should come first - String::replaceAll(text_, '<', "<"); - String::replaceAll(text_, '>', ">"); - } - - std::string serialize() { - return text_; - } - - static ref create(const std::string& text) { - return ref(new XMLTextNode(text)); - } - - private: - std::string text_; - }; + class SWIFTEN_API XMLTextNode : public XMLNode { + public: + typedef boost::shared_ptr<XMLTextNode> ref; + + XMLTextNode(const std::string& text) : text_(text) { + String::replaceAll(text_, '&', "&"); // Should come first + String::replaceAll(text_, '<', "<"); + String::replaceAll(text_, '>', ">"); + } + + std::string serialize() { + return text_; + } + + static ref create(const std::string& text) { + return ref(new XMLTextNode(text)); + } + + private: + std::string text_; + }; } |