Exemplo n.º 1
0
// Test that only cookies we manually add to the header are sent.
void HttpClientTest::testCookies()
{
    bp::url::Url url(m_testServer.getEchoUrl());
    RequestPtr ptrReq(new Request(Method::HTTP_POST, url));

    // Tell the test server to echo request headers in response body.
    QueryString qs;
    qs.add("EchoHeaders", bp::conv::toString(1));
    ptrReq->url.setQuery(qs.toString());

    // Add some cookie headers.
    string sCookie = "kind=oatmeal";
    Headers hdrs;
    hdrs.add( Headers::ksCookie, "kind=oatmeal" );
    ptrReq->headers = hdrs;
    
    // Dummy body.
    const string ksBody = "Cookies are delicious";
    ptrReq->body.assign(ksBody);

    // Execute the transaction.
    SyncTransactionPtr tran = SyncTransaction::alloc(ptrReq);
    SyncTransaction::FinalStatus results;
    ResponsePtr ptrResp = tran->execute(results);
    CPPUNIT_ASSERT(results.code == SyncTransaction::FinalStatus::eOk);
    CPPUNIT_ASSERT(ptrResp->status.code() == Status::OK);

    string sBody = ptrResp->body.toString();
    string sCookieHdr = "Cookie: " + sCookie;
    string::size_type nIdx = sBody.find( sCookieHdr );
    CPPUNIT_ASSERT( nIdx != string::npos);
}