From d368261cc8d604286e29ca6358700e6bb051dcaa Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Wed, 6 Jan 2016 09:55:39 -0800 Subject: Add fpdf_edit basic creation embedder test. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1554133003 . --- BUILD.gn | 1 + fpdfsdk/src/fpdfedit_embeddertest.cpp | 18 ++++++++++++++++++ pdfium.gyp | 1 + testing/embedder_test.cpp | 15 +++++++++++++-- testing/embedder_test.h | 6 ++++++ 5 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 fpdfsdk/src/fpdfedit_embeddertest.cpp diff --git a/BUILD.gn b/BUILD.gn index 3e72d50b18..c16c89a7c8 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -751,6 +751,7 @@ test("pdfium_embeddertests") { "core/src/fpdfapi/fpdf_render/fpdf_render_pattern_embeddertest.cpp", "fpdfsdk/src/fpdf_dataavail_embeddertest.cpp", "fpdfsdk/src/fpdfdoc_embeddertest.cpp", + "fpdfsdk/src/fpdfedit_embeddertest.cpp", "fpdfsdk/src/fpdfext_embeddertest.cpp", "fpdfsdk/src/fpdfformfill_embeddertest.cpp", "fpdfsdk/src/fpdfsave_embeddertest.cpp", diff --git a/fpdfsdk/src/fpdfedit_embeddertest.cpp b/fpdfsdk/src/fpdfedit_embeddertest.cpp new file mode 100644 index 0000000000..9db948cd1f --- /dev/null +++ b/fpdfsdk/src/fpdfedit_embeddertest.cpp @@ -0,0 +1,18 @@ +// Copyright 2016 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_edit.h" +#include "public/fpdfview.h" +#include "testing/embedder_test.h" +#include "testing/gtest/include/gtest/gtest.h" + +class FPDFEditEmbeddertest : public EmbedderTest {}; + +TEST_F(FPDFEditEmbeddertest, EmptyCreation) { + EXPECT_TRUE(CreateEmptyDocument()); + FPDF_PAGE page = FPDFPage_New(document(), 1, 640.0, 480.0); + EXPECT_NE(nullptr, page); + EXPECT_TRUE(FPDFPage_GenerateContent(page)); + FPDFPage_Delete(document(), 1); +} diff --git a/pdfium.gyp b/pdfium.gyp index 4e93279493..38244ce233 100644 --- a/pdfium.gyp +++ b/pdfium.gyp @@ -744,6 +744,7 @@ 'core/src/fpdfapi/fpdf_render/fpdf_render_pattern_embeddertest.cpp', 'fpdfsdk/src/fpdf_dataavail_embeddertest.cpp', 'fpdfsdk/src/fpdfdoc_embeddertest.cpp', + 'fpdfsdk/src/fpdfedit_embeddertest.cpp', 'fpdfsdk/src/fpdfext_embeddertest.cpp', 'fpdfsdk/src/fpdfformfill_embeddertest.cpp', 'fpdfsdk/src/fpdfsave_embeddertest.cpp', diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp index 33c72201a1..e99c2e351a 100644 --- a/testing/embedder_test.cpp +++ b/testing/embedder_test.cpp @@ -93,6 +93,15 @@ void EmbedderTest::TearDown() { free(file_contents_); } +bool EmbedderTest::CreateEmptyDocument() { + document_ = FPDF_CreateNewDocument(); + if (!document_) + return false; + + SetupFormFillEnvironment(); + return true; +} + bool EmbedderTest::OpenDocument(const std::string& filename, bool must_linearize) { std::string file_path; @@ -152,7 +161,11 @@ bool EmbedderTest::OpenDocument(const std::string& filename, } (void)FPDF_GetDocPermissions(document_); + SetupFormFillEnvironment(); + return true; +} +void EmbedderTest::SetupFormFillEnvironment() { IPDF_JSPLATFORM* platform = static_cast(this); memset(platform, 0, sizeof(IPDF_JSPLATFORM)); platform->version = 2; @@ -169,8 +182,6 @@ bool EmbedderTest::OpenDocument(const std::string& filename, form_handle_ = FPDFDOC_InitFormFillEnvironment(document_, formfillinfo); FPDF_SetFormFieldHighlightColor(form_handle_, 0, 0xFFE4DD); FPDF_SetFormFieldHighlightAlpha(form_handle_, 100); - - return true; } void EmbedderTest::DoOpenActions() { diff --git a/testing/embedder_test.h b/testing/embedder_test.h index a544f26543..c780cca74b 100644 --- a/testing/embedder_test.h +++ b/testing/embedder_test.h @@ -78,6 +78,10 @@ class EmbedderTest : public ::testing::Test, FPDF_DOCUMENT document() { return document_; } FPDF_FORMHANDLE form_handle() { return form_handle_; } + // Create an empty document, and its form fill environment. Returns true + // on success or false on failure. + virtual bool CreateEmptyDocument(); + // Open the document specified by |filename|, and create its form fill // environment, or return false on failure. // The filename is relative to the test data directory where we store all the @@ -107,6 +111,8 @@ class EmbedderTest : public ::testing::Test, virtual void UnloadPage(FPDF_PAGE page); protected: + void SetupFormFillEnvironment(); + Delegate* delegate_; std::unique_ptr default_delegate_; FPDF_DOCUMENT document_; -- cgit v1.2.3