mapnik/test/unit/renderer/cairo_io.cpp

36 lines
1 KiB
C++
Raw Normal View History

2019-02-08 12:32:01 +00:00
#include "catch.hpp"
#include <mapnik/cairo_io.hpp>
#include <mapnik/util/fs.hpp>
#include <mapnik/warning.hpp>
MAPNIK_DISABLE_WARNING_PUSH
2019-02-08 12:32:01 +00:00
#include <mapnik/warning_ignore.hpp>
#include <boost/filesystem/convenience.hpp>
MAPNIK_DISABLE_WARNING_POP
2019-02-08 12:32:01 +00:00
#include <fstream>
#if defined(HAVE_CAIRO)
2022-01-26 22:25:53 +00:00
TEST_CASE("cairo_io")
{
SECTION("save_to_cairo_file - SVG")
{
std::string directory_name("/tmp/mapnik-tests/");
boost::filesystem::create_directories(directory_name);
REQUIRE(mapnik::util::exists(directory_name));
2019-02-08 12:32:01 +00:00
2022-01-26 22:25:53 +00:00
std::string output_file(directory_name + "test_save_to_cairo_file.svg");
2019-02-08 12:32:01 +00:00
2022-01-26 22:25:53 +00:00
mapnik::Map map(256, 256);
mapnik::save_to_cairo_file(map, output_file);
2019-02-08 12:32:01 +00:00
2022-01-26 22:25:53 +00:00
std::ifstream stream(output_file, std::ios_base::in | std::ios_base::binary);
std::string actual_output(std::istreambuf_iterator<char>(stream.rdbuf()), std::istreambuf_iterator<char>());
2019-02-08 12:32:01 +00:00
2022-01-26 22:25:53 +00:00
// Check the Cairo SVG surface is using SVG 1.2
CHECK(actual_output.find("version=\"1.2\"") != std::string::npos);
}
2019-02-08 12:32:01 +00:00
}
#endif