some tests for map_server and utils

This commit is contained in:
ExMix 2013-07-14 21:14:23 +03:00 committed by Alex Zolotarev
parent d8e7c944fa
commit e9e2222277
5 changed files with 162 additions and 0 deletions

BIN
data/test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

@ -0,0 +1,45 @@
#include "../../base/SRC_FIRST.hpp"
#include "../../testing/testing.hpp"
#include "../../coding/reader.hpp"
#include "../../coding/base64.hpp"
#include "../../platform/platform.hpp"
#include "../../map_server_utils/request.hpp"
#include "../../map_server_utils/viewport.hpp"
#include <QtCore/QProcess>
#include <QtCore/QByteArray>
UNIT_TEST(generate_simle_map)
{
QProcess * mapServer = new QProcess();
mapServer->start("./map_server", QIODevice::ReadWrite);
if (!mapServer->waitForStarted())
return;
::srv::Request::Params params;
params.m_density = graphics::EDensityMDPI;
params.m_viewport = ::srv::Viewport(m2::PointD(0.0, 0.0), 1, 128, 128);
::srv::Request r(params);
stringstream ss;
::srv::SendRequest(ss, r);
string sendData = ss.str();
mapServer->write(sendData.c_str(), sendData.size());
mapServer->waitForFinished();
QByteArray response = mapServer->readAll();
string responseString(response.constData(), response.size());
responseString = base64::Decode(responseString);
ModelReader * reader = GetPlatform().GetReader("test.png");
uint64_t size = reader->Size();
char * data = new char[size];
reader->Read(0, (void *)data, size);
delete reader;
TEST_EQUAL(size, responseString.size(), (""));
TEST_EQUAL(memcmp(data, responseString.c_str(), size), 0, (""));
}

View file

@ -0,0 +1,8 @@
#include <QCoreApplication>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
return a.exec();
}

View file

@ -0,0 +1,34 @@
#-------------------------------------------------
#
# Project created by QtCreator 2013-07-13T21:17:19
#
#-------------------------------------------------
QT += core gui opengl
TARGET = map_server_tests
CONFIG += console warn_on
CONFIG -= app_bundle
TEMPLATE = app
DEPENDENCIES = qt_tstfrm map indexer graphics platform geometry coding base expat freetype fribidi protobuf tomcrypt \
map_server_utils jansson
ROOT_DIR = ../..
include($$ROOT_DIR/common.pri)
QT *= opengl gui core
win32 {
LIBS *= -lopengl32 -lshell32
win32-g++: LIBS *= -lpthread
}
macx-*: LIBS *= "-framework Foundation"
SOURCES += \
../../testing/testingmain.cpp \
generate_map_tests.cpp \
utils_tests.cpp
HEADERS +=

View file

@ -0,0 +1,75 @@
#include "../../base/SRC_FIRST.hpp"
#include "../../testing/testing.hpp"
#include "../../graphics/defines.hpp"
#include "../../platform/platform.hpp"
#include "../../coding/reader.hpp"
#include "../../coding/base64.hpp"
#include "../../map_server_utils/request.hpp"
#include "../../map_server_utils/response.hpp"
#include "../../map_server_utils/viewport.hpp"
#include "../../std/iostream.hpp"
#include <QtCore/QByteArray>
UNIT_TEST(request_sending)
{
srv::Request::Params params;
params.m_viewport = srv::Viewport(m2::PointD(10.0, 20.0), 3, 300, 300);
params.m_density = graphics::EDensityXXHDPI;
srv::Request r(params);
stringstream stream;
srv::SendRequest(stream, r);
srv::Request input = srv::GetRequest(stream);
TEST_EQUAL(r.GetDensity(), input.GetDensity(), (""));
TEST_EQUAL((int)r.GetViewport().GetCenter().x, (int)input.GetViewport().GetCenter().x, (""));
TEST_EQUAL((int)r.GetViewport().GetCenter().y, (int)input.GetViewport().GetCenter().y, (""));
TEST_EQUAL((int)r.GetViewport().GetScale(), (int)input.GetViewport().GetScale(), (""));
TEST_EQUAL((int)r.GetViewport().GetWidth(), (int)input.GetViewport().GetWidth(), (""));
TEST_EQUAL((int)r.GetViewport().GetHeight(), (int)input.GetViewport().GetHeight(), (""));
}
UNIT_TEST(get_response)
{
srv::Request::Params params;
params.m_viewport = srv::Viewport(m2::PointD(10.0, 20.0), 3, 300, 300);
params.m_density = graphics::EDensityXXHDPI;
srv::Request r(params);
ModelReader * reader = GetPlatform().GetReader("test.png");
uint64_t size = reader->Size();
char * data = new char[size];
reader->Read(0, (void *)data, size);
delete reader;
QByteArray bytes(data, size);
srv::Response * response = r.CreateResponse(bytes);
std::streambuf * backup = cout.rdbuf();
stringstream inStream;
cout.rdbuf(inStream.rdbuf());
response->DoResponse();
cout.rdbuf(backup);
inStream.seekg (0, inStream.end);
int length = inStream.tellg();
inStream.seekg(0, inStream.beg);
char * responseData = new char[length];
inStream.read(responseData, length);
string responseString(responseData, length);
responseString = base64::Decode(responseString);
size_t responseSize = responseString.size();
TEST_EQUAL(size, (uint64_t)responseSize, (""));
TEST_EQUAL(memcmp(data, responseString.c_str(), size), 0, (""));
delete[] data;
delete[] responseData;
}