diff --git a/test/data b/test/data index c7994e102..28be586d7 160000 --- a/test/data +++ b/test/data @@ -1 +1 @@ -Subproject commit c7994e1027943c19f88a2bb65a4c745b05f32dd5 +Subproject commit 28be586d71b24fe1bcdf70bc9ba37dc4f63860fc diff --git a/test/unit/svg/svg_parser_test.cpp b/test/unit/svg/svg_parser_test.cpp index d7e1b9ca4..55ba5a376 100644 --- a/test/unit/svg/svg_parser_test.cpp +++ b/test/unit/svg/svg_parser_test.cpp @@ -681,4 +681,22 @@ TEST_CASE("SVG parser") { transform *= agg::trans_affine_translation(240,155); REQUIRE(attrs[1].fill_gradient.get_transform() == transform); } + SECTION("SVG with xlink:href") + { + std::string svg_name("./test/data/svg/gradient-xhref.svg"); + std::shared_ptr marker = mapnik::marker_cache::instance().find(svg_name, false); + REQUIRE(marker); + REQUIRE(marker->is()); + mapnik::marker_svg const& svg = mapnik::util::get(*marker); + auto bbox = svg.bounding_box(); + REQUIRE(bbox == mapnik::box2d(20,20,460,230)); + auto storage = svg.get_data(); + REQUIRE(storage); + + auto const& attrs = storage->attributes(); + REQUIRE(attrs.size() == 2 ); + REQUIRE(attrs[0].fill_gradient.get_gradient_type() == mapnik::LINEAR); + REQUIRE(attrs[1].fill_gradient.get_gradient_type() == mapnik::LINEAR); + REQUIRE(attrs[1].fill_gradient.has_stop()); + } }