summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdf_transformpage_embeddertest.cpp
diff options
context:
space:
mode:
authorxlou <xlou@chromium.org>2018-10-11 21:15:18 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-10-11 21:15:18 +0000
commitc7f66edd224446deefe68506b7ebed871eb5c8c2 (patch)
treeec6ea7d0c57c1d9211712b87846a1cdb33e5dbba /fpdfsdk/fpdf_transformpage_embeddertest.cpp
parentbfc5f6011dd402a1fc07a522c3f25ab405f3e3ea (diff)
downloadpdfium-c7f66edd224446deefe68506b7ebed871eb5c8c2.tar.xz
Add functions to get/set ArtBox.chromium/3578
There are PDFs that use ArtBox. In some use cases, user may scale a page, scale up/down MediaBox and CropBox. So if ArtBox exists, it needs to be scaled as well. Bug:409670 Change-Id: I78ac7afa66942352277f856514bdd9b15dda270b Reviewed-on: https://pdfium-review.googlesource.com/c/43931 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Shirleen Lou <xlou@chromium.org>
Diffstat (limited to 'fpdfsdk/fpdf_transformpage_embeddertest.cpp')
-rw-r--r--fpdfsdk/fpdf_transformpage_embeddertest.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/fpdfsdk/fpdf_transformpage_embeddertest.cpp b/fpdfsdk/fpdf_transformpage_embeddertest.cpp
index 0a8e3e72e3..3904b0c321 100644
--- a/fpdfsdk/fpdf_transformpage_embeddertest.cpp
+++ b/fpdfsdk/fpdf_transformpage_embeddertest.cpp
@@ -37,6 +37,17 @@ TEST_F(FPDFTransformEmbedderTest, GetBoundingBoxes) {
EXPECT_EQ(150, cropbox_right);
EXPECT_EQ(150, cropbox_top);
+ float artbox_left;
+ float artbox_bottom;
+ float artbox_right;
+ float artbox_top;
+ EXPECT_TRUE(FPDFPage_GetArtBox(page, &artbox_left, &artbox_bottom,
+ &artbox_right, &artbox_top));
+ EXPECT_EQ(50, artbox_left);
+ EXPECT_EQ(60, artbox_bottom);
+ EXPECT_EQ(135, artbox_right);
+ EXPECT_EQ(140, artbox_top);
+
UnloadPage(page);
}
@@ -76,6 +87,17 @@ TEST_F(FPDFTransformEmbedderTest, GetBoundingBoxes) {
&cropbox_right, nullptr));
EXPECT_FALSE(FPDFPage_GetCropBox(page, nullptr, nullptr, nullptr, nullptr));
+ float artbox_left;
+ float artbox_bottom;
+ float artbox_right;
+ float artbox_top;
+ EXPECT_TRUE(FPDFPage_GetArtBox(page, &artbox_left, &artbox_bottom,
+ &artbox_right, &artbox_top));
+ EXPECT_EQ(140, artbox_left);
+ EXPECT_EQ(145, artbox_bottom);
+ EXPECT_EQ(65, artbox_right);
+ EXPECT_EQ(70, artbox_top);
+
UnloadPage(page);
}
}
@@ -120,3 +142,23 @@ TEST_F(FPDFTransformEmbedderTest, ClipPath) {
FPDF_DestroyClipPath(clip);
UnloadPage(page);
}
+
+TEST_F(FPDFTransformEmbedderTest, NoArtBox) {
+ ASSERT_TRUE(OpenDocument("hello_world.pdf"));
+ ASSERT_EQ(1, FPDF_GetPageCount(document()));
+
+ FPDF_PAGE page = LoadPage(0);
+ ASSERT_TRUE(page);
+
+ float left = -1.0f;
+ float bottom = -1.0f;
+ float right = 3.0f;
+ float top = 0.0f;
+ EXPECT_FALSE(FPDFPage_GetArtBox(page, &left, &bottom, &right, &top));
+ EXPECT_EQ(-1.0f, left);
+ EXPECT_EQ(-1.0f, bottom);
+ EXPECT_EQ(3.0f, right);
+ EXPECT_EQ(0.0f, top);
+
+ UnloadPage(page);
+}