TEST(Packager, HelloString) { QVariant var; var.setValue(QString("Hello!")); HttpResponse resp; JsonPackager pack; ASSERT_TRUE(pack.Package(var, resp)); QString data = resp.GetBody(); ASSERT_EQ(QString("\"Hello!\"\n"), resp.GetBody()); }
TEST(Packager, List) { QVariant var; HttpResponse resp; JsonPackager pack; QList<QVariant> list; list.append(QVariant("A")); list.append(QVariant("B")); list.append(QVariant("C")); var.setValue(list); ASSERT_TRUE(pack.Package(var, resp)); QString data = resp.GetBody(); ASSERT_EQ(QString("[ \"A\", \"B\", \"C\" ]\n"), resp.GetBody()); }
TEST(Packager, Null) { QVariant var; HttpResponse resp; JsonPackager pack; ASSERT_TRUE(pack.Package(var, resp)); QString data = resp.GetBody(); ASSERT_EQ(QString("null\n"), data); }
HttpResponse *HandleThreadException(ehs_threadid_t, HttpRequest *request, exception &ex) { HttpResponse *ret = NULL; string msg(ex.what()); cerr << "##################### Catched " << msg << endl; cerr << "request: " << hex << request << dec << endl; tracing::exception *btx = dynamic_cast<tracing::exception*>(&ex); if (NULL != btx) { string tmsg = btx->where(); cerr << "Backtrace:" << endl << tmsg; if (0 != msg.compare("fatal")) { ret = HttpResponse::Error(HTTPRESPONSECODE_500_INTERNALSERVERERROR, request); string body(ret->GetBody()); tmsg.insert(0, "<br>\n<pre>").append(msg).append("</pre><p><a href=\"/\">Back to main page</a>"); body.insert(body.find("</body>"), tmsg); ret->SetBody(body.c_str(), body.length()); } } return ret; }