// Copyright 2018 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "public/fpdf_edit.h" #include "core/fpdfapi/page/cpdf_pagemodule.h" #include "testing/gtest/include/gtest/gtest.h" class PDFEditTest : public testing::Test { void SetUp() override { CPDF_PageModule::Create(); } void TearDown() override { CPDF_PageModule::Destroy(); } }; TEST_F(PDFEditTest, LineJoin) { EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, -1)); EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, FPDF_LINEJOIN_MITER)); EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, FPDF_LINEJOIN_ROUND)); EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, FPDF_LINEJOIN_BEVEL)); EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, 3)); EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, 1000)); FPDF_PAGEOBJECT path = FPDFPageObj_CreateNewPath(0, 0); EXPECT_EQ(FPDF_LINEJOIN_MITER, FPDFPageObj_GetLineJoin(path)); EXPECT_FALSE(FPDFPageObj_SetLineJoin(path, -1)); EXPECT_FALSE(FPDFPageObj_SetLineJoin(path, 3)); EXPECT_FALSE(FPDFPageObj_SetLineJoin(path, 1000)); EXPECT_TRUE(FPDFPageObj_SetLineJoin(path, FPDF_LINEJOIN_BEVEL)); EXPECT_EQ(FPDF_LINEJOIN_BEVEL, FPDFPageObj_GetLineJoin(path)); EXPECT_TRUE(FPDFPageObj_SetLineJoin(path, FPDF_LINEJOIN_ROUND)); EXPECT_EQ(FPDF_LINEJOIN_ROUND, FPDFPageObj_GetLineJoin(path)); EXPECT_TRUE(FPDFPageObj_SetLineJoin(path, FPDF_LINEJOIN_MITER)); EXPECT_EQ(FPDF_LINEJOIN_MITER, FPDFPageObj_GetLineJoin(path)); FPDFPageObj_Destroy(path); } TEST_F(PDFEditTest, LineCap) { EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, -1)); EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, FPDF_LINECAP_BUTT)); EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, FPDF_LINECAP_ROUND)); EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, FPDF_LINECAP_PROJECTING_SQUARE)); EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, 3)); EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, 1000)); FPDF_PAGEOBJECT path = FPDFPageObj_CreateNewPath(0, 0); EXPECT_EQ(FPDF_LINECAP_BUTT, FPDFPageObj_GetLineCap(path)); EXPECT_FALSE(FPDFPageObj_SetLineCap(path, -1)); EXPECT_FALSE(FPDFPageObj_SetLineCap(path, 3)); EXPECT_FALSE(FPDFPageObj_SetLineCap(path, 1000)); EXPECT_TRUE(FPDFPageObj_SetLineCap(path, FPDF_LINECAP_PROJECTING_SQUARE)); EXPECT_EQ(FPDF_LINECAP_PROJECTING_SQUARE, FPDFPageObj_GetLineCap(path)); EXPECT_TRUE(FPDFPageObj_SetLineCap(path, FPDF_LINECAP_ROUND)); EXPECT_EQ(FPDF_LINECAP_ROUND, FPDFPageObj_GetLineCap(path)); EXPECT_TRUE(FPDFPageObj_SetLineCap(path, FPDF_LINECAP_BUTT)); EXPECT_EQ(FPDF_LINECAP_BUTT, FPDFPageObj_GetLineCap(path)); FPDFPageObj_Destroy(path); }