xref: /aosp_15_r20/external/pdfium/fpdfsdk/fpdf_edit_unittest.cpp (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1 // Copyright 2018 The PDFium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "public/fpdf_edit.h"
6 
7 #include "core/fpdfapi/page/test_with_page_module.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 
10 using PDFEditTest = TestWithPageModule;
11 
TEST_F(PDFEditTest,LineJoin)12 TEST_F(PDFEditTest, LineJoin) {
13   EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, -1));
14   EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, FPDF_LINEJOIN_MITER));
15   EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, FPDF_LINEJOIN_ROUND));
16   EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, FPDF_LINEJOIN_BEVEL));
17   EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, 3));
18   EXPECT_FALSE(FPDFPageObj_SetLineJoin(nullptr, 1000));
19 
20   FPDF_PAGEOBJECT path = FPDFPageObj_CreateNewPath(0, 0);
21   EXPECT_EQ(FPDF_LINEJOIN_MITER, FPDFPageObj_GetLineJoin(path));
22 
23   EXPECT_FALSE(FPDFPageObj_SetLineJoin(path, -1));
24   EXPECT_FALSE(FPDFPageObj_SetLineJoin(path, 3));
25   EXPECT_FALSE(FPDFPageObj_SetLineJoin(path, 1000));
26 
27   EXPECT_TRUE(FPDFPageObj_SetLineJoin(path, FPDF_LINEJOIN_BEVEL));
28   EXPECT_EQ(FPDF_LINEJOIN_BEVEL, FPDFPageObj_GetLineJoin(path));
29 
30   EXPECT_TRUE(FPDFPageObj_SetLineJoin(path, FPDF_LINEJOIN_ROUND));
31   EXPECT_EQ(FPDF_LINEJOIN_ROUND, FPDFPageObj_GetLineJoin(path));
32 
33   EXPECT_TRUE(FPDFPageObj_SetLineJoin(path, FPDF_LINEJOIN_MITER));
34   EXPECT_EQ(FPDF_LINEJOIN_MITER, FPDFPageObj_GetLineJoin(path));
35 
36   FPDFPageObj_Destroy(path);
37 }
38 
TEST_F(PDFEditTest,LineCap)39 TEST_F(PDFEditTest, LineCap) {
40   EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, -1));
41   EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, FPDF_LINECAP_BUTT));
42   EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, FPDF_LINECAP_ROUND));
43   EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, FPDF_LINECAP_PROJECTING_SQUARE));
44   EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, 3));
45   EXPECT_FALSE(FPDFPageObj_SetLineCap(nullptr, 1000));
46 
47   FPDF_PAGEOBJECT path = FPDFPageObj_CreateNewPath(0, 0);
48   EXPECT_EQ(FPDF_LINECAP_BUTT, FPDFPageObj_GetLineCap(path));
49 
50   EXPECT_FALSE(FPDFPageObj_SetLineCap(path, -1));
51   EXPECT_FALSE(FPDFPageObj_SetLineCap(path, 3));
52   EXPECT_FALSE(FPDFPageObj_SetLineCap(path, 1000));
53 
54   EXPECT_TRUE(FPDFPageObj_SetLineCap(path, FPDF_LINECAP_PROJECTING_SQUARE));
55   EXPECT_EQ(FPDF_LINECAP_PROJECTING_SQUARE, FPDFPageObj_GetLineCap(path));
56 
57   EXPECT_TRUE(FPDFPageObj_SetLineCap(path, FPDF_LINECAP_ROUND));
58   EXPECT_EQ(FPDF_LINECAP_ROUND, FPDFPageObj_GetLineCap(path));
59 
60   EXPECT_TRUE(FPDFPageObj_SetLineCap(path, FPDF_LINECAP_BUTT));
61   EXPECT_EQ(FPDF_LINECAP_BUTT, FPDFPageObj_GetLineCap(path));
62 
63   FPDFPageObj_Destroy(path);
64 }
65