| Index: fpdfsdk/src/fpdfdoc_embeddertest.cpp
|
| diff --git a/fpdfsdk/src/fpdfdoc_embeddertest.cpp b/fpdfsdk/src/fpdfdoc_embeddertest.cpp
|
| index 8b1c4fb3e83dc84c0e6c2f5d9e1c5a2d87ee0086..c83b2eb958b3edb361492d3d114da672fb4d26a6 100644
|
| --- a/fpdfsdk/src/fpdfdoc_embeddertest.cpp
|
| +++ b/fpdfsdk/src/fpdfdoc_embeddertest.cpp
|
| @@ -2,9 +2,11 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "../../core/include/fxcrt/fx_string.h"
|
| #include "../../public/fpdf_doc.h"
|
| #include "../../public/fpdfview.h"
|
| #include "../../testing/embedder_test.h"
|
| +#include "../../testing/fx_string_testhelpers.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| class FPDFDocEmbeddertest : public EmbedderTest {};
|
| @@ -60,3 +62,40 @@ TEST_F(FPDFDocEmbeddertest, ActionGetFilePath) {
|
|
|
| FPDF_ClosePage(page);
|
| }
|
| +
|
| +TEST_F(FPDFDocEmbeddertest, NoBookmarks) {
|
| + // Open a file with no bookmarks.
|
| + EXPECT_TRUE(OpenDocument("testing/resources/named_dests.pdf"));
|
| +
|
| + // The non-existent top-level bookmark has no title.
|
| + unsigned short buf[128];
|
| + EXPECT_EQ(0, 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("testing/resources/bookmarks.pdf"));
|
| +
|
| + // The existent top-level bookmark has no title.
|
| + unsigned short buf[128];
|
| + EXPECT_EQ(0, FPDFBookmark_GetTitle(nullptr, buf, sizeof(buf)));
|
| +
|
| + FPDF_BOOKMARK child = FPDFBookmark_GetFirstChild(document(), nullptr);
|
| + EXPECT_NE(nullptr, child);
|
| + EXPECT_EQ(34, FPDFBookmark_GetTitle(child, buf, sizeof(buf)));
|
| + EXPECT_EQ(CFX_WideString(L"A Good Beginning"),
|
| + CFX_WideString::FromUTF16LE(buf, 16));
|
| +
|
| + EXPECT_EQ(nullptr, FPDFBookmark_GetFirstChild(document(), child));
|
| +
|
| + FPDF_BOOKMARK sibling = FPDFBookmark_GetNextSibling(document(), child);
|
| + EXPECT_NE(nullptr, sibling);
|
| + EXPECT_EQ(28, FPDFBookmark_GetTitle(sibling, buf, sizeof(buf)));
|
| + EXPECT_EQ(CFX_WideString(L"A Good Ending"),
|
| + CFX_WideString::FromUTF16LE(buf, 13));
|
| +
|
| + EXPECT_EQ(nullptr, FPDFBookmark_GetNextSibling(document(), sibling));
|
| +}
|
|
|