EWK2UnitTestServer.cpp [plain text]
#include "config.h"
#include "EWK2UnitTestServer.h"
EWK2UnitTestServer::EWK2UnitTestServer(GTlsCertificate* tlsCert)
{
SoupAddress* address = soup_address_new("127.0.0.1", SOUP_ADDRESS_ANY_PORT);
soup_address_resolve_sync(address, 0);
if (tlsCert) {
m_soupServer = soup_server_new(
SOUP_SERVER_TLS_CERTIFICATE, tlsCert,
SOUP_SERVER_INTERFACE, address, static_cast<char*>(0));
m_baseURL = soup_uri_new("https://127.0.0.1/");
} else {
m_soupServer = soup_server_new(SOUP_SERVER_INTERFACE, address, static_cast<char*>(0));
m_baseURL = soup_uri_new("http://127.0.0.1/");
}
soup_uri_set_port(m_baseURL, soup_server_get_port(m_soupServer));
g_object_unref(address);
}
EWK2UnitTestServer::~EWK2UnitTestServer()
{
soup_uri_free(m_baseURL);
g_object_unref(m_soupServer);
}
void EWK2UnitTestServer::run(SoupServerCallback serverCallback)
{
soup_server_run_async(m_soupServer);
soup_server_add_handler(m_soupServer, 0, serverCallback, 0, 0);
}
CString EWK2UnitTestServer::getURLForPath(const char* path) const
{
SoupURI* soupURL = soup_uri_new_with_base(m_baseURL, path);
char* url = soup_uri_to_string(soupURL, false);
CString urlString = url;
free(url);
soup_uri_free(soupURL);
return urlString;
}
unsigned EWK2UnitTestServer::port() const
{
return soup_server_get_port(m_soupServer);
}