diff options
author | Tom Sepez <tsepez@chromium.org> | 2015-01-15 16:31:51 -0800 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2015-01-15 16:31:51 -0800 |
commit | d0edcea1a1b22813f593022ca29fca79074757bf (patch) | |
tree | f595d536595cafac145a92ebeb3540f4b383b8a1 /testing/embedder_test.h | |
parent | f061e44695fc438f3fc9877f5bf8f0f8397ed186 (diff) | |
download | pdfium-d0edcea1a1b22813f593022ca29fca79074757bf.tar.xz |
Create first pdfium embedder test.
BUG=https://code.google.com/p/pdfium/issues/detail?id=62
R=jam@chromium.org
Review URL: https://codereview.chromium.org/827733006
Diffstat (limited to 'testing/embedder_test.h')
-rw-r--r-- | testing/embedder_test.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/testing/embedder_test.h b/testing/embedder_test.h new file mode 100644 index 0000000000..b127eadbde --- /dev/null +++ b/testing/embedder_test.h @@ -0,0 +1,78 @@ +// Copyright (c) 2015 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. + +#ifndef TESTING_EMBEDDER_TEST_H_ +#define TESTING_EMBEDDER_TEST_H_ + +#include <string> + +#include "../core/include/fxcrt/fx_system.h" +#include "../fpdfsdk/include/fpdf_dataavail.h" +#include "../fpdfsdk/include/fpdfformfill.h" +#include "../fpdfsdk/include/fpdfview.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "v8/include/v8.h" + +// This class is used to load a PDF document, and then run programatic +// API tests against it. +class EmbedderTest : public ::testing::Test { + public: + EmbedderTest() : + document_(nullptr), + avail_(nullptr), + file_length_(0), + file_contents_(nullptr) { + memset(&hints_, 0, sizeof(hints_)); + memset(&file_access_, 0, sizeof(file_access_)); + memset(&file_avail_, 0, sizeof(file_avail_)); + } + + virtual ~EmbedderTest() { } + + void SetUp() override; + void TearDown() override; + + FPDF_DOCUMENT document() { return document_; } + + // Open the document specified by |filename|, or return false on failure. + virtual bool OpenDocument(const std::string& filename); + + // Create and return a handle to the form fill module for use with the + // FORM_ family of functions from fpdfformfill.h, or return NULL on failure. + virtual FPDF_FORMHANDLE SetFormFillEnvironment(); + + // Release the resources obtained from SetFormFillEnvironment(). + virtual void ClearFormFillEnvironment(FPDF_FORMHANDLE form); + + // Perform JavaScript actions that are to run at document open time. + virtual void DoOpenActions(FPDF_FORMHANDLE form); + + // Determine the page numbers present in the document. + virtual int GetFirstPageNum(); + virtual int GetPageCount(); + + // Load a specific page of the open document. + virtual FPDF_PAGE LoadPage(int page_number, FPDF_FORMHANDLE form); + + // Convert a loaded page into a bitmap. + virtual FPDF_BITMAP RenderPage(FPDF_PAGE page, FPDF_FORMHANDLE form); + + // Relese the resources obtained from LoadPage(). Further use of |page| + // is prohibited after this call is made. + virtual void UnloadPage(FPDF_PAGE page, FPDF_FORMHANDLE form); + + private: + FPDF_DOCUMENT document_; + FPDF_AVAIL avail_; + FX_DOWNLOADHINTS hints_; + FPDF_FILEACCESS file_access_; + FX_FILEAVAIL file_avail_; + v8::StartupData natives_; + v8::StartupData snapshot_; + size_t file_length_; + char* file_contents_; +}; + +#endif // TESTING_EMBEDDER_TEST_H_ + |