From 74b91b279d0dee175c2e461ffa4fcc7fe5002a6e Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Fri, 16 Jan 2015 08:55:17 -0800 Subject: Follow-on to pdfium_embeddertests. This includes: - Fix TestLoader lifetime. - Rename test file to match the equivalent .cpp under test - Re-organize a few tests to avoid duplicate loading - add tests for a few additional functions. R=jam@chromium.org Review URL: https://codereview.chromium.org/857483005 --- fpdfsdk/src/fpdfview_embeddertest.cpp | 42 +++++++++++++++++++++++++++++++++++ pdfium.gyp | 2 +- testing/basic_embeddertest.cpp | 19 ---------------- testing/embedder_test.cpp | 8 ++++--- testing/embedder_test.h | 4 ++++ 5 files changed, 52 insertions(+), 23 deletions(-) create mode 100644 fpdfsdk/src/fpdfview_embeddertest.cpp delete mode 100644 testing/basic_embeddertest.cpp diff --git a/fpdfsdk/src/fpdfview_embeddertest.cpp b/fpdfsdk/src/fpdfview_embeddertest.cpp new file mode 100644 index 0000000000..94a51094a8 --- /dev/null +++ b/fpdfsdk/src/fpdfview_embeddertest.cpp @@ -0,0 +1,42 @@ +// Copyright 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. + +#include "../../testing/embedder_test.h" +#include "testing/gtest/include/gtest/gtest.h" + +class FPDFViewEmbeddertest : public EmbedderTest { +}; + +TEST_F(FPDFViewEmbeddertest, Document) { + EXPECT_TRUE(OpenDocument("testing/resources/about_blank.pdf")); + EXPECT_EQ(1, GetPageCount()); + EXPECT_EQ(0, GetFirstPageNum()); + + int version; + EXPECT_TRUE(FPDF_GetFileVersion(document(), &version)); + EXPECT_EQ(14, version); + + EXPECT_EQ(0xFFFFFFFF, FPDF_GetDocPermissions(document())); + EXPECT_EQ(-1, FPDF_GetSecurityHandlerRevision(document())); +} + +TEST_F(FPDFViewEmbeddertest, Page) { + EXPECT_TRUE(OpenDocument("testing/resources/about_blank.pdf")); + FPDF_FORMHANDLE form_handle = SetFormFillEnvironment(); + FPDF_PAGE page = LoadPage(0, form_handle); + EXPECT_NE(nullptr, page); + EXPECT_EQ(612.0, FPDF_GetPageWidth(page)); + EXPECT_EQ(792.0, FPDF_GetPageHeight(page)); + UnloadPage(page, form_handle); + EXPECT_EQ(nullptr, LoadPage(1, form_handle)); + ClearFormFillEnvironment(form_handle); +} + +TEST_F(FPDFViewEmbeddertest, ViewerRef) { + EXPECT_TRUE(OpenDocument("testing/resources/about_blank.pdf")); + EXPECT_TRUE(FPDF_VIEWERREF_GetPrintScaling(document())); + EXPECT_EQ(1, FPDF_VIEWERREF_GetNumCopies(document())); + EXPECT_EQ(DuplexUndefined, FPDF_VIEWERREF_GetDuplex(document())); +} + diff --git a/pdfium.gyp b/pdfium.gyp index fb6771f0cd..9039190053 100644 --- a/pdfium.gyp +++ b/pdfium.gyp @@ -838,7 +838,7 @@ '<(DEPTH)' ], 'sources': [ - 'testing/basic_embeddertest.cpp', + 'fpdfsdk/src/fpdfview_embeddertest.cpp', 'testing/embedder_test.cpp', 'testing/embedder_test.h', 'testing/fx_string_testhelpers.cpp', diff --git a/testing/basic_embeddertest.cpp b/testing/basic_embeddertest.cpp deleted file mode 100644 index 210fabd71a..0000000000 --- a/testing/basic_embeddertest.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// 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. - -#include "embedder_test.h" -#include "testing/gtest/include/gtest/gtest.h" - -class BasicEmbeddertest : public EmbedderTest { -}; - -TEST_F(BasicEmbeddertest, GetPageCount) { - EXPECT_TRUE(OpenDocument("testing/resources/about_blank.pdf")); - EXPECT_EQ(1, GetPageCount()); -} - -TEST_F(BasicEmbeddertest, GetFirstPageNum) { - EXPECT_TRUE(OpenDocument("testing/resources/about_blank.pdf")); - EXPECT_EQ(0, GetFirstPageNum()); -} diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp index 7b8498345a..e823347ef1 100644 --- a/testing/embedder_test.cpp +++ b/testing/embedder_test.cpp @@ -195,6 +195,9 @@ void EmbedderTest::SetUp() { void EmbedderTest::TearDown() { FPDF_CloseDocument(document_); FPDFAvail_Destroy(avail_); + if (loader_) { + delete loader_; + } if (file_contents_) { free(file_contents_); } @@ -206,11 +209,10 @@ bool EmbedderTest::OpenDocument(const std::string& filename) { return false; } - TestLoader loader(file_contents_, file_length_); - + loader_ = new TestLoader(file_contents_, file_length_); file_access_.m_FileLen = static_cast(file_length_); file_access_.m_GetBlock = Get_Block; - file_access_.m_Param = &loader; + file_access_.m_Param = loader_; file_avail_.version = 1; file_avail_.IsDataAvail = Is_Data_Avail; diff --git a/testing/embedder_test.h b/testing/embedder_test.h index b127eadbde..48ea415e19 100644 --- a/testing/embedder_test.h +++ b/testing/embedder_test.h @@ -14,6 +14,8 @@ #include "testing/gtest/include/gtest/gtest.h" #include "v8/include/v8.h" +class TestLoader; + // This class is used to load a PDF document, and then run programatic // API tests against it. class EmbedderTest : public ::testing::Test { @@ -21,6 +23,7 @@ class EmbedderTest : public ::testing::Test { EmbedderTest() : document_(nullptr), avail_(nullptr), + loader_(nullptr), file_length_(0), file_contents_(nullptr) { memset(&hints_, 0, sizeof(hints_)); @@ -70,6 +73,7 @@ class EmbedderTest : public ::testing::Test { FX_FILEAVAIL file_avail_; v8::StartupData natives_; v8::StartupData snapshot_; + TestLoader* loader_; size_t file_length_; char* file_contents_; }; -- cgit v1.2.3