void HTTPServiceTestObject::test<7>() { // test large request std::stringstream stream; //U32 size = 36 * 1024 * 1024; //U32 size = 36 * 1024; //std::vector<char> data(size); //memset(&(data[0]), '1', size); //data[size - 1] = '\0'; //std::string result = httpPOST("web/echo", &(data[0])); stream << "<llsd><array>"; for(U32 i = 0; i < 1000000; ++i) { stream << "<integer>42</integer>"; } stream << "</array></llsd>"; LL_INFOS() << "HTTPServiceTestObject::test<7>" << stream.str().length() << LL_ENDL; std::string result = httpPOST("web/echo", stream.str()); ensure_starts_with("large echo status", result, "HTTP/1.0 200 OK\r\n"); }
std::string httpPOST(const std::string& uri, const std::string& body, const std::string& evilExtra = "") { bool timeout = false; return httpPOST(uri, body, timeout, evilExtra); }
int InetGSM::tweet(const char* token, const char* msg) { // gsm.httpPOST("arduino-tweet.appspot.com",80,"/update", "token=15514242-eWYAlMwjRQfrhnZxQiOfDXUpaYwjbSvMl1Nm5Qyg&status=Spam", buffer, 200); char shortbuf[200]; strcpy(shortbuf,"token="); strcat(shortbuf,token); strcat(shortbuf,"&status="); strcat(shortbuf, msg); httpPOST("arduino-tweet.appspot.com",80,"/update",shortbuf, shortbuf, BUFFERSIZE); }
void HTTPServiceTestObject::test<5>() { // test timeout before async response std::string result; bool timeout = true; result = httpPOST("delayed/echo", "<llsd><string>agent99</string></llsd>", timeout); ensure_equals("timeout delayed/echo status", result, std::string("")); }
void HTTPServiceTestObject::test<6>() { // test delayed service std::string result; result = httpPOST("delayed/echo", "<llsd><string>agent99</string></llsd>"); ensure_starts_with("delayed/echo status", result, "HTTP/1.0 200 OK\r\n"); ensure_contains("delayed/echo content", result, "\r\n" "<llsd><string>agent99</string></llsd>" ); }
void HTTPServiceTestObject::test<3>() { // test POST & content-length handling std::string result; result = httpPOST("web/echo", "<llsd><integer>42</integer></llsd>"); ensure_starts_with("web/echo status", result, "HTTP/1.0 200 OK\r\n"); ensure_contains("web/echo content type", result, "Content-Type: application/llsd+xml\r\n"); ensure_contains("web/echo content length", result, "Content-Length: 35\r\n"); ensure_contains("web/hello content", result, "\r\n" "<llsd><integer>42</integer></llsd>" ); /* TO DO: this test doesn't pass!! result = httpPOST("web/echo", "<llsd><string>evil</string></llsd>", "really! evil!!!"); ensure_equals("web/echo evil result", result, "HTTP/1.0 200 OK\r\n" "Content-Length: 34\r\n" "\r\n" "<llsd><string>evil</string></llsd>" ); */ }