blob: c6960a5605b3749229f0fc6c3c071e4fb3995684 [file] [log] [blame]
// 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 "core/fxcrt/fx_system.h"
#include "public/fpdf_edit.h"
#include "testing/embedder_test.h"
class FPDFEditPageEmbedderTest : public EmbedderTest {};
TEST_F(FPDFEditPageEmbedderTest, Rotation) {
const char kOriginalMD5[] = "0a90de37f52127619c3dfb642b5fa2fe";
const char kRotatedMD5[] = "d599429574ff0dcad3bc898ea8b874ca";
{
ASSERT_TRUE(OpenDocument("rectangles.pdf"));
FPDF_PAGE page = LoadPage(0);
ASSERT_TRUE(page);
{
// Render the page as is.
EXPECT_EQ(0, FPDFPage_GetRotation(page));
const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
EXPECT_EQ(200, page_width);
EXPECT_EQ(300, page_height);
ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
CompareBitmap(bitmap.get(), page_width, page_height, kOriginalMD5);
}
FPDFPage_SetRotation(page, 1);
{
// Render the page after rotation.
// Note that the change affects the rendering, as expected.
// It behaves just like the case below, rather than the case above.
EXPECT_EQ(1, FPDFPage_GetRotation(page));
const int page_width = static_cast<int>(FPDF_GetPageWidth(page));
const int page_height = static_cast<int>(FPDF_GetPageHeight(page));
EXPECT_EQ(300, page_width);
EXPECT_EQ(200, page_height);
ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
CompareBitmap(bitmap.get(), page_width, page_height, kRotatedMD5);
}
UnloadPage(page);
}
{
// Save a copy, open the copy, and render it.
// Note that it renders the rotation.
EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
ASSERT_TRUE(OpenSavedDocument());
FPDF_PAGE saved_page = LoadSavedPage(0);
ASSERT_TRUE(saved_page);
EXPECT_EQ(1, FPDFPage_GetRotation(saved_page));
const int page_width = static_cast<int>(FPDF_GetPageWidth(saved_page));
const int page_height = static_cast<int>(FPDF_GetPageHeight(saved_page));
EXPECT_EQ(300, page_width);
EXPECT_EQ(200, page_height);
ScopedFPDFBitmap bitmap = RenderSavedPage(saved_page);
CompareBitmap(bitmap.get(), page_width, page_height, kRotatedMD5);
CloseSavedPage(saved_page);
CloseSavedDocument();
}
}