| OLD | NEW |
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "public/fpdf_edit.h" | 5 #include "public/fpdf_edit.h" |
| 6 | 6 |
| 7 #include "core/fpdfapi/include/cpdf_modulemgr.h" | 7 #include "core/fpdfapi/include/cpdf_modulemgr.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 class PDFEditTest : public testing::Test { | 10 class PDFEditTest : public testing::Test { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 EXPECT_EQ(0, FPDFPage_CountObject(page)); | 28 EXPECT_EQ(0, FPDFPage_CountObject(page)); |
| 29 | 29 |
| 30 FPDF_PAGEOBJECT page_image = FPDFPageObj_NewImgeObj(doc); | 30 FPDF_PAGEOBJECT page_image = FPDFPageObj_NewImgeObj(doc); |
| 31 FPDFPage_InsertObject(nullptr, page_image); | 31 FPDFPage_InsertObject(nullptr, page_image); |
| 32 EXPECT_EQ(0, FPDFPage_CountObject(page)); | 32 EXPECT_EQ(0, FPDFPage_CountObject(page)); |
| 33 | 33 |
| 34 FPDF_ClosePage(page); | 34 FPDF_ClosePage(page); |
| 35 FPDF_CloseDocument(doc); | 35 FPDF_CloseDocument(doc); |
| 36 } | 36 } |
| 37 | 37 |
| 38 // https://bugs.chromium.org/p/pdfium/issues/detail?id=545 | |
| 39 // TODO(thestig): Add another test case that also calls | |
| 40 // FPDFPage_GenerateContent(). | |
| 41 TEST_F(PDFEditTest, NewImgeObj) { | 38 TEST_F(PDFEditTest, NewImgeObj) { |
| 42 FPDF_DOCUMENT doc = FPDF_CreateNewDocument(); | 39 FPDF_DOCUMENT doc = FPDF_CreateNewDocument(); |
| 43 FPDF_PAGE page = FPDFPage_New(doc, 0, 100, 100); | 40 FPDF_PAGE page = FPDFPage_New(doc, 0, 100, 100); |
| 44 EXPECT_EQ(0, FPDFPage_CountObject(page)); | 41 EXPECT_EQ(0, FPDFPage_CountObject(page)); |
| 45 | 42 |
| 46 FPDF_PAGEOBJECT page_image = FPDFPageObj_NewImgeObj(doc); | 43 FPDF_PAGEOBJECT page_image = FPDFPageObj_NewImgeObj(doc); |
| 47 FPDFPage_InsertObject(page, page_image); | 44 FPDFPage_InsertObject(page, page_image); |
| 48 EXPECT_EQ(1, FPDFPage_CountObject(page)); | 45 EXPECT_EQ(1, FPDFPage_CountObject(page)); |
| 49 | 46 |
| 50 FPDF_ClosePage(page); | 47 FPDF_ClosePage(page); |
| 51 FPDF_CloseDocument(doc); | 48 FPDF_CloseDocument(doc); |
| 52 } | 49 } |
| 50 |
| 51 TEST_F(PDFEditTest, NewImgeObjGenerateContent) { |
| 52 FPDF_DOCUMENT doc = FPDF_CreateNewDocument(); |
| 53 FPDF_PAGE page = FPDFPage_New(doc, 0, 100, 100); |
| 54 EXPECT_EQ(0, FPDFPage_CountObject(page)); |
| 55 |
| 56 constexpr int kBitmapSize = 50; |
| 57 FPDF_BITMAP bitmap = FPDFBitmap_Create(kBitmapSize, kBitmapSize, 0); |
| 58 FPDFBitmap_FillRect(bitmap, 0, 0, kBitmapSize, kBitmapSize, 0x00000000); |
| 59 EXPECT_EQ(kBitmapSize, FPDFBitmap_GetWidth(bitmap)); |
| 60 EXPECT_EQ(kBitmapSize, FPDFBitmap_GetHeight(bitmap)); |
| 61 |
| 62 FPDF_PAGEOBJECT page_image = FPDFPageObj_NewImgeObj(doc); |
| 63 ASSERT_TRUE(FPDFImageObj_SetBitmap(&page, 0, page_image, bitmap)); |
| 64 ASSERT_TRUE( |
| 65 FPDFImageObj_SetMatrix(page_image, kBitmapSize, 0, 0, kBitmapSize, 0, 0)); |
| 66 FPDFPage_InsertObject(page, page_image); |
| 67 EXPECT_EQ(1, FPDFPage_CountObject(page)); |
| 68 EXPECT_TRUE(FPDFPage_GenerateContent(page)); |
| 69 |
| 70 FPDFBitmap_Destroy(bitmap); |
| 71 FPDF_ClosePage(page); |
| 72 FPDF_CloseDocument(doc); |
| 73 } |
| OLD | NEW |