void EXPECT_CALLHttpServer()
    {
        EXPECT_CALL(m_HttpServer, AddReference()).WillRepeatedly(testing::Return(1));
        EXPECT_CALL(m_HttpServer, ReleaseReference()).WillRepeatedly(testing::Return(1));
        EXPECT_CALL(m_HttpServer, OpenWithSink(testing::_)).WillRepeatedly(testing::Return(CM_OK));
        EXPECT_CALL(m_HttpServer, Disconnect(testing::_)).WillRepeatedly(testing::Return(CM_OK));
        EXPECT_CALL(m_HttpServer, SendData(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));

        EXPECT_CALL(m_HttpServer, GetRequestHeader(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));
        EXPECT_CALL(m_HttpServer, SetOrAddResponseHeader(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));

        EXPECT_CALL(m_HttpServer, SetOption(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));
        EXPECT_CALL(m_HttpServer, GetOption(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));
    
        EXPECT_CALL(m_HttpServer2, AddReference()).WillRepeatedly(testing::Return(1));
        EXPECT_CALL(m_HttpServer2, ReleaseReference()).WillRepeatedly(testing::Return(1));
        EXPECT_CALL(m_HttpServer2, OpenWithSink(testing::_)).WillRepeatedly(testing::Return(CM_OK));
        EXPECT_CALL(m_HttpServer2, Disconnect(testing::_)).WillRepeatedly(testing::Return(CM_OK));
        EXPECT_CALL(m_HttpServer2, SendData(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));

        EXPECT_CALL(m_HttpServer2, GetRequestHeader(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));
        EXPECT_CALL(m_HttpServer2, SetOrAddResponseHeader(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));

        EXPECT_CALL(m_HttpServer2, SetOption(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));
        EXPECT_CALL(m_HttpServer2, GetOption(testing::_, testing::_)).WillRepeatedly(testing::Return(CM_OK));
    }
Beispiel #2
0
NS_IMETHODIMP
nsViewSourceChannel::GetRequestHeader(const nsACString & aHeader,
                                      nsACString & aValue)
{
    return !mHttpChannel ? NS_ERROR_NULL_POINTER :
        mHttpChannel->GetRequestHeader(aHeader, aValue);
}
XBOX::VError VHTTPResponse::_CompressData()
{
	if (fCompressionMode != COMPRESSION_NONE)
		return XBOX::VE_OK;

	XBOX::VError	error = XBOX::VE_OK;
	bool			isOK = false;

	if (fCanCompressBody)
	{
		// Negotiate compression Method according to the request header

		XBOX::VString encoding;
		if (GetRequestHeader().GetHeaderValue (STRING_HEADER_ACCEPT_ENCODING, encoding))
		{
			fCompressionMode = HTTPProtocol::NegotiateEncodingMethod (encoding);

			if (COMPRESSION_NONE != fCompressionMode)
			{
#if HTTP_SERVER_VERBOSE_MODE || LOG_IN_CONSOLE
				VDebugTimer compressionTimer;
#endif
				error = HTTPServerTools::CompressStream (GetBody(), fCompressionMode);

				if (XBOX::VE_OK == error)
				{
					XBOX::VString contentEncoding;
					HTTPProtocol::GetEncodingMethodName (fCompressionMode, contentEncoding);

					/* Tell that Content-Encoding was negotiated */
					GetHeaders().SetHeaderValue (STRING_HEADER_VARY, STRING_HEADER_CONTENT_ENCODING, false);
					GetHeaders().SetHeaderValue (STRING_HEADER_CONTENT_ENCODING, contentEncoding);

					/* And of course change the Content-Length */
					SetContentLengthHeader (GetBody().GetSize());

					isOK = true;
				}

#if HTTP_SERVER_VERBOSE_MODE
				GetHeaders().SetHeaderValue (CVSTR ("X-CompressionTime"), compressionTimer.GetElapsedTime());
#endif
#if LOG_IN_CONSOLE
				compressionTimer.DebugMsg ("* VHTTPResponse::_CompressData()");
#endif
			}
		}
	}

	if (!isOK)
		fCompressionMode = COMPRESSION_NONE;

	return error;
}
bool VHTTPResponse::GetIfUnmodifiedSinceHeader (XBOX::VTime& outTime)
{
	XBOX::VString timeString;

	if (!GetRequestHeader().GetHeaderValue (STRING_HEADER_IF_UNMODIFIED_SINCE, timeString))
	{
		outTime.Clear();
		return false;
	}

	outTime.FromRfc822String (timeString);

	return true;
}