// TestXml.cpp : Test XML encoding and decoding. | |
// The characters <>&'" are illegal in xml and must be encoded. | |
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers | |
#include <iostream> | |
// If you are using MSVC++6, you should update <string> to fix | |
// BUG: getline Template Function Reads Extra Character | |
#include <string> | |
#include <assert.h> | |
#include <stdlib.h> | |
#include "XmlRpcUtil.h" | |
using namespace XmlRpc; | |
int main(int argc, char* argv[]) | |
{ | |
// Basic tests | |
std::string empty; | |
assert(empty == XmlRpcUtil::xmlEncode(empty)); | |
assert(empty == XmlRpcUtil::xmlDecode(empty)); | |
assert(empty == XmlRpcUtil::xmlEncode("")); | |
assert(empty == XmlRpcUtil::xmlDecode("")); | |
std::string raw("<>&'\""); | |
assert(XmlRpcUtil::xmlDecode(XmlRpcUtil::xmlEncode(raw)) == raw); | |
std::cout << "Basic tests passed.\n"; | |
// Interactive tests | |
std::string s; | |
for (;;) { | |
std::cout << "\nEnter line of raw text to encode:\n"; | |
std::getline(std::cin, s); | |
if (s.empty()) break; | |
std::cout << XmlRpcUtil::xmlEncode(s) << std::endl; | |
} | |
for (;;) { | |
std::cout << "\nEnter line of xml-encoded text to decode:\n"; | |
std::getline(std::cin, s); | |
if (s.empty()) break; | |
std::cout << XmlRpcUtil::xmlDecode(s) << std::endl; | |
} | |
return 0; | |
} | |