// SPDX-License-Identifier: GPL-2.0-or-later /** @file * LPE tests *//* * Authors: see git history * * Copyright (C) 2020 Authors * * Released under GNU GPL version 2 or later, read the file 'COPYING' for more information */ #include #include #include #include #include #include #include using namespace Inkscape; using namespace Inkscape::LivePathEffect; class LPETest : public LPESPathsTest { public: void run() { testDoc(svg); } }; // A) FILE BASED TESTS TEST_F(LPETest, Inkscape_0_92) { run(); } TEST_F(LPETest, Inkscape_1_0) { run(); } TEST_F(LPETest, Inkscape_1_1) { run(); } TEST_F(LPETest, Inkscape_1_2) { run(); } TEST_F(LPETest, Inkscape_1_3) { run(); } // B) CUSTOM TESTS // BOOL LPE TEST_F(LPETest, Bool_canBeApplyedToNonSiblingPaths) { std::string svg("\ \ \ \ \ \ \ \ \ "); SPDocument *doc = SPDocument::createNewDocFromMem(svg.c_str(), svg.size(), true); doc->ensureUpToDate(); auto lpe_item = cast(doc->getObjectById("rect1")); ASSERT_TRUE(lpe_item != nullptr); auto lpe_bool_op_effect = dynamic_cast(lpe_item->getFirstPathEffectOfType(EffectType::BOOL_OP)); ASSERT_TRUE(lpe_bool_op_effect != nullptr); auto operand_path = lpe_bool_op_effect->getParameter("operand-path")->param_getSVGValue(); auto circle = cast(doc->getObjectById(operand_path.substr(1))); ASSERT_TRUE(circle != nullptr); }