X-Git-Url: http://git.maemo.org/git/?p=xmlrpc-c;a=blobdiff_plain;f=src%2Ftest%2Fxml_data.c;fp=src%2Ftest%2Fxml_data.c;h=75cacf6772510e963b2bdaab9dbb0255890faf01;hp=0000000000000000000000000000000000000000;hb=ce67d0cdeaa37c3e856e23ae4010480887165630;hpb=e355d4e7962400470f467b88f5568de9c8324475;ds=sidebyside diff --git a/src/test/xml_data.c b/src/test/xml_data.c new file mode 100644 index 0000000..75cacf6 --- /dev/null +++ b/src/test/xml_data.c @@ -0,0 +1,196 @@ +#include + +#include "xml_data.h" + +#define RAW_STRING_DATA \ + "\r\n" \ + "2147483647\r\n" \ + "-2147483648\r\n" \ + "0\r\n" \ + "1\r\n" \ + "Hello, world! <&>\r\n" \ + "\r\n" \ + "YmFzZTY0IGRhdGE=\r\n" \ + "\r\n" \ + "" \ + "19980717T14:08:55" \ + "\r\n" \ + "\r\n" \ + "\r\n" \ + "" + +char const serialized_data[] = RAW_STRING_DATA; + +char const serialized_call[] = + XML_PROLOGUE + "\r\n" + "gloom&doom\r\n" + "\r\n" + "10\r\n" + "20\r\n" + "\r\n" + "\r\n"; + +char const serialized_fault[] = + XML_PROLOGUE + "\r\n" + "\r\n" + "\r\n" + "faultCode\r\n" + "6\r\n" + "faultString\r\n" + "A fault occurred\r\n" + "\r\n" + "\r\n" + "\r\n"; + +char const expat_data[] = XML_PROLOGUE RAW_STRING_DATA "\r\n"; +char const expat_error_data[] = + XML_PROLOGUE \ + "abc\r\n"; + /* Invalid because there's no closing */ + + +char const good_response_xml[] = + XML_PROLOGUE + "\r\n" + "\r\n" + RAW_STRING_DATA "\r\n" + "1\r\n" + "-1.0\r\n" + "0.0\r\n" + "1.0\r\n" + "\r\n" + "ten <&>\r\n" + "10\r\n" + "twenty\r\n" + "20\r\n" + "\r\n" + "Untagged string\r\n" + "\r\n" + "\r\n"; + +#define VALUE_HEADER \ + XML_PROLOGUE"\r\n" +#define VALUE_FOOTER \ + "\r\n" + +#define MEMBER_HEADER \ + VALUE_HEADER"" +#define MEMBER_FOOTER \ + ""VALUE_FOOTER +#define ARBITRARY_VALUE \ + "0" + +char const unparseable_value[] = VALUE_HEADER""VALUE_FOOTER; + +const char * bad_values[] = { + VALUE_HEADER"00"VALUE_FOOTER, + VALUE_HEADER""VALUE_FOOTER, + VALUE_HEADER"4"VALUE_FOOTER, + VALUE_HEADER"2147483648"VALUE_FOOTER, + VALUE_HEADER"-2147483649"VALUE_FOOTER, + VALUE_HEADER" 0"VALUE_FOOTER, + VALUE_HEADER"0 "VALUE_FOOTER, + VALUE_HEADER"2"VALUE_FOOTER, + VALUE_HEADER"-1"VALUE_FOOTER, + VALUE_HEADER" 0.0"VALUE_FOOTER, + VALUE_HEADER"0.0 "VALUE_FOOTER, + VALUE_HEADER""VALUE_FOOTER, + VALUE_HEADER""VALUE_FOOTER, + VALUE_HEADER""VALUE_FOOTER, + VALUE_HEADER""VALUE_FOOTER, + VALUE_HEADER""VALUE_FOOTER, + MEMBER_HEADER MEMBER_FOOTER, + MEMBER_HEADER"a"MEMBER_FOOTER, + MEMBER_HEADER"a"ARBITRARY_VALUE""MEMBER_FOOTER, + MEMBER_HEADER""ARBITRARY_VALUE MEMBER_FOOTER, + MEMBER_HEADER"a"MEMBER_FOOTER, + MEMBER_HEADER""ARBITRARY_VALUE MEMBER_FOOTER, + NULL +}; + +#define RESPONSE_HEADER \ + XML_PROLOGUE"\r\n" +#define RESPONSE_FOOTER \ + "\r\n" + +#define PARAMS_RESP_HEADER \ + RESPONSE_HEADER"" +#define PARAMS_RESP_FOOTER \ + ""RESPONSE_FOOTER + +#define FAULT_HEADER \ + RESPONSE_HEADER"" +#define FAULT_FOOTER \ + ""RESPONSE_FOOTER + +#define FAULT_STRUCT_HEADER \ + FAULT_HEADER"" +#define FAULT_STRUCT_FOOTER \ + ""FAULT_FOOTER + +const char * bad_responses[] = { + XML_PROLOGUE"\r\n", + RESPONSE_HEADER RESPONSE_FOOTER, + RESPONSE_HEADER""RESPONSE_FOOTER, + RESPONSE_HEADER""RESPONSE_FOOTER, + + /* Make sure we insist on only one parameter in a response. */ + PARAMS_RESP_HEADER PARAMS_RESP_FOOTER, + PARAMS_RESP_HEADER + "0" + "0" + PARAMS_RESP_FOOTER, + + /* Test other sorts of bad parameters. */ + PARAMS_RESP_HEADER""PARAMS_RESP_FOOTER, + PARAMS_RESP_HEADER""PARAMS_RESP_FOOTER, + PARAMS_RESP_HEADER""PARAMS_RESP_FOOTER, + PARAMS_RESP_HEADER + ""ARBITRARY_VALUE ARBITRARY_VALUE"" + PARAMS_RESP_FOOTER, + + /* Basic fault tests. */ + FAULT_HEADER FAULT_FOOTER, + FAULT_HEADER""FAULT_FOOTER, + FAULT_HEADER""FAULT_FOOTER, + FAULT_HEADER"1"FAULT_FOOTER, + + /* Make sure we insist on the proper members within the fault struct. */ + FAULT_STRUCT_HEADER + "faultString" + "foo" + FAULT_STRUCT_FOOTER, + FAULT_STRUCT_HEADER + "faultCode" + "0" + FAULT_STRUCT_FOOTER, + FAULT_STRUCT_HEADER + "faultCode" + "0" + "faultString" + "0" + FAULT_STRUCT_FOOTER, + FAULT_STRUCT_HEADER + "faultCode" + "0" + "faultString" + "foo" + FAULT_STRUCT_FOOTER, + NULL}; + +#define CALL_HEADER \ + XML_PROLOGUE"\r\n" +#define CALL_FOOTER \ + "\r\n" + +const char * bad_calls[] = { + XML_PROLOGUE"\r\n", + CALL_HEADER CALL_FOOTER, + CALL_HEADER"m"CALL_FOOTER, + CALL_HEADER""CALL_FOOTER, + CALL_HEADER""CALL_FOOTER, + NULL}; + +