diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-03-28 19:23:25 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-03-28 19:23:25 +0000 |
commit | 971a674ef17526ad37ce55ba90110830b94889d0 (patch) | |
tree | d99fabf665cc63825b48dd087daadf664bb80ee8 /fpdfsdk/fpdfdoc_embeddertest.cpp | |
parent | 7d12532362545273e0ceac93fae2154661323fd1 (diff) | |
download | pdfium-971a674ef17526ad37ce55ba90110830b94889d0.tar.xz |
Rename fpdfsdk/fpdf* files to be consistent
This CL makes the fpdfsdk/fpdf* files to be consistently prefixed with
fpdf_ instead of randomly dropping the _.
Change-Id: I23e3c8a0831b56bcd17c788d9fe874b2ab8b24fc
Reviewed-on: https://pdfium-review.googlesource.com/29390
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'fpdfsdk/fpdfdoc_embeddertest.cpp')
-rw-r--r-- | fpdfsdk/fpdfdoc_embeddertest.cpp | 424 |
1 files changed, 0 insertions, 424 deletions
diff --git a/fpdfsdk/fpdfdoc_embeddertest.cpp b/fpdfsdk/fpdfdoc_embeddertest.cpp deleted file mode 100644 index 07b83263be..0000000000 --- a/fpdfsdk/fpdfdoc_embeddertest.cpp +++ /dev/null @@ -1,424 +0,0 @@ -// 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 <memory> -#include <string> - -#include "core/fxcrt/fx_string.h" -#include "public/fpdf_doc.h" -#include "public/fpdf_edit.h" -#include "public/fpdfview.h" -#include "testing/embedder_test.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "testing/test_support.h" - -class FPDFDocEmbeddertest : public EmbedderTest {}; - -TEST_F(FPDFDocEmbeddertest, DestGetPageIndex) { - EXPECT_TRUE(OpenDocument("named_dests.pdf")); - - // NULL FPDF_DEST case. - EXPECT_EQ(0U, FPDFDest_GetPageIndex(document(), nullptr)); - EXPECT_EQ(-1, FPDFDest_GetDestPageIndex(document(), nullptr)); - - // Page number directly in item from Dests NameTree. - FPDF_DEST dest = FPDF_GetNamedDestByName(document(), "First"); - EXPECT_TRUE(dest); - EXPECT_EQ(1U, FPDFDest_GetPageIndex(document(), dest)); - EXPECT_EQ(1, FPDFDest_GetDestPageIndex(document(), dest)); - - // Page number via object reference in item from Dests NameTree. - dest = FPDF_GetNamedDestByName(document(), "Next"); - EXPECT_TRUE(dest); - EXPECT_EQ(1U, FPDFDest_GetPageIndex(document(), dest)); - EXPECT_EQ(1, FPDFDest_GetDestPageIndex(document(), dest)); - - // Page number directly in item from Dests dictionary. - dest = FPDF_GetNamedDestByName(document(), "FirstAlternate"); - EXPECT_TRUE(dest); - EXPECT_EQ(11U, FPDFDest_GetPageIndex(document(), dest)); - EXPECT_EQ(11, FPDFDest_GetDestPageIndex(document(), dest)); - - // Invalid object reference in item from Dests NameTree. - dest = FPDF_GetNamedDestByName(document(), "LastAlternate"); - EXPECT_TRUE(dest); - EXPECT_EQ(0U, FPDFDest_GetPageIndex(document(), dest)); - EXPECT_EQ(-1, FPDFDest_GetDestPageIndex(document(), dest)); -} - -TEST_F(FPDFDocEmbeddertest, DestGetView) { - EXPECT_TRUE(OpenDocument("named_dests.pdf")); - - unsigned long numParams; - FS_FLOAT params[4]; - - numParams = 42; - std::fill_n(params, 4, 42.4242f); - EXPECT_EQ(static_cast<unsigned long>(PDFDEST_VIEW_UNKNOWN_MODE), - FPDFDest_GetView(nullptr, &numParams, params)); - EXPECT_EQ(0U, numParams); - EXPECT_FLOAT_EQ(42.4242f, params[0]); - - numParams = 42; - std::fill_n(params, 4, 42.4242f); - FPDF_DEST dest = FPDF_GetNamedDestByName(document(), "First"); - EXPECT_TRUE(dest); - EXPECT_EQ(static_cast<unsigned long>(PDFDEST_VIEW_XYZ), - FPDFDest_GetView(dest, &numParams, params)); - EXPECT_EQ(3U, numParams); - EXPECT_FLOAT_EQ(0, params[0]); - EXPECT_FLOAT_EQ(0, params[1]); - EXPECT_FLOAT_EQ(1, params[2]); - EXPECT_FLOAT_EQ(42.4242f, params[3]); - - numParams = 42; - std::fill_n(params, 4, 42.4242f); - dest = FPDF_GetNamedDestByName(document(), "Next"); - EXPECT_TRUE(dest); - EXPECT_EQ(static_cast<unsigned long>(PDFDEST_VIEW_FIT), - FPDFDest_GetView(dest, &numParams, params)); - EXPECT_EQ(0U, numParams); - EXPECT_FLOAT_EQ(42.4242f, params[0]); - - numParams = 42; - std::fill_n(params, 4, 42.4242f); - dest = FPDF_GetNamedDestByName(document(), "FirstAlternate"); - EXPECT_TRUE(dest); - EXPECT_EQ(static_cast<unsigned long>(PDFDEST_VIEW_XYZ), - FPDFDest_GetView(dest, &numParams, params)); - EXPECT_EQ(3U, numParams); - EXPECT_FLOAT_EQ(200, params[0]); - EXPECT_FLOAT_EQ(400, params[1]); - EXPECT_FLOAT_EQ(800, params[2]); - EXPECT_FLOAT_EQ(42.4242f, params[3]); - - numParams = 42; - std::fill_n(params, 4, 42.4242f); - dest = FPDF_GetNamedDestByName(document(), "LastAlternate"); - EXPECT_TRUE(dest); - EXPECT_EQ(static_cast<unsigned long>(PDFDEST_VIEW_XYZ), - FPDFDest_GetView(dest, &numParams, params)); - EXPECT_EQ(3U, numParams); - EXPECT_FLOAT_EQ(0, params[0]); - EXPECT_FLOAT_EQ(0, params[1]); - EXPECT_FLOAT_EQ(-200, params[2]); - EXPECT_FLOAT_EQ(42.4242f, params[3]); -} - -TEST_F(FPDFDocEmbeddertest, DestGetLocationInPage) { - EXPECT_TRUE(OpenDocument("named_dests.pdf")); - - // NULL FPDF_DEST case. - EXPECT_EQ(0U, FPDFDest_GetPageIndex(document(), nullptr)); - EXPECT_EQ(-1, FPDFDest_GetDestPageIndex(document(), nullptr)); - - FPDF_DEST dest = FPDF_GetNamedDestByName(document(), "First"); - EXPECT_TRUE(dest); - - FPDF_BOOL hasX; - FPDF_BOOL hasY; - FPDF_BOOL hasZoom; - FS_FLOAT x; - FS_FLOAT y; - FS_FLOAT zoom; - EXPECT_TRUE( - FPDFDest_GetLocationInPage(dest, &hasX, &hasY, &hasZoom, &x, &y, &zoom)); - EXPECT_TRUE(hasX); - EXPECT_TRUE(hasY); - EXPECT_TRUE(hasZoom); - EXPECT_EQ(0, x); - EXPECT_EQ(0, y); - EXPECT_EQ(1, zoom); -} - -TEST_F(FPDFDocEmbeddertest, BUG_680376) { - EXPECT_TRUE(OpenDocument("bug_680376.pdf")); - - // Page number directly in item from Dests NameTree. - FPDF_DEST dest = FPDF_GetNamedDestByName(document(), "First"); - EXPECT_TRUE(dest); - EXPECT_EQ(static_cast<unsigned long>(-1), - FPDFDest_GetPageIndex(document(), dest)); - EXPECT_EQ(-1, FPDFDest_GetDestPageIndex(document(), dest)); -} - -TEST_F(FPDFDocEmbeddertest, BUG_821454) { - EXPECT_TRUE(OpenDocument("bug_821454.pdf")); - - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - FPDF_LINK link1 = FPDFLink_GetLinkAtPoint(page, 150, 360); - ASSERT_TRUE(link1); - FPDF_LINK link2 = FPDFLink_GetLinkAtPoint(page, 150, 420); - ASSERT_TRUE(link2); - - FPDF_DEST dest1 = FPDFLink_GetDest(document(), link1); - ASSERT_TRUE(dest1); - FPDF_DEST dest2 = FPDFLink_GetDest(document(), link2); - ASSERT_TRUE(dest2); - - EXPECT_EQ(0, FPDFDest_GetDestPageIndex(document(), dest1)); - EXPECT_EQ(0, FPDFDest_GetDestPageIndex(document(), dest2)); - - { - FPDF_BOOL has_x_coord; - FPDF_BOOL has_y_coord; - FPDF_BOOL has_zoom; - FS_FLOAT x; - FS_FLOAT y; - FS_FLOAT zoom; - FPDF_BOOL success = FPDFDest_GetLocationInPage( - dest1, &has_x_coord, &has_y_coord, &has_zoom, &x, &y, &zoom); - ASSERT_TRUE(success); - EXPECT_TRUE(has_x_coord); - EXPECT_TRUE(has_y_coord); - EXPECT_FALSE(has_zoom); - EXPECT_FLOAT_EQ(100.0f, x); - EXPECT_FLOAT_EQ(200.0f, y); - } - { - FPDF_BOOL has_x_coord; - FPDF_BOOL has_y_coord; - FPDF_BOOL has_zoom; - FS_FLOAT x; - FS_FLOAT y; - FS_FLOAT zoom; - FPDF_BOOL success = FPDFDest_GetLocationInPage( - dest2, &has_x_coord, &has_y_coord, &has_zoom, &x, &y, &zoom); - ASSERT_TRUE(success); - EXPECT_TRUE(has_x_coord); - EXPECT_TRUE(has_y_coord); - EXPECT_FALSE(has_zoom); - EXPECT_FLOAT_EQ(150.0f, x); - EXPECT_FLOAT_EQ(250.0f, y); - } - - UnloadPage(page); -} - -TEST_F(FPDFDocEmbeddertest, ActionGetFilePath) { - EXPECT_TRUE(OpenDocument("launch_action.pdf")); - - FPDF_PAGE page = LoadPage(0); - ASSERT_TRUE(page); - - // The target action is nearly the size of the whole page. - FPDF_LINK link = FPDFLink_GetLinkAtPoint(page, 100, 100); - ASSERT_TRUE(link); - - FPDF_ACTION action = FPDFLink_GetAction(link); - ASSERT_TRUE(action); - - const char kExpectedResult[] = "test.pdf"; - const unsigned long kExpectedLength = sizeof(kExpectedResult); - unsigned long bufsize = FPDFAction_GetFilePath(action, nullptr, 0); - ASSERT_EQ(kExpectedLength, bufsize); - - char buf[kExpectedLength]; - EXPECT_EQ(bufsize, FPDFAction_GetFilePath(action, buf, bufsize)); - EXPECT_EQ(std::string(kExpectedResult), std::string(buf)); - - UnloadPage(page); -} - -TEST_F(FPDFDocEmbeddertest, NoBookmarks) { - // Open a file with no bookmarks. - EXPECT_TRUE(OpenDocument("named_dests.pdf")); - - // The non-existent top-level bookmark has no title. - unsigned short buf[128]; - EXPECT_EQ(0u, FPDFBookmark_GetTitle(nullptr, buf, sizeof(buf))); - - // The non-existent top-level bookmark has no children. - EXPECT_EQ(nullptr, FPDFBookmark_GetFirstChild(document(), nullptr)); -} - -TEST_F(FPDFDocEmbeddertest, Bookmarks) { - // Open a file with two bookmarks. - EXPECT_TRUE(OpenDocument("bookmarks.pdf")); - - // The existent top-level bookmark has no title. - unsigned short buf[128]; - EXPECT_EQ(0u, FPDFBookmark_GetTitle(nullptr, buf, sizeof(buf))); - - FPDF_BOOKMARK child = FPDFBookmark_GetFirstChild(document(), nullptr); - EXPECT_TRUE(child); - EXPECT_EQ(34u, FPDFBookmark_GetTitle(child, buf, sizeof(buf))); - EXPECT_EQ(WideString(L"A Good Beginning"), WideString::FromUTF16LE(buf, 16)); - - EXPECT_EQ(nullptr, FPDFBookmark_GetFirstChild(document(), child)); - - FPDF_BOOKMARK sibling = FPDFBookmark_GetNextSibling(document(), child); - EXPECT_TRUE(sibling); - EXPECT_EQ(28u, FPDFBookmark_GetTitle(sibling, buf, sizeof(buf))); - EXPECT_EQ(WideString(L"A Good Ending"), WideString::FromUTF16LE(buf, 13)); - - EXPECT_EQ(nullptr, FPDFBookmark_GetNextSibling(document(), sibling)); -} - -TEST_F(FPDFDocEmbeddertest, FindBookmarks) { - // Open a file with two bookmarks. - EXPECT_TRUE(OpenDocument("bookmarks.pdf")); - - // Find the first one, based on its known title. - std::unique_ptr<unsigned short, pdfium::FreeDeleter> title = - GetFPDFWideString(L"A Good Beginning"); - FPDF_BOOKMARK child = FPDFBookmark_Find(document(), title.get()); - EXPECT_TRUE(child); - - // Check that the string matches. - unsigned short buf[128]; - EXPECT_EQ(34u, FPDFBookmark_GetTitle(child, buf, sizeof(buf))); - EXPECT_EQ(WideString(L"A Good Beginning"), WideString::FromUTF16LE(buf, 16)); - - // Check that it is them same as the one returned by GetFirstChild. - EXPECT_EQ(child, FPDFBookmark_GetFirstChild(document(), nullptr)); - - // Try to find one using a non-existent title. - std::unique_ptr<unsigned short, pdfium::FreeDeleter> bad_title = - GetFPDFWideString(L"A BAD Beginning"); - EXPECT_EQ(nullptr, FPDFBookmark_Find(document(), bad_title.get())); -} - -// Check circular bookmarks will not cause infinite loop. -TEST_F(FPDFDocEmbeddertest, FindBookmarks_bug420) { - // Open a file with circular bookmarks. - EXPECT_TRUE(OpenDocument("bookmarks_circular.pdf")); - - // Try to find a title. - std::unique_ptr<unsigned short, pdfium::FreeDeleter> title = - GetFPDFWideString(L"anything"); - EXPECT_EQ(nullptr, FPDFBookmark_Find(document(), title.get())); -} - -TEST_F(FPDFDocEmbeddertest, DeletePage) { - EXPECT_TRUE(OpenDocument("hello_world.pdf")); - EXPECT_EQ(1, FPDF_GetPageCount(document())); - FPDFPage_Delete(document(), 0); - EXPECT_EQ(0, FPDF_GetPageCount(document())); -} - -TEST_F(FPDFDocEmbeddertest, GetMetaText) { - ASSERT_TRUE(OpenDocument("bug_601362.pdf")); - - // Invalid document / tag results in 0. - unsigned short buf[128]; - EXPECT_EQ(0u, FPDF_GetMetaText(document(), nullptr, buf, sizeof(buf))); - EXPECT_EQ(0u, FPDF_GetMetaText(nullptr, "", buf, sizeof(buf))); - - // Tags that do not eixst results in an empty wide string. - EXPECT_EQ(2u, FPDF_GetMetaText(document(), "", buf, sizeof(buf))); - EXPECT_EQ(2u, FPDF_GetMetaText(document(), "foo", buf, sizeof(buf))); - ASSERT_EQ(2u, FPDF_GetMetaText(document(), "Title", buf, sizeof(buf))); - ASSERT_EQ(2u, FPDF_GetMetaText(document(), "Author", buf, sizeof(buf))); - ASSERT_EQ(2u, FPDF_GetMetaText(document(), "Subject", buf, sizeof(buf))); - ASSERT_EQ(2u, FPDF_GetMetaText(document(), "Keywords", buf, sizeof(buf))); - ASSERT_EQ(2u, FPDF_GetMetaText(document(), "Producer", buf, sizeof(buf))); - - constexpr wchar_t kExpectedCreator[] = L"Microsoft Word"; - ASSERT_EQ(30u, FPDF_GetMetaText(document(), "Creator", buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedCreator), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedCreator))); - - constexpr wchar_t kExpectedCreationDate[] = L"D:20160411190039+00'00'"; - ASSERT_EQ(48u, - FPDF_GetMetaText(document(), "CreationDate", buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedCreationDate), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedCreationDate))); - - constexpr wchar_t kExpectedModDate[] = L"D:20160411190039+00'00'"; - ASSERT_EQ(48u, FPDF_GetMetaText(document(), "ModDate", buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedModDate), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedModDate))); -} - -TEST_F(FPDFDocEmbeddertest, GetMetaTextSameObjectNumber) { - ASSERT_TRUE(OpenDocument("annotation_highlight_square_with_ap.pdf")); - - // The PDF has been edited. It has two %%EOF markers, and 2 objects numbered - // (1 0). Both objects are /Info dictionaries, but contain different data. - // Make sure ModDate is the date of the last modification. - unsigned short buf[128]; - constexpr wchar_t kExpectedModDate[] = L"D:20170612232940-04'00'"; - ASSERT_EQ(48u, FPDF_GetMetaText(document(), "ModDate", buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedModDate), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedModDate))); -} - -TEST_F(FPDFDocEmbeddertest, GetMetaTextInAttachmentFile) { - ASSERT_TRUE(OpenDocument("embedded_attachments.pdf")); - - // Make sure this is the date from the PDF itself and not the attached PDF. - unsigned short buf[128]; - constexpr wchar_t kExpectedModDate[] = L"D:20170712214448-07'00'"; - ASSERT_EQ(48u, FPDF_GetMetaText(document(), "ModDate", buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedModDate), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedModDate))); -} - -TEST_F(FPDFDocEmbeddertest, GetMetaTextFromNewDocument) { - FPDF_DOCUMENT empty_doc = FPDF_CreateNewDocument(); - unsigned short buf[128]; - EXPECT_EQ(2u, FPDF_GetMetaText(empty_doc, "Title", buf, sizeof(buf))); - FPDF_CloseDocument(empty_doc); -} - -TEST_F(FPDFDocEmbeddertest, NoPageLabels) { - EXPECT_TRUE(OpenDocument("about_blank.pdf")); - EXPECT_EQ(1, FPDF_GetPageCount(document())); - - ASSERT_EQ(0u, FPDF_GetPageLabel(document(), 0, nullptr, 0)); -} - -TEST_F(FPDFDocEmbeddertest, GetPageLabels) { - EXPECT_TRUE(OpenDocument("page_labels.pdf")); - EXPECT_EQ(7, FPDF_GetPageCount(document())); - - // We do not request labels, when use FPDFAvail_IsXXXAvail. - // Flush all data, to allow read labels. - SetWholeFileAvailable(); - - unsigned short buf[128]; - EXPECT_EQ(0u, FPDF_GetPageLabel(document(), -2, buf, sizeof(buf))); - EXPECT_EQ(0u, FPDF_GetPageLabel(document(), -1, buf, sizeof(buf))); - - const wchar_t kExpectedPageLabel0[] = L"i"; - ASSERT_EQ(4u, FPDF_GetPageLabel(document(), 0, buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedPageLabel0), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel0))); - - const wchar_t kExpectedPageLabel1[] = L"ii"; - ASSERT_EQ(6u, FPDF_GetPageLabel(document(), 1, buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedPageLabel1), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel1))); - - const wchar_t kExpectedPageLabel2[] = L"1"; - ASSERT_EQ(4u, FPDF_GetPageLabel(document(), 2, buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedPageLabel2), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel2))); - - const wchar_t kExpectedPageLabel3[] = L"2"; - ASSERT_EQ(4u, FPDF_GetPageLabel(document(), 3, buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedPageLabel3), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel3))); - - const wchar_t kExpectedPageLabel4[] = L"zzA"; - ASSERT_EQ(8u, FPDF_GetPageLabel(document(), 4, buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedPageLabel4), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel4))); - - const wchar_t kExpectedPageLabel5[] = L"zzB"; - ASSERT_EQ(8u, FPDF_GetPageLabel(document(), 5, buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedPageLabel5), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel5))); - - const wchar_t kExpectedPageLabel6[] = L""; - ASSERT_EQ(2u, FPDF_GetPageLabel(document(), 6, buf, sizeof(buf))); - EXPECT_EQ(WideString(kExpectedPageLabel6), - WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel6))); - - ASSERT_EQ(0u, FPDF_GetPageLabel(document(), 7, buf, sizeof(buf))); - ASSERT_EQ(0u, FPDF_GetPageLabel(document(), 8, buf, sizeof(buf))); -} |