From d8a8f2785144f6656cd84c82c865eed62885d36b Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Fri, 8 Jun 2018 18:03:38 +0000 Subject: Write some FPDFTransformEmbedderTests. Test FPDFPage_GetMediaBox() and FPDFPage_GetCropBox(). Change-Id: Ia5ba3d95c0c859acb5c2576781cca90d3e60b40e Reviewed-on: https://pdfium-review.googlesource.com/34570 Reviewed-by: Henrique Nakashima Commit-Queue: Lei Zhang --- BUILD.gn | 1 + fpdfsdk/fpdf_transformpage_embeddertest.cpp | 91 +++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 fpdfsdk/fpdf_transformpage_embeddertest.cpp diff --git a/BUILD.gn b/BUILD.gn index 3422b81535..5df974aff8 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -3019,6 +3019,7 @@ test("pdfium_embeddertests") { "fpdfsdk/fpdf_save_embeddertest.cpp", "fpdfsdk/fpdf_structtree_embeddertest.cpp", "fpdfsdk/fpdf_text_embeddertest.cpp", + "fpdfsdk/fpdf_transformpage_embeddertest.cpp", "fpdfsdk/fpdf_view_c_api_test.c", "fpdfsdk/fpdf_view_c_api_test.h", "fpdfsdk/fpdf_view_embeddertest.cpp", diff --git a/fpdfsdk/fpdf_transformpage_embeddertest.cpp b/fpdfsdk/fpdf_transformpage_embeddertest.cpp new file mode 100644 index 0000000000..d064efee0b --- /dev/null +++ b/fpdfsdk/fpdf_transformpage_embeddertest.cpp @@ -0,0 +1,91 @@ +// 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_transformpage.h" +#include "testing/embedder_test.h" + +class FPDFTransformEmbedderTest : public EmbedderTest {}; + +TEST_F(FPDFTransformEmbedderTest, GetBoundingBoxes) { + ASSERT_TRUE(OpenDocument("cropped_text.pdf")); + ASSERT_EQ(4, FPDF_GetPageCount(document())); + + { + FPDF_PAGE page = LoadPage(1); + ASSERT_TRUE(page); + + float mediabox_left; + float mediabox_bottom; + float mediabox_right; + float mediabox_top; + EXPECT_TRUE(FPDFPage_GetMediaBox(page, &mediabox_left, &mediabox_bottom, + &mediabox_right, &mediabox_top)); + EXPECT_EQ(-50, mediabox_left); + EXPECT_EQ(-50, mediabox_bottom); + EXPECT_EQ(200, mediabox_right); + EXPECT_EQ(200, mediabox_top); + + float cropbox_left; + float cropbox_bottom; + float cropbox_right; + float cropbox_top; + EXPECT_TRUE(FPDFPage_GetCropBox(page, &cropbox_left, &cropbox_bottom, + &cropbox_right, &cropbox_top)); + EXPECT_EQ(50, cropbox_left); + EXPECT_EQ(50, cropbox_bottom); + EXPECT_EQ(150, cropbox_right); + EXPECT_EQ(150, cropbox_top); + + UnloadPage(page); + } + + { + FPDF_PAGE page = LoadPage(3); + ASSERT_TRUE(page); + + float mediabox_left; + float mediabox_bottom; + float mediabox_right; + float mediabox_top; + EXPECT_TRUE(FPDFPage_GetMediaBox(page, &mediabox_left, &mediabox_bottom, + &mediabox_right, &mediabox_top)); + EXPECT_EQ(0, mediabox_left); + EXPECT_EQ(0, mediabox_bottom); + EXPECT_EQ(200, mediabox_right); + EXPECT_EQ(200, mediabox_top); + + float cropbox_left; + float cropbox_bottom; + float cropbox_right; + float cropbox_top; + EXPECT_TRUE(FPDFPage_GetCropBox(page, &cropbox_left, &cropbox_bottom, + &cropbox_right, &cropbox_top)); + EXPECT_EQ(150, cropbox_left); + EXPECT_EQ(150, cropbox_bottom); + EXPECT_EQ(60, cropbox_right); + EXPECT_EQ(60, cropbox_top); + + UnloadPage(page); + } +} + +TEST_F(FPDFTransformEmbedderTest, NoCropBox) { + 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 = -2.0f; + float right = 3.0f; + float top = 0.0f; + EXPECT_FALSE(FPDFPage_GetCropBox(page, &left, &bottom, &right, &top)); + EXPECT_EQ(-1.0f, left); + EXPECT_EQ(-2.0f, bottom); + EXPECT_EQ(3.0f, right); + EXPECT_EQ(0.0f, top); + + UnloadPage(page); +} -- cgit v1.2.3