summaryrefslogtreecommitdiff
path: root/testing/embedder_test.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-01-15 16:31:51 -0800
committerTom Sepez <tsepez@chromium.org>2015-01-15 16:31:51 -0800
commitd0edcea1a1b22813f593022ca29fca79074757bf (patch)
treef595d536595cafac145a92ebeb3540f4b383b8a1 /testing/embedder_test.h
parentf061e44695fc438f3fc9877f5bf8f0f8397ed186 (diff)
downloadpdfium-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.h78
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_
+